summaryrefslogtreecommitdiff
path: root/tests/admin_views/test_autocomplete_view.py
diff options
context:
space:
mode:
authorCarlton Gibson <carlton.gibson@noumenal.es>2018-06-18 21:36:20 +0200
committerTim Graham <timograham@gmail.com>2018-06-18 15:37:10 -0400
commit67fc680c43b4f4fddb7bf4988088b1ef7f36bbdd (patch)
tree7ed4685cce77c3d0131f83105a38a04faffc75a6 /tests/admin_views/test_autocomplete_view.py
parent306f1f8ea3e2b54e194a59ac0ecb686460f180e8 (diff)
[2.1.x] Fixed #29502 -- Allowed users with the view permission to use autocomplete_fields.
Backport of 5b733171813f8ddc7af84abe79f2646204b9c6ca from master
Diffstat (limited to 'tests/admin_views/test_autocomplete_view.py')
-rw-r--r--tests/admin_views/test_autocomplete_view.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/tests/admin_views/test_autocomplete_view.py b/tests/admin_views/test_autocomplete_view.py
index 8db18d2468..d1a445d6dc 100644
--- a/tests/admin_views/test_autocomplete_view.py
+++ b/tests/admin_views/test_autocomplete_view.py
@@ -69,7 +69,7 @@ class AutocompleteJsonViewTests(AdminViewBasicTestCase):
response = self.client.get(self.url, {'term': ''})
self.assertEqual(response.status_code, 302)
- def test_has_change_permission_required(self):
+ def test_has_view_or_change_permission_required(self):
"""
Users require the change permission for the related model to the
autocomplete view for it.
@@ -81,15 +81,17 @@ class AutocompleteJsonViewTests(AdminViewBasicTestCase):
response = AutocompleteJsonView.as_view(**self.as_view_args)(request)
self.assertEqual(response.status_code, 403)
self.assertJSONEqual(response.content.decode('utf-8'), {'error': '403 Forbidden'})
- # Add the change permission and retry.
- p = Permission.objects.get(
- content_type=ContentType.objects.get_for_model(Question),
- codename='change_question',
- )
- self.user.user_permissions.add(p)
- request.user = User.objects.get(pk=self.user.pk)
- response = AutocompleteJsonView.as_view(**self.as_view_args)(request)
- self.assertEqual(response.status_code, 200)
+ for permission in ('view', 'change'):
+ with self.subTest(permission=permission):
+ self.user.user_permissions.clear()
+ p = Permission.objects.get(
+ content_type=ContentType.objects.get_for_model(Question),
+ codename='%s_question' % permission,
+ )
+ self.user.user_permissions.add(p)
+ request.user = User.objects.get(pk=self.user.pk)
+ response = AutocompleteJsonView.as_view(**self.as_view_args)(request)
+ self.assertEqual(response.status_code, 200)
def test_search_use_distinct(self):
"""