Admin URLs respect APPEND_SLASH setting (#7126)

* Modified urlconf regex for default view depending on settings.APPEND_SLASH

Fixes #5331 

Co-authored-by: tijani <tijani-dia@github.com>
pull/7158/head
Tijani-Dia 2021-05-04 21:15:48 +02:00 zatwierdzone przez GitHub
rodzic 9d29ba862c
commit 06b6f91b91
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 44 dodań i 10 usunięć

Wyświetl plik

@ -331,17 +331,38 @@ class TestUserHasAnyPagePermission(TestCase, WagtailTestUtils):
class Test404(TestCase, WagtailTestUtils):
def test_admin_404_template_used(self):
def test_admin_404_template_used_append_slash_true(self):
self.login()
response = self.client.get('/admin/sdfgdsfgdsfgsdf')
self.assertEqual(response.status_code, 404)
self.assertTemplateUsed(response, 'wagtailadmin/404.html')
with self.settings(APPEND_SLASH=True):
response = self.client.get('/admin/sdfgdsfgdsfgsdf', follow=True)
# Check 404 error after CommonMiddleware redirect
self.assertEqual(response.status_code, 404)
self.assertTemplateUsed(response, 'wagtailadmin/404.html')
def test_not_logged_in_redirect(self):
response = self.client.get('/admin/sdfgdsfgdsfgsdf')
response = self.client.get('/admin/sdfgdsfgdsfgsdf/')
# Check that the user was redirected to the login page and that next was set correctly
self.assertRedirects(response, reverse('wagtailadmin_login') + '?next=/admin/sdfgdsfgdsfgsdf')
self.assertRedirects(response, reverse('wagtailadmin_login') + '?next=/admin/sdfgdsfgdsfgsdf/')
class TestAdminURLAppendSlash(TestCase, WagtailTestUtils):
def setUp(self):
# Find root page
self.root_page = Page.objects.get(id=2)
def test_return_correct_view_for_correct_url_without_ending_slash(self):
self.login()
with self.settings(APPEND_SLASH=True):
# Remove trailing slash from URL
response = self.client.get(reverse('wagtailadmin_explore_root')[:-1], follow=True)
# Check that correct page is returned after CommonMiddleware redirect
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'wagtailadmin/pages/index.html')
self.assertEqual(Page.objects.get(id=1), response.context['parent_page'])
self.assertTrue(response.context['pages'].paginator.object_list.filter(id=self.root_page.id).exists())
class TestRemoveStaleContentTypes(TestCase):

Wyświetl plik

@ -93,13 +93,26 @@ urlpatterns += [
# Password reset
path('password_reset/', include(wagtailadmin_password_reset_urls)),
# Default view (will show 404 page)
# This must be the last URL in this file!
re_path(r'^', home.default),
]
# Default view (will show 404 page)
# This must be the last URL in this file!
if settings.APPEND_SLASH:
# Only catch unrecognized patterns with a trailing slash
# and let CommonMiddleware handle adding a slash to every other pattern
urlpatterns += [
re_path(r'^.*/$', home.default),
]
else:
# Catch all unrecognized patterns
urlpatterns += [
re_path(r'^', home.default),
]
# Hook in our own 404 handler
def display_custom_404(view_func):
@functools.wraps(view_func)