From df41b5a05d4e00e80e73afe629072e37873e767a Mon Sep 17 00:00:00 2001 From: Sjoerd Job Postmus Date: Thu, 20 Oct 2016 19:29:04 +0200 Subject: Fixed #28593 -- Added a simplified URL routing syntax per DEP 0201. Thanks Aymeric Augustin for shepherding the DEP and patch review. Thanks Marten Kenbeek and Tim Graham for contributing to the code. Thanks Tom Christie, Shai Berger, and Tim Graham for the docs. --- tests/view_tests/tests/test_debug.py | 7 +++++++ tests/view_tests/tests/test_static.py | 2 +- tests/view_tests/urls.py | 12 ++++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) (limited to 'tests/view_tests') diff --git a/tests/view_tests/tests/test_debug.py b/tests/view_tests/tests/test_debug.py index 71c60210e4..b677fd98c9 100644 --- a/tests/view_tests/tests/test_debug.py +++ b/tests/view_tests/tests/test_debug.py @@ -112,7 +112,14 @@ class DebugViewTests(LoggingCaptureMixin, SimpleTestCase): def test_404_not_in_urls(self): response = self.client.get('/not-in-urls') self.assertNotContains(response, "Raised by:", status_code=404) + self.assertContains(response, "Django tried these URL patterns", status_code=404) self.assertContains(response, "not-in-urls, didn't match", status_code=404) + # Pattern and view name of a RegexURLPattern appear. + self.assertContains(response, r"^regex-post/(?P<pk>[0-9]+)/$", status_code=404) + self.assertContains(response, "[name='regex-post']", status_code=404) + # Pattern and view name of a RoutePattern appear. + self.assertContains(response, r"path-post/<int:pk>/", status_code=404) + self.assertContains(response, "[name='path-post']", status_code=404) @override_settings(ROOT_URLCONF=WithoutEmptyPathUrls) def test_404_empty_path_not_in_urls(self): diff --git a/tests/view_tests/tests/test_static.py b/tests/view_tests/tests/test_static.py index ab376ba386..03cb19ea02 100644 --- a/tests/view_tests/tests/test_static.py +++ b/tests/view_tests/tests/test_static.py @@ -141,7 +141,7 @@ class StaticHelperTest(StaticTests): urls.urlpatterns = self._old_views_urlpatterns def test_prefix(self): - self.assertEqual(static('test')[0].regex.pattern, '^test(?P.*)$') + self.assertEqual(static('test')[0].pattern.regex.pattern, '^test(?P.*)$') @override_settings(DEBUG=False) def test_debug_off(self): diff --git a/tests/view_tests/urls.py b/tests/view_tests/urls.py index 1c1f0d0e12..c487dd7cb9 100644 --- a/tests/view_tests/urls.py +++ b/tests/view_tests/urls.py @@ -1,16 +1,17 @@ +import os from functools import partial -from os import path from django.conf.urls import include, url from django.conf.urls.i18n import i18n_patterns +from django.urls import path, re_path from django.utils.translation import gettext_lazy as _ from django.views import defaults, i18n, static from . import views -base_dir = path.dirname(path.abspath(__file__)) -media_dir = path.join(base_dir, 'media') -locale_dir = path.join(base_dir, 'locale') +base_dir = os.path.dirname(os.path.abspath(__file__)) +media_dir = os.path.join(base_dir, 'media') +locale_dir = os.path.join(base_dir, 'locale') urlpatterns = [ url(r'^$', views.index_page), @@ -64,4 +65,7 @@ urlpatterns += [ ), url(r'^render_no_template/$', views.render_no_template, name='render_no_template'), url(r'^test-setlang/(?P[^/]+)/$', views.with_parameter, name='with_parameter'), + # Patterns to test the technical 404. + re_path(r'^regex-post/(?P[0-9]+)/$', views.index_page, name='regex-post'), + path('path-post//', views.index_page, name='path-post'), ] -- cgit v1.3