summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorJohannes Maron <info@johanneshoppe.com>2021-02-22 12:54:33 +0100
committerCarlton Gibson <carlton.gibson@noumenal.es>2021-03-18 11:14:18 +0100
commit0b120f5d649fb21bb898a8b834b6b33e4cdd9504 (patch)
tree472994eb63c5d0611ea99a5cb2caf66b34d1a1f2 /tests/admin_views
parentceb4b9ee68dffc6ab0398886f1758f15f037c472 (diff)
Refs #29138 -- Added extra tests for autocomplete FK to_field variations.
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/models.py1
-rw-r--r--tests/admin_views/test_autocomplete_view.py24
2 files changed, 25 insertions, 0 deletions
diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py
index 81948e05a2..4ab2bc8eee 100644
--- a/tests/admin_views/models.py
+++ b/tests/admin_views/models.py
@@ -622,6 +622,7 @@ class WorkHour(models.Model):
class Question(models.Model):
+ big_id = models.BigAutoField(primary_key=True)
question = models.CharField(max_length=20)
posted = models.DateField(default=datetime.date.today)
expires = models.DateTimeField(null=True, blank=True)
diff --git a/tests/admin_views/test_autocomplete_view.py b/tests/admin_views/test_autocomplete_view.py
index 1ba8fb146d..c57fb106ed 100644
--- a/tests/admin_views/test_autocomplete_view.py
+++ b/tests/admin_views/test_autocomplete_view.py
@@ -94,6 +94,30 @@ class AutocompleteJsonViewTests(AdminViewBasicTestCase):
'pagination': {'more': False},
})
+ def test_custom_to_field_permission_denied(self):
+ Question.objects.create(question='Is this a question?')
+ request = self.factory.get(self.url, {'term': 'is', **self.opts, 'field_name': 'question_with_to_field'})
+ request.user = self.user
+ with self.assertRaises(PermissionDenied):
+ AutocompleteJsonView.as_view(**self.as_view_args)(request)
+
+ def test_custom_to_field_custom_pk(self):
+ q = Question.objects.create(question='Is this a question?')
+ opts = {
+ 'app_label': Question._meta.app_label,
+ 'model_name': Question._meta.model_name,
+ 'field_name': 'related_questions',
+ }
+ request = self.factory.get(self.url, {'term': 'is', **opts})
+ request.user = self.superuser
+ response = AutocompleteJsonView.as_view(**self.as_view_args)(request)
+ self.assertEqual(response.status_code, 200)
+ data = json.loads(response.content.decode('utf-8'))
+ self.assertEqual(data, {
+ 'results': [{'id': str(q.big_id), 'text': q.question}],
+ 'pagination': {'more': False},
+ })
+
def test_field_does_not_exist(self):
request = self.factory.get(self.url, {'term': 'is', **self.opts, 'field_name': 'does_not_exist'})
request.user = self.superuser