summaryrefslogtreecommitdiff
path: root/tests/urlpatterns
diff options
context:
space:
mode:
Diffstat (limited to 'tests/urlpatterns')
-rw-r--r--tests/urlpatterns/path_urls.py1
-rw-r--r--tests/urlpatterns/tests.py6
2 files changed, 7 insertions, 0 deletions
diff --git a/tests/urlpatterns/path_urls.py b/tests/urlpatterns/path_urls.py
index 953fe6b6d7..b40801b39d 100644
--- a/tests/urlpatterns/path_urls.py
+++ b/tests/urlpatterns/path_urls.py
@@ -11,6 +11,7 @@ urlpatterns = [
path('users/<id>/', views.empty_view, name='user-with-id'),
path('included_urls/', include('urlpatterns.included_urls')),
re_path(r'^regex/(?P<pk>[0-9]+)/$', views.empty_view, name='regex'),
+ re_path(r'^regex_optional/(?P<arg1>\d+)/(?:(?P<arg2>\d+)/)?', views.empty_view, name='regex_optional'),
path('', include('urlpatterns.more_urls')),
path('<lang>/<path:url>/', views.empty_view, name='lang-and-path'),
]
diff --git a/tests/urlpatterns/tests.py b/tests/urlpatterns/tests.py
index 74503e4518..66212d7df8 100644
--- a/tests/urlpatterns/tests.py
+++ b/tests/urlpatterns/tests.py
@@ -54,6 +54,12 @@ class SimplifiedURLTests(SimpleTestCase):
self.assertEqual(match.kwargs, {'pk': '1'})
self.assertEqual(match.route, '^regex/(?P<pk>[0-9]+)/$')
+ def test_re_path_with_optional_parameter(self):
+ match = resolve('/regex_optional/1/2/')
+ self.assertEqual(match.url_name, 'regex_optional')
+ self.assertEqual(match.kwargs, {'arg1': '1', 'arg2': '2'})
+ self.assertEqual(match.route, r'^regex_optional/(?P<arg1>\d+)/(?:(?P<arg2>\d+)/)?')
+
def test_path_lookup_with_inclusion(self):
match = resolve('/included_urls/extra/something/')
self.assertEqual(match.url_name, 'inner-extra')