1
- # -- coding: utf-8 --
2
-
1
+ # encoding: utf-8
3
2
from __future__ import unicode_literals
4
3
from django .conf .urls import patterns , url
5
- from io import BytesIO
6
-
7
4
from django .contrib .auth .models import User
8
5
from django .shortcuts import redirect
9
6
from django .test import TestCase
10
7
from rest_framework .decorators import api_view
11
8
from rest_framework .response import Response
12
9
from rest_framework .test import APIClient , APIRequestFactory , force_authenticate
10
+ from io import BytesIO
13
11
14
12
15
13
@api_view (['GET' , 'POST' ])
@@ -109,7 +107,7 @@ def test_explicitly_enforce_csrf_checks(self):
109
107
110
108
def test_can_logout (self ):
111
109
"""
112
- `logout()` reset stored credentials
110
+ `logout()` resets stored credentials
113
111
"""
114
112
self .client .credentials (HTTP_AUTHORIZATION = 'example' )
115
113
response = self .client .get ('/view/' )
@@ -118,6 +116,18 @@ def test_can_logout(self):
118
116
response = self .client .get ('/view/' )
119
117
self .assertEqual (response .data ['auth' ], b'' )
120
118
119
+ def test_logout_resets_force_authenticate (self ):
120
+ """
121
+ `logout()` resets any `force_authenticate`
122
+ """
123
+ user = User .
objects .
create_user (
'example' ,
'[email protected] ' ,
'password' )
124
+ self .client .force_authenticate (user )
125
+ response = self .client .get ('/view/' )
126
+ self .assertEqual (response .data ['user' ], 'example' )
127
+ self .client .logout ()
128
+ response = self .client .get ('/view/' )
129
+ self .assertEqual (response .data ['user' ], '' )
130
+
121
131
def test_follow_redirect (self ):
122
132
"""
123
133
Follow redirect by setting follow argument.
0 commit comments