aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_middleware.py
diff options
context:
space:
mode:
authorTom Christie2014-12-17 13:12:01 +0000
committerTom Christie2014-12-17 13:12:01 +0000
commit7fbf5b0e6bf49a7f2761229b1576027d39e56be4 (patch)
tree30be2bad8ba2447601d7436082d2297d3af166a5 /tests/test_middleware.py
parentd872c8e2e7f3e5c3a4d8d648361394858f68f5d6 (diff)
parenta68e78bd0b5174d2c8a40497d3d5842f66c65a34 (diff)
downloaddjango-rest-framework-7fbf5b0e6bf49a7f2761229b1576027d39e56be4.tar.bz2
Merge pull request #2155 from martinmaillard/set-user-on-wrapped-request
Set authenticated user on wrapped request
Diffstat (limited to 'tests/test_middleware.py')
-rw-r--r--tests/test_middleware.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test_middleware.py b/tests/test_middleware.py
new file mode 100644
index 00000000..4c099fca
--- /dev/null
+++ b/tests/test_middleware.py
@@ -0,0 +1,37 @@
+
+from django.conf.urls import patterns, url
+from django.contrib.auth.models import User
+from rest_framework.authentication import TokenAuthentication
+from rest_framework.authtoken.models import Token
+from rest_framework.test import APITestCase
+from rest_framework.views import APIView
+
+
+urlpatterns = patterns(
+ '',
+ url(r'^$', APIView.as_view(authentication_classes=(TokenAuthentication,))),
+)
+
+
+class MyMiddleware(object):
+
+ def process_response(self, request, response):
+ assert hasattr(request, 'user'), '`user` is not set on request'
+ assert request.user.is_authenticated(), '`user` is not authenticated'
+ return response
+
+
+class TestMiddleware(APITestCase):
+
+ urls = 'tests.test_middleware'
+
+ def test_middleware_can_access_user_when_processing_response(self):
+ user = User.objects.create_user('john', 'john@example.com', 'password')
+ key = 'abcd1234'
+ Token.objects.create(key=key, user=user)
+
+ with self.settings(
+ MIDDLEWARE_CLASSES=('tests.test_middleware.MyMiddleware',)
+ ):
+ auth = 'Token ' + key
+ self.client.get('/', HTTP_AUTHORIZATION=auth)