summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorDominique Bischof <dbischof@gmail.com>2023-03-02 14:03:50 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-03-03 08:18:54 +0100
commit17e08b2177928b02158997ee1c44d8322a2e6eb8 (patch)
treebfe54623cbf3613ed5fba4621bf3accf85a999ce /tests/admin_views
parent4338b6526d3604b371ac37134371946baa1ed0ce (diff)
downloaddjango-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.py36
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(