Skip to content

Commit 9bd3859

Browse files
committed
use actual user instead of fake user in permission composition test
1 parent 88fd222 commit 9bd3859

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 = 'lennon@thebeatles.com'
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy