aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_middleware.py
diff options
context:
space:
mode:
authorMartin Maillard2014-12-16 15:41:16 +0100
committerMartin Maillard2014-12-16 15:41:16 +0100
commita68e78bd0b5174d2c8a40497d3d5842f66c65a34 (patch)
tree582716253f43d23731f6d25033c9d3687c7af0f9 /tests/test_middleware.py
parentdbd057b9a9b9be846220bb2f0200eee122f91db9 (diff)
downloaddjango-rest-framework-a68e78bd0b5174d2c8a40497d3d5842f66c65a34.tar.bz2
Add test integrated with middleware
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)