diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/urlpatterns_reverse/tests.py | 17 | ||||
| -rw-r--r-- | tests/urlpatterns_reverse/urls.py | 6 |
2 files changed, 23 insertions, 0 deletions
diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py index 4e2fcd3a31..eca5bc1e64 100644 --- a/tests/urlpatterns_reverse/tests.py +++ b/tests/urlpatterns_reverse/tests.py @@ -97,6 +97,12 @@ test_data = ( ('people_backref', '/people/nate-nate/', [], {'name': 'nate'}), ('optional', '/optional/fred/', [], {'name': 'fred'}), ('optional', '/optional/fred/', ['fred'], {}), + ('named_optional', '/optional/1/', [1], {}), + ('named_optional', '/optional/1/', [], {'arg1': 1}), + ('named_optional', '/optional/1/2/', [1, 2], {}), + ('named_optional', '/optional/1/2/', [], {'arg1': 1, 'arg2': 2}), + ('named_optional_terminated', '/optional/1/2/', [1, 2], {}), + ('named_optional_terminated', '/optional/1/2/', [], {'arg1': 1, 'arg2': 2}), ('hardcoded', '/hardcoded/', [], {}), ('hardcoded2', '/hardcoded/doc.pdf', [], {}), ('people3', '/people/il/adrian/', [], {'state': 'il', 'name': 'adrian'}), @@ -145,6 +151,17 @@ test_data = ( ('part2', '/prefix/xx/part2/one/', [], {'value': 'one', 'prefix': 'xx'}), ('part2', '/prefix/xx/part2/', [], {'prefix': 'xx'}), + # Tests for nested groups. Nested capturing groups will only work if you + # *only* supply the correct outer group. + ('nested-noncapture', '/nested/noncapture/opt', [], {'p': 'opt'}), + ('nested-capture', '/nested/capture/opt/', ['opt/'], {}), + ('nested-capture', NoReverseMatch, [], {'p': 'opt'}), + ('nested-mixedcapture', '/nested/capture/mixed/opt', ['opt'], {}), + ('nested-mixedcapture', NoReverseMatch, [], {'p': 'opt'}), + ('nested-namedcapture', '/nested/capture/named/opt/', [], {'outer': 'opt/'}), + ('nested-namedcapture', NoReverseMatch, [], {'outer': 'opt/', 'inner': 'opt'}), + ('nested-namedcapture', NoReverseMatch, [], {'inner': 'opt'}), + # Regression for #9038 # These views are resolved by method name. Each method is deployed twice - # once with an explicit argument, and once using the default value on diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py index 9b5a5f29fa..d6b692d220 100644 --- a/tests/urlpatterns_reverse/urls.py +++ b/tests/urlpatterns_reverse/urls.py @@ -32,6 +32,12 @@ with warnings.catch_warnings(): 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"), |
