-
-
Notifications
You must be signed in to change notification settings - Fork 6.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2259 from tomchristie/testclient-logout-also-canc…
…els-force-authenticate `Client.logout()` also clears any `force_authenticate`
- Loading branch information
Showing
2 changed files
with
20 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,13 @@ | ||
# -- coding: utf-8 -- | ||
|
||
# encoding: utf-8 | ||
from __future__ import unicode_literals | ||
from django.conf.urls import patterns, url | ||
from io import BytesIO | ||
|
||
from django.contrib.auth.models import User | ||
from django.shortcuts import redirect | ||
from django.test import TestCase | ||
from rest_framework.decorators import api_view | ||
from rest_framework.response import Response | ||
from rest_framework.test import APIClient, APIRequestFactory, force_authenticate | ||
from io import BytesIO | ||
|
||
|
||
@api_view(['GET', 'POST']) | ||
|
@@ -109,7 +107,7 @@ def test_explicitly_enforce_csrf_checks(self): | |
|
||
def test_can_logout(self): | ||
""" | ||
`logout()` reset stored credentials | ||
`logout()` resets stored credentials | ||
""" | ||
self.client.credentials(HTTP_AUTHORIZATION='example') | ||
response = self.client.get('/view/') | ||
|
@@ -118,6 +116,18 @@ def test_can_logout(self): | |
response = self.client.get('/view/') | ||
self.assertEqual(response.data['auth'], b'') | ||
|
||
def test_logout_resets_force_authenticate(self): | ||
""" | ||
`logout()` resets any `force_authenticate` | ||
""" | ||
user = User.objects.create_user('example', '[email protected]', 'password') | ||
self.client.force_authenticate(user) | ||
response = self.client.get('/view/') | ||
self.assertEqual(response.data['user'], 'example') | ||
self.client.logout() | ||
response = self.client.get('/view/') | ||
self.assertEqual(response.data['user'], '') | ||
|
||
def test_follow_redirect(self): | ||
""" | ||
Follow redirect by setting follow argument. | ||
|