diff options
author | Dominique Bischof <dbischof@gmail.com> | 2023-03-02 14:03:50 -0500 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-03-03 08:18:54 +0100 |
commit | 17e08b2177928b02158997ee1c44d8322a2e6eb8 (patch) | |
tree | bfe54623cbf3613ed5fba4621bf3accf85a999ce /tests/admin_views | |
parent | 4338b6526d3604b371ac37134371946baa1ed0ce (diff) | |
download | django-17e08b2177928b02158997ee1c44d8322a2e6eb8.tar.gz |
Fixed #34377 -- Fixed preserving query strings in AdminSite.catch_all_view().
Included full path when redirecting with append slash to include query
strings.
Regression in ba31b0103442ac891fb3cb98f316781254e366c3.
Diffstat (limited to 'tests/admin_views')
-rw-r--r-- | tests/admin_views/tests.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index f1d098eb40..f440b85b6e 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -8464,6 +8464,24 @@ class AdminSiteFinalCatchAllPatternTests(TestCase): ) @override_settings(APPEND_SLASH=True) + def test_missing_slash_append_slash_true_query_string(self): + superuser = User.objects.create_user( + username="staff", + password="secret", + email="staff@example.com", + is_staff=True, + ) + self.client.force_login(superuser) + known_url = reverse("admin:admin_views_article_changelist") + response = self.client.get("%s?id=1" % known_url[:-1]) + self.assertRedirects( + response, + f"{known_url}?id=1", + status_code=301, + fetch_redirect_response=False, + ) + + @override_settings(APPEND_SLASH=True) def test_missing_slash_append_slash_true_script_name(self): superuser = User.objects.create_user( username="staff", @@ -8481,6 +8499,24 @@ class AdminSiteFinalCatchAllPatternTests(TestCase): fetch_redirect_response=False, ) + @override_settings(APPEND_SLASH=True) + def test_missing_slash_append_slash_true_script_name_query_string(self): + superuser = User.objects.create_user( + username="staff", + password="secret", + email="staff@example.com", + is_staff=True, + ) + self.client.force_login(superuser) + known_url = reverse("admin:admin_views_article_changelist") + response = self.client.get("%s?id=1" % known_url[:-1], SCRIPT_NAME="/prefix/") + self.assertRedirects( + response, + f"/prefix{known_url}?id=1", + status_code=301, + fetch_redirect_response=False, + ) + @override_settings(APPEND_SLASH=True, FORCE_SCRIPT_NAME="/prefix/") def test_missing_slash_append_slash_true_force_script_name(self): superuser = User.objects.create_user( |