kopia lustrzana https://github.com/wagtail/wagtail
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
rodzic
9d29ba862c
commit
06b6f91b91
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
Ładowanie…
Reference in New Issue