|
9 | 9 | from django.db import models
|
10 | 10 | from django.test import TestCase
|
11 | 11 | from django.urls import ResolverMatch
|
12 |
| -from django.utils.deprecation import CallableBool |
13 | 12 |
|
14 | 13 | from rest_framework import (
|
15 | 14 | HTTP_HEADER_ENCODING, authentication, generics, permissions, serializers,
|
@@ -549,33 +548,47 @@ def __init__(self, auth=False):
|
549 | 548 |
|
550 | 549 |
|
551 | 550 | class PermissionsCompositionTests(TestCase):
|
| 551 | + |
| 552 | + def setUp(self): |
| 553 | + self.username = 'john' |
| 554 | + self.email = 'lennon@thebeatles.com' |
| 555 | + self.password = 'password' |
| 556 | + self.user = User.objects.create_user( |
| 557 | + self.username, |
| 558 | + self.email, |
| 559 | + self.password |
| 560 | + ) |
| 561 | + |
552 | 562 | def test_and_false(self):
|
553 | 563 | request = factory.get('/1', format='json')
|
554 |
| - request.user = FakeUser(auth=False) |
| 564 | + request.user = self.user |
555 | 565 | composed_perm = permissions.IsAuthenticated & permissions.AllowAny
|
556 | 566 | assert composed_perm().has_permission(request, None) is False
|
557 | 567 |
|
558 | 568 | def test_and_true(self):
|
559 | 569 | request = factory.get('/1', format='json')
|
560 |
| - request.user = FakeUser(auth=True) |
| 570 | + self.client.login(username=self.username, password=self.password) |
| 571 | + request.user = self.user |
561 | 572 | composed_perm = permissions.IsAuthenticated & permissions.AllowAny
|
562 | 573 | assert composed_perm().has_permission(request, None) is True
|
563 | 574 |
|
564 | 575 | def test_or_false(self):
|
565 | 576 | request = factory.get('/1', format='json')
|
566 |
| - request.user = FakeUser(auth=False) |
| 577 | + request.user = self.user |
567 | 578 | composed_perm = permissions.IsAuthenticated | permissions.AllowAny
|
568 | 579 | assert composed_perm().has_permission(request, None) is True
|
569 | 580 |
|
570 | 581 | def test_or_true(self):
|
571 | 582 | request = factory.get('/1', format='json')
|
572 |
| - request.user = FakeUser(auth=True) |
| 583 | + self.client.login(username=self.username, password=self.password) |
| 584 | + request.user = self.user |
573 | 585 | composed_perm = permissions.IsAuthenticated | permissions.AllowAny
|
574 | 586 | assert composed_perm().has_permission(request, None) is True
|
575 | 587 |
|
576 | 588 | def test_several_levels(self):
|
577 | 589 | request = factory.get('/1', format='json')
|
578 |
| - request.user = FakeUser(auth=True) |
| 590 | + self.client.login(username=self.username, password=self.password) |
| 591 | + request.user = self.user |
579 | 592 | composed_perm = (
|
580 | 593 | permissions.IsAuthenticated &
|
581 | 594 | permissions.IsAuthenticated &
|
|
0 commit comments