|
5 | 5 | import warnings
|
6 | 6 |
|
7 | 7 | import django
|
8 |
| -from django.contrib.auth.models import Group, Permission, User |
| 8 | +from django.contrib.auth.models import AnonymousUser, Group, Permission, User |
9 | 9 | from django.db import models
|
10 | 10 | from django.test import TestCase
|
11 | 11 | from django.urls import ResolverMatch
|
@@ -542,39 +542,46 @@ def test_permission_denied_for_object_with_custom_detail(self):
|
542 | 542 | self.assertEqual(detail, self.custom_message)
|
543 | 543 |
|
544 | 544 |
|
545 |
| -class FakeUser: |
546 |
| - def __init__(self, auth=False): |
547 |
| - self.is_authenticated = auth |
| 545 | +class PermissionsCompositionTests(TestCase): |
548 | 546 |
|
| 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) |
549 | 557 |
|
550 |
| -class PermissionsCompositionTests(TestCase): |
551 | 558 | def test_and_false(self):
|
552 | 559 | request = factory.get('/1', format='json')
|
553 |
| - request.user = FakeUser(auth=False) |
| 560 | + request.user = AnonymousUser() |
554 | 561 | composed_perm = permissions.IsAuthenticated & permissions.AllowAny
|
555 | 562 | assert composed_perm().has_permission(request, None) is False
|
556 | 563 |
|
557 | 564 | def test_and_true(self):
|
558 | 565 | request = factory.get('/1', format='json')
|
559 |
| - request.user = FakeUser(auth=True) |
| 566 | + request.user = self.user |
560 | 567 | composed_perm = permissions.IsAuthenticated & permissions.AllowAny
|
561 | 568 | assert composed_perm().has_permission(request, None) is True
|
562 | 569 |
|
563 | 570 | def test_or_false(self):
|
564 | 571 | request = factory.get('/1', format='json')
|
565 |
| - request.user = FakeUser(auth=False) |
| 572 | + request.user = AnonymousUser() |
566 | 573 | composed_perm = permissions.IsAuthenticated | permissions.AllowAny
|
567 | 574 | assert composed_perm().has_permission(request, None) is True
|
568 | 575 |
|
569 | 576 | def test_or_true(self):
|
570 | 577 | request = factory.get('/1', format='json')
|
571 |
| - request.user = FakeUser(auth=True) |
| 578 | + request.user = self.user |
572 | 579 | composed_perm = permissions.IsAuthenticated | permissions.AllowAny
|
573 | 580 | assert composed_perm().has_permission(request, None) is True
|
574 | 581 |
|
575 | 582 | def test_several_levels(self):
|
576 | 583 | request = factory.get('/1', format='json')
|
577 |
| - request.user = FakeUser(auth=True) |
| 584 | + request.user = self.user |
578 | 585 | composed_perm = (
|
579 | 586 | permissions.IsAuthenticated &
|
580 | 587 | permissions.IsAuthenticated &
|
|
0 commit comments