diff options
| author | Dylan Verheul <dylan@zostera.nl> | 2017-07-12 12:07:06 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-02-16 13:58:55 -0500 |
| commit | 9b1125bfc7e2dc747128e6e7e8a2259ff1a7d39f (patch) | |
| tree | 4044872d7364729559a87fb1e3f508fc02586d07 /tests | |
| parent | e307ff29d28737d5a764ce2fa7db010231d6fc8e (diff) | |
Fixed #28379 -- Made AccessMixin raise Permissiondenied for authenticated users.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/auth_tests/test_mixins.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auth_tests/test_mixins.py b/tests/auth_tests/test_mixins.py index 70e8f27675..04cedcd9cf 100644 --- a/tests/auth_tests/test_mixins.py +++ b/tests/auth_tests/test_mixins.py @@ -80,6 +80,20 @@ class AccessMixinTests(TestCase): with self.assertRaises(PermissionDenied): view(request) + def test_access_mixin_permission_denied_response(self): + user = models.User.objects.create(username='joe', password='qwerty') + # Authenticated users receive PermissionDenied. + request = self.factory.get('/rand') + request.user = user + view = AlwaysFalseView.as_view() + with self.assertRaises(PermissionDenied): + view(request) + # Anonymous users are redirected to the login page. + request.user = AnonymousUser() + response = view(request) + self.assertEqual(response.status_code, 302) + self.assertEqual(response.url, '/accounts/login/?next=/rand') + @mock.patch.object(models.User, 'is_authenticated', False) def test_stacked_mixins_not_logged_in(self): user = models.User.objects.create(username='joe', password='qwerty') @@ -241,8 +255,13 @@ class PermissionsRequiredMixinTests(TestCase): 'auth_tests.add_customuser', 'auth_tests.change_customuser', 'nonexistent-permission', ] + # Authenticated users receive PermissionDenied. request = self.factory.get('/rand') request.user = self.user + with self.assertRaises(PermissionDenied): + AView.as_view()(request) + # Anonymous users are redirected to the login page. + request.user = AnonymousUser() resp = AView.as_view()(request) self.assertEqual(resp.status_code, 302) |
