diff options
| author | Tom Christie | 2013-08-30 09:28:33 +0100 |
|---|---|---|
| committer | Tom Christie | 2013-08-30 09:28:33 +0100 |
| commit | 9a5b2eefa92dede844ab94d049093e91ac98af5b (patch) | |
| tree | faf389e2f8c8296aeaa486ab97ed0be9113cc2ba /rest_framework/tests/test_testing.py | |
| parent | bf07b8e616bd92e4ae3c2c09b198181d7075e6bd (diff) | |
| parent | f3ab0b2b1d5734314dbe3cdd13cd7c4f0531bf7d (diff) | |
| download | django-rest-framework-9a5b2eefa92dede844ab94d049093e91ac98af5b.tar.bz2 | |
Merge master
Diffstat (limited to 'rest_framework/tests/test_testing.py')
| -rw-r--r-- | rest_framework/tests/test_testing.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/rest_framework/tests/test_testing.py b/rest_framework/tests/test_testing.py index 49d45fc2..48b8956b 100644 --- a/rest_framework/tests/test_testing.py +++ b/rest_framework/tests/test_testing.py @@ -17,8 +17,18 @@ def view(request): }) +@api_view(['GET', 'POST']) +def session_view(request): + active_session = request.session.get('active_session', False) + request.session['active_session'] = True + return Response({ + 'active_session': active_session + }) + + urlpatterns = patterns('', url(r'^view/$', view), + url(r'^session-view/$', session_view), ) @@ -46,6 +56,26 @@ class TestAPITestClient(TestCase): response = self.client.get('/view/') self.assertEqual(response.data['user'], 'example') + def test_force_authenticate_with_sessions(self): + """ + Setting `.force_authenticate()` forcibly authenticates each request. + """ + user = User.objects.create_user('example', 'example@example.com') + self.client.force_authenticate(user) + + # First request does not yet have an active session + response = self.client.get('/session-view/') + self.assertEqual(response.data['active_session'], False) + + # Subsequant requests have an active session + response = self.client.get('/session-view/') + self.assertEqual(response.data['active_session'], True) + + # Force authenticating as `None` should also logout the user session. + self.client.force_authenticate(None) + response = self.client.get('/session-view/') + self.assertEqual(response.data['active_session'], False) + def test_csrf_exempt_by_default(self): """ By default, the test client is CSRF exempt. |
