diff options
| author | Martin Maillard | 2014-12-16 15:41:16 +0100 |
|---|---|---|
| committer | Martin Maillard | 2014-12-16 15:41:16 +0100 |
| commit | a68e78bd0b5174d2c8a40497d3d5842f66c65a34 (patch) | |
| tree | 582716253f43d23731f6d25033c9d3687c7af0f9 /tests/test_middleware.py | |
| parent | dbd057b9a9b9be846220bb2f0200eee122f91db9 (diff) | |
| download | django-rest-framework-a68e78bd0b5174d2c8a40497d3d5842f66c65a34.tar.bz2 | |
Add test integrated with middleware
Diffstat (limited to 'tests/test_middleware.py')
| -rw-r--r-- | tests/test_middleware.py | 37 |
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) |
