Skip to content

Commit 1f13b6f

Browse files
committed
use actual user instead of fake user in permission composition test
1 parent fc08e01 commit 1f13b6f

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

tests/test_permissions.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
import warnings
66

77
import django
8-
from django.contrib.auth.models import Group, Permission, User
8+
from django.contrib.auth.models import AnonymousUser, Group, Permission, User
99
from django.db import models
1010
from django.test import TestCase
1111
from django.urls import ResolverMatch
12-
from django.utils.deprecation import CallableBool
1312

1413
from rest_framework import (
1514
HTTP_HEADER_ENCODING, authentication, generics, permissions, serializers,
@@ -543,39 +542,46 @@ def test_permission_denied_for_object_with_custom_detail(self):
543542
self.assertEqual(detail, self.custom_message)
544543

545544

546-
class FakeUser:
547-
def __init__(self, auth=False):
548-
self.is_authenticated = CallableBool(auth)
545+
class PermissionsCompositionTests(TestCase):
549546

547+
def setUp(self):
548+
self.username = 'john'
549+
self.email = '[email protected]'
550+
self.password = 'password'
551+
self.user = User.objects.create_user(
552+
self.username,
553+
self.email,
554+
self.password
555+
)
556+
self.client.login(username=self.username, password=self.password)
550557

551-
class PermissionsCompositionTests(TestCase):
552558
def test_and_false(self):
553559
request = factory.get('/1', format='json')
554-
request.user = FakeUser(auth=False)
560+
request.user = AnonymousUser()
555561
composed_perm = permissions.IsAuthenticated & permissions.AllowAny
556562
assert composed_perm().has_permission(request, None) is False
557563

558564
def test_and_true(self):
559565
request = factory.get('/1', format='json')
560-
request.user = FakeUser(auth=True)
566+
request.user = self.user
561567
composed_perm = permissions.IsAuthenticated & permissions.AllowAny
562568
assert composed_perm().has_permission(request, None) is True
563569

564570
def test_or_false(self):
565571
request = factory.get('/1', format='json')
566-
request.user = FakeUser(auth=False)
572+
request.user = AnonymousUser()
567573
composed_perm = permissions.IsAuthenticated | permissions.AllowAny
568574
assert composed_perm().has_permission(request, None) is True
569575

570576
def test_or_true(self):
571577
request = factory.get('/1', format='json')
572-
request.user = FakeUser(auth=True)
578+
request.user = self.user
573579
composed_perm = permissions.IsAuthenticated | permissions.AllowAny
574580
assert composed_perm().has_permission(request, None) is True
575581

576582
def test_several_levels(self):
577583
request = factory.get('/1', format='json')
578-
request.user = FakeUser(auth=True)
584+
request.user = self.user
579585
composed_perm = (
580586
permissions.IsAuthenticated &
581587
permissions.IsAuthenticated &

0 commit comments

Comments
 (0)