Skip to content

Commit 34c7c9a

Browse files
committed
Add unit test
1 parent 0768339 commit 34c7c9a

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

tests/test_testing.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from django.urls import path
1111

1212
from rest_framework import fields, serializers
13+
from rest_framework.authtoken.models import Token
1314
from rest_framework.decorators import api_view
1415
from rest_framework.response import Response
1516
from rest_framework.test import (
@@ -19,10 +20,12 @@
1920

2021
@api_view(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'])
2122
def view(request):
22-
return Response({
23-
'auth': request.META.get('HTTP_AUTHORIZATION', b''),
24-
'user': request.user.username
25-
})
23+
data = {'auth': request.META.get('HTTP_AUTHORIZATION', b'')}
24+
if request.user:
25+
data['user'] = request.user.username
26+
if request.auth:
27+
data['token'] = request.auth.key
28+
return Response(data)
2629

2730

2831
@api_view(['GET', 'POST'])
@@ -82,10 +85,25 @@ def test_force_authenticate(self):
8285
"""
8386
Setting `.force_authenticate()` forcibly authenticates each request.
8487
"""
88+
# User only
8589
user = User.objects.create_user('example', '[email protected]')
86-
self.client.force_authenticate(user)
90+
self.client.force_authenticate(user=user)
91+
response = self.client.get('/view/')
92+
assert response.data['user'] == 'example'
93+
assert 'token' not in response.data
94+
95+
# Token only
96+
token = Token.objects.create(key='xyz', user=user)
97+
self.client.force_authenticate(token=token)
98+
response = self.client.get('/view/')
99+
assert response.data['token'] == 'xyz'
100+
assert 'user' not in response.data
101+
102+
# User and token
103+
self.client.force_authenticate(user=user, token=token)
87104
response = self.client.get('/view/')
88105
assert response.data['user'] == 'example'
106+
assert response.data['token'] == 'xyz'
89107

90108
def test_force_authenticate_with_sessions(self):
91109
"""

0 commit comments

Comments
 (0)