diff options
| author | Tim Graham <timograham@gmail.com> | 2018-12-07 17:52:28 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-12-31 10:47:32 -0500 |
| commit | 043bd709425149b8eff3fb821cba5c23aaebd0df (patch) | |
| tree | 7624be405a6a6e5a041e2852251ef76e9d28fa7d /tests/urlpatterns_reverse | |
| parent | 1136d57f01ce3e3efab44163ccd7b3b34ec4207f (diff) | |
Updated test URL patterns to use path() and re_path().
Diffstat (limited to 'tests/urlpatterns_reverse')
21 files changed, 182 insertions, 182 deletions
diff --git a/tests/urlpatterns_reverse/erroneous_urls.py b/tests/urlpatterns_reverse/erroneous_urls.py index 4d75b49e8f..d8ccf2fc61 100644 --- a/tests/urlpatterns_reverse/erroneous_urls.py +++ b/tests/urlpatterns_reverse/erroneous_urls.py @@ -1,7 +1,7 @@ -from django.conf.urls import url +from django.urls import re_path from . import views urlpatterns = [ - url(r'(regex_error/$', views.empty_view), + re_path(r'(regex_error/$', views.empty_view), ] diff --git a/tests/urlpatterns_reverse/extra_urls.py b/tests/urlpatterns_reverse/extra_urls.py index d9c518c219..dac9a87fd2 100644 --- a/tests/urlpatterns_reverse/extra_urls.py +++ b/tests/urlpatterns_reverse/extra_urls.py @@ -2,13 +2,13 @@ Some extra URL patterns that are included at the top level. """ -from django.conf.urls import include, url +from django.urls import include, path, re_path from .views import empty_view urlpatterns = [ - url(r'^e-places/([0-9]+)/$', empty_view, name='extra-places'), - url(r'^e-people/(?P<name>\w+)/$', empty_view, name="extra-people"), - url('', include('urlpatterns_reverse.included_urls2')), - url(r'^prefix/(?P<prefix>\w+)/', include('urlpatterns_reverse.included_urls2')), + re_path('^e-places/([0-9]+)/$', empty_view, name='extra-places'), + re_path(r'^e-people/(?P<name>\w+)/$', empty_view, name='extra-people'), + path('', include('urlpatterns_reverse.included_urls2')), + re_path(r'^prefix/(?P<prefix>\w+)/', include('urlpatterns_reverse.included_urls2')), ] diff --git a/tests/urlpatterns_reverse/included_app_urls.py b/tests/urlpatterns_reverse/included_app_urls.py index 570d6fc518..e8c0469143 100644 --- a/tests/urlpatterns_reverse/included_app_urls.py +++ b/tests/urlpatterns_reverse/included_app_urls.py @@ -1,16 +1,16 @@ -from django.conf.urls import url +from django.urls import path, re_path from . import views app_name = 'inc-app' urlpatterns = [ - url(r'^normal/$', views.empty_view, name='inc-normal-view'), - url(r'^normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='inc-normal-view'), + path('normal/', views.empty_view, name='inc-normal-view'), + re_path('^normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='inc-normal-view'), - url(r'^\+\\\$\*/$', views.empty_view, name='inc-special-view'), + re_path(r'^\+\\\$\*/$', views.empty_view, name='inc-special-view'), - url(r'^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='inc-mixed-args'), - url(r'^no_kwargs/([0-9]+)/([0-9]+)/$', views.empty_view, name='inc-no-kwargs'), + re_path('^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='inc-mixed-args'), + re_path('^no_kwargs/([0-9]+)/([0-9]+)/$', views.empty_view, name='inc-no-kwargs'), - url(r'^view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance, name='inc-view-class'), + re_path('^view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance, name='inc-view-class'), ] diff --git a/tests/urlpatterns_reverse/included_named_urls.py b/tests/urlpatterns_reverse/included_named_urls.py index fac37ef714..e0b00dd4ed 100644 --- a/tests/urlpatterns_reverse/included_named_urls.py +++ b/tests/urlpatterns_reverse/included_named_urls.py @@ -1,10 +1,10 @@ -from django.conf.urls import include, url +from django.urls import include, path, re_path from .views import empty_view urlpatterns = [ - url(r'^$', empty_view, name="named-url3"), - url(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url4"), - url(r'^(?P<one>[0-9]+)|(?P<two>[0-9]+)/$', empty_view), - url(r'^included/', include('urlpatterns_reverse.included_named_urls2')), + path('', empty_view, name="named-url3"), + re_path(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url4"), + re_path(r'^(?P<one>[0-9]+)|(?P<two>[0-9]+)/$', empty_view), + path('included/', include('urlpatterns_reverse.included_named_urls2')), ] diff --git a/tests/urlpatterns_reverse/included_named_urls2.py b/tests/urlpatterns_reverse/included_named_urls2.py index 4d617c3790..d8103eae04 100644 --- a/tests/urlpatterns_reverse/included_named_urls2.py +++ b/tests/urlpatterns_reverse/included_named_urls2.py @@ -1,9 +1,9 @@ -from django.conf.urls import url +from django.urls import path, re_path from .views import empty_view urlpatterns = [ - url(r'^$', empty_view, name="named-url5"), - url(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url6"), - url(r'^(?P<one>[0-9]+)|(?P<two>[0-9]+)/$', empty_view), + path('', empty_view, name="named-url5"), + re_path(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url6"), + re_path(r'^(?P<one>[0-9]+)|(?P<two>[0-9]+)/$', empty_view), ] diff --git a/tests/urlpatterns_reverse/included_namespace_urls.py b/tests/urlpatterns_reverse/included_namespace_urls.py index 75b0bf1971..0b3b2b5a19 100644 --- a/tests/urlpatterns_reverse/included_namespace_urls.py +++ b/tests/urlpatterns_reverse/included_namespace_urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import include, url +from django.urls import include, path, re_path from .utils import URLObject from .views import empty_view, view_class_instance @@ -8,18 +8,18 @@ testobj4 = URLObject('testapp', 'test-ns4') app_name = 'included_namespace_urls' urlpatterns = [ - url(r'^normal/$', empty_view, name='inc-normal-view'), - url(r'^normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', empty_view, name='inc-normal-view'), + path('normal/', empty_view, name='inc-normal-view'), + re_path('^normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', empty_view, name='inc-normal-view'), - url(r'^\+\\\$\*/$', empty_view, name='inc-special-view'), + re_path(r'^\+\\\$\*/$', empty_view, name='inc-special-view'), - url(r'^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', empty_view, name='inc-mixed-args'), - url(r'^no_kwargs/([0-9]+)/([0-9]+)/$', empty_view, name='inc-no-kwargs'), + re_path('^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', empty_view, name='inc-mixed-args'), + re_path('^no_kwargs/([0-9]+)/([0-9]+)/$', empty_view, name='inc-no-kwargs'), - url(r'^view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', view_class_instance, name='inc-view-class'), + re_path('^view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', view_class_instance, name='inc-view-class'), - url(r'^test3/', include(*testobj3.urls)), - url(r'^test4/', include(*testobj4.urls)), - url(r'^ns-included3/', include(('urlpatterns_reverse.included_urls', 'included_urls'), namespace='inc-ns3')), - url(r'^ns-included4/', include('urlpatterns_reverse.namespace_urls', namespace='inc-ns4')), + path('test3/', include(*testobj3.urls)), + path('test4/', include(*testobj4.urls)), + path('ns-included3/', include(('urlpatterns_reverse.included_urls', 'included_urls'), namespace='inc-ns3')), + path('ns-included4/', include('urlpatterns_reverse.namespace_urls', namespace='inc-ns4')), ] diff --git a/tests/urlpatterns_reverse/included_no_kwargs_urls.py b/tests/urlpatterns_reverse/included_no_kwargs_urls.py index f124a09b2f..aa1a1a51a7 100644 --- a/tests/urlpatterns_reverse/included_no_kwargs_urls.py +++ b/tests/urlpatterns_reverse/included_no_kwargs_urls.py @@ -1,7 +1,7 @@ -from django.conf.urls import url +from django.urls import re_path from .views import empty_view urlpatterns = [ - url(r'^inner-no-kwargs/([0-9]+)/', empty_view, name="inner-no-kwargs") + re_path('^inner-no-kwargs/([0-9]+)/$', empty_view, name="inner-no-kwargs") ] diff --git a/tests/urlpatterns_reverse/included_urls.py b/tests/urlpatterns_reverse/included_urls.py index 240d9e5665..f34010b28f 100644 --- a/tests/urlpatterns_reverse/included_urls.py +++ b/tests/urlpatterns_reverse/included_urls.py @@ -1,9 +1,9 @@ -from django.conf.urls import url +from django.urls import path, re_path from .views import empty_view urlpatterns = [ - url(r'^$', empty_view, name="inner-nothing"), - url(r'^extra/(?P<extra>\w+)/$', empty_view, name="inner-extra"), - url(r'^(?P<one>[0-9]+)|(?P<two>[0-9]+)/$', empty_view, name="inner-disjunction"), + path('', empty_view, name='inner-nothing'), + re_path(r'extra/(?P<extra>\w+)/$', empty_view, name='inner-extra'), + re_path(r'(?P<one>[0-9]+)|(?P<two>[0-9]+)/$', empty_view, name='inner-disjunction'), ] diff --git a/tests/urlpatterns_reverse/included_urls2.py b/tests/urlpatterns_reverse/included_urls2.py index 4a4aef8d95..ec61aecce1 100644 --- a/tests/urlpatterns_reverse/included_urls2.py +++ b/tests/urlpatterns_reverse/included_urls2.py @@ -5,11 +5,11 @@ each name to resolve and Django must distinguish the possibilities based on the argument list. """ -from django.conf.urls import url +from django.urls import re_path from .views import empty_view urlpatterns = [ - url(r'^part/(?P<value>\w+)/$', empty_view, name="part"), - url(r'^part2/(?:(?P<value>\w+)/)?$', empty_view, name="part2"), + re_path(r'^part/(?P<value>\w+)/$', empty_view, name='part'), + re_path(r'^part2/(?:(?P<value>\w+)/)?$', empty_view, name='part2'), ] diff --git a/tests/urlpatterns_reverse/method_view_urls.py b/tests/urlpatterns_reverse/method_view_urls.py index e91966b4ac..39c53433c8 100644 --- a/tests/urlpatterns_reverse/method_view_urls.py +++ b/tests/urlpatterns_reverse/method_view_urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import url +from django.urls import path class ViewContainer: @@ -14,6 +14,6 @@ view_container = ViewContainer() urlpatterns = [ - url(r'^$', view_container.method_view, name='instance-method-url'), - url(r'^$', ViewContainer.classmethod_view, name='instance-method-url'), + path('', view_container.method_view, name='instance-method-url'), + path('', ViewContainer.classmethod_view, name='instance-method-url'), ] diff --git a/tests/urlpatterns_reverse/named_urls.py b/tests/urlpatterns_reverse/named_urls.py index 647c2630cf..06bb834dc7 100644 --- a/tests/urlpatterns_reverse/named_urls.py +++ b/tests/urlpatterns_reverse/named_urls.py @@ -1,10 +1,10 @@ -from django.conf.urls import include, url +from django.urls import include, path, re_path from .views import empty_view urlpatterns = [ - url(r'^$', empty_view, name="named-url1"), - url(r'^extra/(?P<extra>\w+)/$', empty_view, name="named-url2"), - url(r'^(?P<one>[0-9]+)|(?P<two>[0-9]+)/$', empty_view), - url(r'^included/', include('urlpatterns_reverse.included_named_urls')), + path('', empty_view, name='named-url1'), + re_path(r'^extra/(?P<extra>\w+)/$', empty_view, name='named-url2'), + re_path(r'^(?P<one>[0-9]+)|(?P<two>[0-9]+)/$', empty_view), + path('included/', include('urlpatterns_reverse.included_named_urls')), ] diff --git a/tests/urlpatterns_reverse/named_urls_conflict.py b/tests/urlpatterns_reverse/named_urls_conflict.py index 0c0c6eb47e..b1f883271f 100644 --- a/tests/urlpatterns_reverse/named_urls_conflict.py +++ b/tests/urlpatterns_reverse/named_urls_conflict.py @@ -1,17 +1,17 @@ -from django.conf.urls import url +from django.urls import path, re_path from .views import empty_view urlpatterns = [ # No kwargs - url(r'^conflict/cannot-go-here/$', empty_view, name='name-conflict'), - url(r'^conflict/$', empty_view, name='name-conflict'), + path('conflict/cannot-go-here/', empty_view, name='name-conflict'), + path('conflict/', empty_view, name='name-conflict'), # One kwarg - url(r'^conflict-first/(?P<first>\w+)/$', empty_view, name='name-conflict'), - url(r'^conflict-cannot-go-here/(?P<middle>\w+)/$', empty_view, name='name-conflict'), - url(r'^conflict-middle/(?P<middle>\w+)/$', empty_view, name='name-conflict'), - url(r'^conflict-last/(?P<last>\w+)/$', empty_view, name='name-conflict'), + re_path(r'^conflict-first/(?P<first>\w+)/$', empty_view, name='name-conflict'), + re_path(r'^conflict-cannot-go-here/(?P<middle>\w+)/$', empty_view, name='name-conflict'), + re_path(r'^conflict-middle/(?P<middle>\w+)/$', empty_view, name='name-conflict'), + re_path(r'^conflict-last/(?P<last>\w+)/$', empty_view, name='name-conflict'), # Two kwargs - url(r'^conflict/(?P<another>\w+)/(?P<extra>\w+)/cannot-go-here/$', empty_view, name='name-conflict'), - url(r'^conflict/(?P<extra>\w+)/(?P<another>\w+)/$', empty_view, name='name-conflict'), + re_path(r'^conflict/(?P<another>\w+)/(?P<extra>\w+)/cannot-go-here/$', empty_view, name='name-conflict'), + re_path(r'^conflict/(?P<extra>\w+)/(?P<another>\w+)/$', empty_view, name='name-conflict'), ] diff --git a/tests/urlpatterns_reverse/namespace_urls.py b/tests/urlpatterns_reverse/namespace_urls.py index a92df2716a..a8fd7bb878 100644 --- a/tests/urlpatterns_reverse/namespace_urls.py +++ b/tests/urlpatterns_reverse/namespace_urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import include, url +from django.urls import include, path, re_path from . import views from .utils import URLObject @@ -14,48 +14,48 @@ newappobj1 = URLObject('newapp') app_name = 'namespace_urls' urlpatterns = [ - url(r'^normal/$', views.empty_view, name='normal-view'), - url(r'^normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='normal-view'), - url(r'^resolver_match/$', views.pass_resolver_match_view, name='test-resolver-match'), + path('normal/', views.empty_view, name='normal-view'), + re_path(r'^normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='normal-view'), + path('resolver_match/', views.pass_resolver_match_view, name='test-resolver-match'), - url(r'^\+\\\$\*/$', views.empty_view, name='special-view'), + re_path(r'^\+\\\$\*/$', views.empty_view, name='special-view'), - url(r'^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='mixed-args'), - url(r'^no_kwargs/([0-9]+)/([0-9]+)/$', views.empty_view, name='no-kwargs'), + re_path(r'^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='mixed-args'), + re_path(r'^no_kwargs/([0-9]+)/([0-9]+)/$', views.empty_view, name='no-kwargs'), - url(r'^view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance, name='view-class'), + re_path(r'^view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance, name='view-class'), - url(r'^unnamed/normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view), - url(r'^unnamed/view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance), + re_path(r'^unnamed/normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view), + re_path(r'^unnamed/view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance), - url(r'^test1/', include(*testobj1.urls)), - url(r'^test2/', include(*testobj2.urls)), - url(r'^default/', include(*default_testobj.urls)), + path('test1/', include(*testobj1.urls)), + path('test2/', include(*testobj2.urls)), + path('default/', include(*default_testobj.urls)), - url(r'^other1/', include(*otherobj1.urls)), - url(r'^other[246]/', include(*otherobj2.urls)), + path('other1/', include(*otherobj1.urls)), + re_path(r'^other[246]/', include(*otherobj2.urls)), - url(r'^newapp1/', include(newappobj1.app_urls, 'new-ns1')), - url(r'^new-default/', include(newappobj1.app_urls)), + path('newapp1/', include(newappobj1.app_urls, 'new-ns1')), + path('new-default/', include(newappobj1.app_urls)), - url(r'^app-included[135]/', include('urlpatterns_reverse.included_app_urls', namespace='app-ns1')), - url(r'^app-included2/', include('urlpatterns_reverse.included_app_urls', namespace='app-ns2')), + re_path(r'^app-included[135]/', include('urlpatterns_reverse.included_app_urls', namespace='app-ns1')), + path('app-included2/', include('urlpatterns_reverse.included_app_urls', namespace='app-ns2')), - url(r'^ns-included[135]/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns1')), - url(r'^ns-included2/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns2')), + re_path(r'^ns-included[135]/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns1')), + path('ns-included2/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns2')), - url(r'^app-included/', include('urlpatterns_reverse.included_namespace_urls', 'inc-app')), + path('app-included/', include('urlpatterns_reverse.included_namespace_urls', 'inc-app')), - url(r'^included/', include('urlpatterns_reverse.included_namespace_urls')), - url( + path('included/', include('urlpatterns_reverse.included_namespace_urls')), + re_path( r'^inc(?P<outer>[0-9]+)/', include(('urlpatterns_reverse.included_urls', 'included_urls'), namespace='inc-ns5') ), - url(r'^included/([0-9]+)/', include('urlpatterns_reverse.included_namespace_urls')), + re_path(r'^included/([0-9]+)/', include('urlpatterns_reverse.included_namespace_urls')), - url( + re_path( r'^ns-outer/(?P<outer>[0-9]+)/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-outer') ), - url(r'^\+\\\$\*/', include('urlpatterns_reverse.namespace_urls', namespace='special')), + re_path(r'^\+\\\$\*/', include('urlpatterns_reverse.namespace_urls', namespace='special')), ] diff --git a/tests/urlpatterns_reverse/nested_urls.py b/tests/urlpatterns_reverse/nested_urls.py index f41b1449a8..d5af7d0d02 100644 --- a/tests/urlpatterns_reverse/nested_urls.py +++ b/tests/urlpatterns_reverse/nested_urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import include, url +from django.urls import include, path from django.views import View @@ -15,11 +15,11 @@ class View3(View): nested = ([ - url(r'^view1/$', view1, name='view1'), - url(r'^view3/$', View3.as_view(), name='view3'), + path('view1/', view1, name='view1'), + path('view3/', View3.as_view(), name='view3'), ], 'backend') urlpatterns = [ - url(r'^some/path/', include(nested, namespace='nested')), - url(r'^view2/$', view2, name='view2'), + path('some/path/', include(nested, namespace='nested')), + path('view2/', view2, name='view2'), ] diff --git a/tests/urlpatterns_reverse/reverse_lazy_urls.py b/tests/urlpatterns_reverse/reverse_lazy_urls.py index 694b23fad6..1cbda44fe9 100644 --- a/tests/urlpatterns_reverse/reverse_lazy_urls.py +++ b/tests/urlpatterns_reverse/reverse_lazy_urls.py @@ -1,10 +1,10 @@ -from django.conf.urls import url +from django.urls import path from .views import LazyRedirectView, empty_view, login_required_view urlpatterns = [ - url(r'^redirected_to/$', empty_view, name='named-lazy-url-redirected-to'), - url(r'^login/$', empty_view, name='some-login-page'), - url(r'^login_required_view/$', login_required_view), - url(r'^redirect/$', LazyRedirectView.as_view()), + path('redirected_to/', empty_view, name='named-lazy-url-redirected-to'), + path('login/', empty_view, name='some-login-page'), + path('login_required_view/', login_required_view), + path('redirect/', LazyRedirectView.as_view()), ] diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py index 61dbd208b7..f902cffdac 100644 --- a/tests/urlpatterns_reverse/tests.py +++ b/tests/urlpatterns_reverse/tests.py @@ -7,7 +7,6 @@ import threading from admin_scripts.tests import AdminScriptTestCase from django.conf import settings -from django.conf.urls import include, url from django.contrib.auth.models import User from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist from django.http import ( @@ -18,7 +17,8 @@ from django.test import SimpleTestCase, TestCase, override_settings from django.test.utils import override_script_prefix from django.urls import ( NoReverseMatch, Resolver404, ResolverMatch, URLPattern, URLResolver, - get_callable, get_resolver, get_urlconf, resolve, reverse, reverse_lazy, + get_callable, get_resolver, get_urlconf, include, path, re_path, resolve, + reverse, reverse_lazy, ) from django.urls.resolvers import RegexPattern @@ -401,7 +401,7 @@ class ResolverTests(SimpleTestCase): def test_resolver_reverse_conflict(self): """ - url() name arguments don't need to be unique. The last registered + URL pattern name arguments don't need to be unique. The last registered pattern takes precedence for conflicting names. """ resolver = get_resolver('urlpatterns_reverse.named_urls_conflict') @@ -411,7 +411,7 @@ class ResolverTests(SimpleTestCase): ('name-conflict', (), {}, 'conflict/'), # With an arg, the last URL in urlpatterns has precedence. ('name-conflict', ('arg',), {}, 'conflict-last/arg/'), - # With a kwarg, other url()s can be reversed. + # With a kwarg, other URL patterns can be reversed. ('name-conflict', (), {'first': 'arg'}, 'conflict-first/arg/'), ('name-conflict', (), {'middle': 'arg'}, 'conflict-middle/arg/'), ('name-conflict', (), {'last': 'arg'}, 'conflict-last/arg/'), @@ -430,10 +430,10 @@ class ResolverTests(SimpleTestCase): TypeError from occurring later (#10834). """ test_urls = ['', 'a', '\\', '.'] - for path in test_urls: - with self.subTest(path=path): + for path_ in test_urls: + with self.subTest(path=path_): with self.assertRaises(Resolver404): - resolve(path) + resolve(path_) def test_404_tried_urls_have_names(self): """ @@ -1094,15 +1094,15 @@ class NoRootUrlConfTests(SimpleTestCase): class ResolverMatchTests(SimpleTestCase): def test_urlpattern_resolve(self): - for path, url_name, app_name, namespace, view_name, func, args, kwargs in resolve_test_data: - with self.subTest(path=path): + for path_, url_name, app_name, namespace, view_name, func, args, kwargs in resolve_test_data: + with self.subTest(path=path_): # Legacy support for extracting "function, args, kwargs". - match_func, match_args, match_kwargs = resolve(path) + match_func, match_args, match_kwargs = resolve(path_) self.assertEqual(match_func, func) self.assertEqual(match_args, args) self.assertEqual(match_kwargs, kwargs) # ResolverMatch capabilities. - match = resolve(path) + match = resolve(path_) self.assertEqual(match.__class__, ResolverMatch) self.assertEqual(match.url_name, url_name) self.assertEqual(match.app_name, app_name) @@ -1140,7 +1140,7 @@ class ErroneousViewTests(SimpleTestCase): def test_noncallable_view(self): # View is not a callable (explicit import; arbitrary Python object) with self.assertRaisesMessage(TypeError, 'view must be a callable'): - url(r'uncallable-object/$', views.uncallable) + path('uncallable-object/', views.uncallable) def test_invalid_regex(self): # Regex contains an error (refs #6170) @@ -1194,9 +1194,9 @@ class ViewLoadingTests(SimpleTestCase): class IncludeTests(SimpleTestCase): url_patterns = [ - url(r'^inner/$', views.empty_view, name='urlobject-view'), - url(r'^inner/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='urlobject-view'), - url(r'^inner/\+\\\$\*/$', views.empty_view, name='urlobject-special-view'), + path('inner/', views.empty_view, name='urlobject-view'), + re_path(r'^inner/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='urlobject-view'), + re_path(r'^inner/\+\\\$\*/$', views.empty_view, name='urlobject-special-view'), ] app_urls = URLObject('inc-app') diff --git a/tests/urlpatterns_reverse/urlconf_inner.py b/tests/urlpatterns_reverse/urlconf_inner.py index e2c7b7bf80..6ea4e90f20 100644 --- a/tests/urlpatterns_reverse/urlconf_inner.py +++ b/tests/urlpatterns_reverse/urlconf_inner.py @@ -1,6 +1,6 @@ -from django.conf.urls import url from django.http import HttpResponse from django.template import Context, Template +from django.urls import path def inner_view(request): @@ -10,5 +10,5 @@ def inner_view(request): urlpatterns = [ - url(r'^second_test/$', inner_view, name='inner'), + path('second_test/', inner_view, name='inner'), ] diff --git a/tests/urlpatterns_reverse/urlconf_outer.py b/tests/urlpatterns_reverse/urlconf_outer.py index 65cf507aa4..100b1f52b1 100644 --- a/tests/urlpatterns_reverse/urlconf_outer.py +++ b/tests/urlpatterns_reverse/urlconf_outer.py @@ -1,8 +1,8 @@ -from django.conf.urls import include, url +from django.urls import include, path from . import urlconf_inner urlpatterns = [ - url(r'^test/me/$', urlconf_inner.inner_view, name='outer'), - url(r'^inner_urlconf/', include(urlconf_inner.__name__)) + path('test/me/', urlconf_inner.inner_view, name='outer'), + path('inner_urlconf/', include(urlconf_inner.__name__)) ] diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py index 731c97146b..f3c27b8e13 100644 --- a/tests/urlpatterns_reverse/urls.py +++ b/tests/urlpatterns_reverse/urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import include, url +from django.urls import include, path, re_path from .views import ( absolute_kwargs_view, defaults_view, empty_view, empty_view_nested_partial, @@ -6,74 +6,74 @@ from .views import ( ) other_patterns = [ - url(r'non_path_include/$', empty_view, name='non_path_include'), - url(r'nested_path/$', nested_view), + path('non_path_include/', empty_view, name='non_path_include'), + path('nested_path/', nested_view), ] urlpatterns = [ - url(r'^places/([0-9]+)/$', empty_view, name='places'), - url(r'^places?/$', empty_view, name="places?"), - url(r'^places+/$', empty_view, name="places+"), - url(r'^places*/$', empty_view, name="places*"), - url(r'^(?:places/)?$', empty_view, name="places2?"), - url(r'^(?:places/)+$', empty_view, name="places2+"), - url(r'^(?:places/)*$', empty_view, name="places2*"), - url(r'^places/([0-9]+|[a-z_]+)/', empty_view, name="places3"), - url(r'^places/(?P<id>[0-9]+)/$', empty_view, name="places4"), - url(r'^people/(?P<name>\w+)/$', empty_view, name="people"), - url(r'^people/(?:name/)', empty_view, name="people2"), - url(r'^people/(?:name/(\w+)/)?', empty_view, name="people2a"), - url(r'^people/(?P<name>\w+)-(?P=name)/$', empty_view, name="people_backref"), - url(r'^optional/(?P<name>.*)/(?:.+/)?', empty_view, name="optional"), - url(r'^optional/(?P<arg1>\d+)/(?:(?P<arg2>\d+)/)?', absolute_kwargs_view, name="named_optional"), - url(r'^optional/(?P<arg1>\d+)/(?:(?P<arg2>\d+)/)?$', absolute_kwargs_view, name="named_optional_terminated"), - url(r'^nested/noncapture/(?:(?P<p>\w+))$', empty_view, name='nested-noncapture'), - url(r'^nested/capture/((\w+)/)?$', empty_view, name='nested-capture'), - url(r'^nested/capture/mixed/((?P<p>\w+))$', empty_view, name='nested-mixedcapture'), - url(r'^nested/capture/named/(?P<outer>(?P<inner>\w+)/)?$', empty_view, name='nested-namedcapture'), - url(r'^hardcoded/$', empty_view, name="hardcoded"), - url(r'^hardcoded/doc\.pdf$', empty_view, name="hardcoded2"), - url(r'^people/(?P<state>\w\w)/(?P<name>\w+)/$', empty_view, name="people3"), - url(r'^people/(?P<state>\w\w)/(?P<name>[0-9])/$', empty_view, name="people4"), - url(r'^people/((?P<state>\w\w)/test)?/(\w+)/$', empty_view, name="people6"), - url(r'^character_set/[abcdef0-9]/$', empty_view, name="range"), - url(r'^character_set/[\w]/$', empty_view, name="range2"), - url(r'^price/\$([0-9]+)/$', empty_view, name="price"), - url(r'^price/[$]([0-9]+)/$', empty_view, name="price2"), - url(r'^price/[\$]([0-9]+)/$', empty_view, name="price3"), - url(r'^product/(?P<product>\w+)\+\(\$(?P<price>[0-9]+(\.[0-9]+)?)\)/$', empty_view, name="product"), - url(r'^headlines/(?P<year>[0-9]+)\.(?P<month>[0-9]+)\.(?P<day>[0-9]+)/$', empty_view, name="headlines"), - url(r'^windows_path/(?P<drive_name>[A-Z]):\\(?P<path>.+)/$', empty_view, name="windows"), - url(r'^special_chars/(?P<chars>.+)/$', empty_view, name="special"), - url(r'^(?P<name>.+)/[0-9]+/$', empty_view, name="mixed"), - url(r'^repeats/a{1,2}/$', empty_view, name="repeats"), - url(r'^repeats/a{2,4}/$', empty_view, name="repeats2"), - url(r'^repeats/a{2}/$', empty_view, name="repeats3"), - url(r'^test/1/?', empty_view, name="test"), - url(r'^outer/(?P<outer>[0-9]+)/', include('urlpatterns_reverse.included_urls')), - url(r'^outer-no-kwargs/([0-9]+)/', include('urlpatterns_reverse.included_no_kwargs_urls')), - url('', include('urlpatterns_reverse.extra_urls')), - url(r'^lookahead-/(?!not-a-city)(?P<city>[^/]+)/$', empty_view, name='lookahead-negative'), - url(r'^lookahead\+/(?=a-city)(?P<city>[^/]+)/$', empty_view, name='lookahead-positive'), - url(r'^lookbehind-/(?P<city>[^/]+)(?<!not-a-city)/$', empty_view, name='lookbehind-negative'), - url(r'^lookbehind\+/(?P<city>[^/]+)(?<=a-city)/$', empty_view, name='lookbehind-positive'), + re_path(r'^places/([0-9]+)/$', empty_view, name='places'), + re_path(r'^places?/$', empty_view, name='places?'), + re_path(r'^places+/$', empty_view, name='places+'), + re_path(r'^places*/$', empty_view, name='places*'), + re_path(r'^(?:places/)?$', empty_view, name='places2?'), + re_path(r'^(?:places/)+$', empty_view, name='places2+'), + re_path(r'^(?:places/)*$', empty_view, name='places2*'), + re_path(r'^places/([0-9]+|[a-z_]+)/', empty_view, name='places3'), + re_path(r'^places/(?P<id>[0-9]+)/$', empty_view, name='places4'), + re_path(r'^people/(?P<name>\w+)/$', empty_view, name='people'), + re_path(r'^people/(?:name/)$', empty_view, name='people2'), + re_path(r'^people/(?:name/(\w+)/)?$', empty_view, name='people2a'), + re_path(r'^people/(?P<name>\w+)-(?P=name)/$', empty_view, name='people_backref'), + re_path(r'^optional/(?P<name>.*)/(?:.+/)?', empty_view, name='optional'), + re_path(r'^optional/(?P<arg1>\d+)/(?:(?P<arg2>\d+)/)?', absolute_kwargs_view, name='named_optional'), + re_path(r'^optional/(?P<arg1>\d+)/(?:(?P<arg2>\d+)/)?$', absolute_kwargs_view, name='named_optional_terminated'), + re_path(r'^nested/noncapture/(?:(?P<p>\w+))$', empty_view, name='nested-noncapture'), + re_path(r'^nested/capture/((\w+)/)?$', empty_view, name='nested-capture'), + re_path(r'^nested/capture/mixed/((?P<p>\w+))$', empty_view, name='nested-mixedcapture'), + re_path(r'^nested/capture/named/(?P<outer>(?P<inner>\w+)/)?$', empty_view, name='nested-namedcapture'), + re_path(r'^hardcoded/$', empty_view, name='hardcoded'), + re_path(r'^hardcoded/doc\.pdf$', empty_view, name='hardcoded2'), + re_path(r'^people/(?P<state>\w\w)/(?P<name>\w+)/$', empty_view, name='people3'), + re_path(r'^people/(?P<state>\w\w)/(?P<name>[0-9])/$', empty_view, name='people4'), + re_path(r'^people/((?P<state>\w\w)/test)?/(\w+)/$', empty_view, name='people6'), + re_path(r'^character_set/[abcdef0-9]/$', empty_view, name='range'), + re_path(r'^character_set/[\w]/$', empty_view, name='range2'), + re_path(r'^price/\$([0-9]+)/$', empty_view, name='price'), + re_path(r'^price/[$]([0-9]+)/$', empty_view, name='price2'), + re_path(r'^price/[\$]([0-9]+)/$', empty_view, name='price3'), + re_path(r'^product/(?P<product>\w+)\+\(\$(?P<price>[0-9]+(\.[0-9]+)?)\)/$', empty_view, name='product'), + re_path(r'^headlines/(?P<year>[0-9]+)\.(?P<month>[0-9]+)\.(?P<day>[0-9]+)/$', empty_view, name='headlines'), + re_path(r'^windows_path/(?P<drive_name>[A-Z]):\\(?P<path>.+)/$', empty_view, name='windows'), + re_path(r'^special_chars/(?P<chars>.+)/$', empty_view, name='special'), + re_path(r'^(?P<name>.+)/[0-9]+/$', empty_view, name='mixed'), + re_path(r'^repeats/a{1,2}/$', empty_view, name='repeats'), + re_path(r'^repeats/a{2,4}/$', empty_view, name='repeats2'), + re_path(r'^repeats/a{2}/$', empty_view, name='repeats3'), + re_path(r'^test/1/?', empty_view, name='test'), + re_path(r'^outer/(?P<outer>[0-9]+)/', include('urlpatterns_reverse.included_urls')), + re_path(r'^outer-no-kwargs/([0-9]+)/', include('urlpatterns_reverse.included_no_kwargs_urls')), + re_path('', include('urlpatterns_reverse.extra_urls')), + re_path(r'^lookahead-/(?!not-a-city)(?P<city>[^/]+)/$', empty_view, name='lookahead-negative'), + re_path(r'^lookahead\+/(?=a-city)(?P<city>[^/]+)/$', empty_view, name='lookahead-positive'), + re_path(r'^lookbehind-/(?P<city>[^/]+)(?<!not-a-city)/$', empty_view, name='lookbehind-negative'), + re_path(r'^lookbehind\+/(?P<city>[^/]+)(?<=a-city)/$', empty_view, name='lookbehind-positive'), # Partials should be fine. - url(r'^partial/', empty_view_partial, name="partial"), - url(r'^partial_nested/', empty_view_nested_partial, name="partial_nested"), - url(r'^partial_wrapped/', empty_view_wrapped, name="partial_wrapped"), + path('partial/', empty_view_partial, name='partial'), + path('partial_nested/', empty_view_nested_partial, name='partial_nested'), + path('partial_wrapped/', empty_view_wrapped, name='partial_wrapped'), # This is non-reversible, but we shouldn't blow up when parsing it. - url(r'^(?:foo|bar)(\w+)/$', empty_view, name="disjunction"), + re_path(r'^(?:foo|bar)(\w+)/$', empty_view, name='disjunction'), - url(r'absolute_arg_view/$', absolute_kwargs_view), + path('absolute_arg_view/', absolute_kwargs_view), # Tests for #13154. Mixed syntax to test both ways of defining URLs. - url(r'defaults_view1/(?P<arg1>[0-9]+)/', defaults_view, {'arg2': 1}, name='defaults'), - url(r'defaults_view2/(?P<arg1>[0-9]+)/', defaults_view, {'arg2': 2}, 'defaults'), + re_path(r'^defaults_view1/(?P<arg1>[0-9]+)/$', defaults_view, {'arg2': 1}, name='defaults'), + re_path(r'^defaults_view2/(?P<arg1>[0-9]+)/$', defaults_view, {'arg2': 2}, 'defaults'), - url('^includes/', include(other_patterns)), + path('includes/', include(other_patterns)), # Security tests - url('(.+)/security/$', empty_view, name='security'), + re_path('(.+)/security/$', empty_view, name='security'), ] diff --git a/tests/urlpatterns_reverse/urls_without_handlers.py b/tests/urlpatterns_reverse/urls_without_handlers.py index 4c248cd0d9..65fb054e00 100644 --- a/tests/urlpatterns_reverse/urls_without_handlers.py +++ b/tests/urlpatterns_reverse/urls_without_handlers.py @@ -1,9 +1,9 @@ # A URLconf that doesn't define any handlerXXX. -from django.conf.urls import url +from django.urls import path from .views import bad_view, empty_view urlpatterns = [ - url(r'^test_view/$', empty_view, name="test_view"), - url(r'^bad_view/$', bad_view, name="bad_view"), + path('test_view/', empty_view, name="test_view"), + path('bad_view/', bad_view, name="bad_view"), ] diff --git a/tests/urlpatterns_reverse/utils.py b/tests/urlpatterns_reverse/utils.py index 8c96d8ca72..c1f9a55913 100644 --- a/tests/urlpatterns_reverse/utils.py +++ b/tests/urlpatterns_reverse/utils.py @@ -1,13 +1,13 @@ -from django.conf.urls import url +from django.urls import path, re_path from . import views class URLObject: urlpatterns = [ - url(r'^inner/$', views.empty_view, name='urlobject-view'), - url(r'^inner/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='urlobject-view'), - url(r'^inner/\+\\\$\*/$', views.empty_view, name='urlobject-special-view'), + path('inner/', views.empty_view, name='urlobject-view'), + re_path(r'^inner/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='urlobject-view'), + re_path(r'^inner/\+\\\$\*/$', views.empty_view, name='urlobject-special-view'), ] def __init__(self, app_name, namespace=None): |
