diff options
author | Carlton Gibson <carlton.gibson@noumenal.es> | 2019-08-22 14:09:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-22 14:09:49 +0200 |
commit | 5b4c6b58a097028de970875605680df941ab0a47 (patch) | |
tree | 18017377566a039ee76f0dc4d3ecca3a98a49fa5 /tests/admin_changelist | |
parent | 6b16c91157512587017e9178d066ed1a683e7795 (diff) | |
download | django-5b4c6b58a097028de970875605680df941ab0a47.tar.gz |
Fixed #30064 -- Added form to validate admin search fields query input.
Diffstat (limited to 'tests/admin_changelist')
-rw-r--r-- | tests/admin_changelist/tests.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/admin_changelist/tests.py b/tests/admin_changelist/tests.py index c44fbcc875..05490b061a 100644 --- a/tests/admin_changelist/tests.py +++ b/tests/admin_changelist/tests.py @@ -8,6 +8,7 @@ from django.contrib.admin.tests import AdminSeleniumTestCase from django.contrib.admin.views.main import ALL_VAR, SEARCH_VAR from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType +from django.contrib.messages.storage.cookie import CookieStorage from django.db import connection, models from django.db.models import F from django.db.models.fields import Field, IntegerField @@ -406,6 +407,22 @@ class ChangeListTests(TestCase): # Make sure distinct() was called self.assertEqual(cl.queryset.count(), 1) + def test_changelist_search_form_validation(self): + m = ConcertAdmin(Concert, custom_site) + tests = [ + ({SEARCH_VAR: '\x00'}, 'Null characters are not allowed.'), + ({SEARCH_VAR: 'some\x00thing'}, 'Null characters are not allowed.'), + ] + for case, error in tests: + with self.subTest(case=case): + request = self.factory.get('/concert/', case) + request.user = self.superuser + request._messages = CookieStorage(request) + m.get_changelist_instance(request) + messages = [m.message for m in request._messages] + self.assertEqual(1, len(messages)) + self.assertEqual(error, messages[0]) + def test_distinct_for_non_unique_related_object_in_search_fields(self): """ Regressions tests for #15819: If a field listed in search_fields |