Loading django/views/debug.py +1 −1 Original line number Diff line number Diff line Loading @@ -471,7 +471,7 @@ def technical_404_response(request, exception): or (request.path == '/' and len(tried) == 1 # default URLconf and len(tried[0]) == 1 and tried[0][0].app_name == tried[0][0].namespace == 'admin')): and getattr(tried[0][0], 'app_name', '') == getattr(tried[0][0], 'namespace', '') == 'admin')): return default_urlconf(request) urlconf = getattr(request, 'urlconf', settings.ROOT_URLCONF) Loading tests/view_tests/default_urls.py 0 → 100644 +8 −0 Original line number Diff line number Diff line from django.conf.urls import patterns, include, url from django.contrib import admin urlpatterns = patterns('', # This is the same as in the default project template url(r'^admin/', include(admin.site.urls)), ) tests/view_tests/regression_21530_urls.py 0 → 100644 +5 −0 Original line number Diff line number Diff line from django.conf.urls import patterns, url urlpatterns = patterns('', url(r'^index/$', 'view_tests.views.index_page', name='index'), ) tests/view_tests/tests/test_debug.py +29 −0 Original line number Diff line number Diff line Loading @@ -122,6 +122,35 @@ class DebugViewTests(TestCase): """ self.assertRaises(TemplateDoesNotExist, self.client.get, '/render_no_template/') @override_settings(ROOT_URLCONF='view_tests.default_urls') def test_default_urlconf_template(self): """ Make sure that the default urlconf template is shown shown instead of the technical 404 page, if the user has not altered their url conf yet. """ response = self.client.get('/') self.assertContains( response, "<h2>Congratulations on your first Django-powered page.</h2>" ) @override_settings(ROOT_URLCONF='view_tests.regression_21530_urls') def test_regression_21530(self): """ Regression test for bug #21530. If the admin app include is replaced with exactly one url pattern, then the technical 404 template should be displayed. The bug here was that an AttributeError caused a 500 response. """ response = self.client.get('/') self.assertContains( response, "Page not found <span>(404)</span>", status_code=404 ) class ExceptionReporterTests(TestCase): rf = RequestFactory() Loading Loading
django/views/debug.py +1 −1 Original line number Diff line number Diff line Loading @@ -471,7 +471,7 @@ def technical_404_response(request, exception): or (request.path == '/' and len(tried) == 1 # default URLconf and len(tried[0]) == 1 and tried[0][0].app_name == tried[0][0].namespace == 'admin')): and getattr(tried[0][0], 'app_name', '') == getattr(tried[0][0], 'namespace', '') == 'admin')): return default_urlconf(request) urlconf = getattr(request, 'urlconf', settings.ROOT_URLCONF) Loading
tests/view_tests/default_urls.py 0 → 100644 +8 −0 Original line number Diff line number Diff line from django.conf.urls import patterns, include, url from django.contrib import admin urlpatterns = patterns('', # This is the same as in the default project template url(r'^admin/', include(admin.site.urls)), )
tests/view_tests/regression_21530_urls.py 0 → 100644 +5 −0 Original line number Diff line number Diff line from django.conf.urls import patterns, url urlpatterns = patterns('', url(r'^index/$', 'view_tests.views.index_page', name='index'), )
tests/view_tests/tests/test_debug.py +29 −0 Original line number Diff line number Diff line Loading @@ -122,6 +122,35 @@ class DebugViewTests(TestCase): """ self.assertRaises(TemplateDoesNotExist, self.client.get, '/render_no_template/') @override_settings(ROOT_URLCONF='view_tests.default_urls') def test_default_urlconf_template(self): """ Make sure that the default urlconf template is shown shown instead of the technical 404 page, if the user has not altered their url conf yet. """ response = self.client.get('/') self.assertContains( response, "<h2>Congratulations on your first Django-powered page.</h2>" ) @override_settings(ROOT_URLCONF='view_tests.regression_21530_urls') def test_regression_21530(self): """ Regression test for bug #21530. If the admin app include is replaced with exactly one url pattern, then the technical 404 template should be displayed. The bug here was that an AttributeError caused a 500 response. """ response = self.client.get('/') self.assertContains( response, "Page not found <span>(404)</span>", status_code=404 ) class ExceptionReporterTests(TestCase): rf = RequestFactory() Loading