diff options
| author | Eric Brandwein <brandweineric@gmail.com> | 2018-09-20 15:24:36 -0300 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-10-04 11:42:27 -0400 |
| commit | b0b4aac555711ae9116f9b54c24ec7e43a0971e9 (patch) | |
| tree | 7f2972250916b7f7e714ee5baa19268402cc1d90 /tests/urlpatterns | |
| parent | b8b1d8cad6ce5b15f6527aa14cc81ad7a0d00efe (diff) | |
Fixed #29775 -- Fixed URL converters in a nested namespaced path.
When using include() without namespaces of some urlpatterns that
have an include() with namespace, the converters of the parent
include() weren't being used to convert the arguments of reverse().
Diffstat (limited to 'tests/urlpatterns')
| -rw-r--r-- | tests/urlpatterns/path_base64_urls.py | 8 | ||||
| -rw-r--r-- | tests/urlpatterns/tests.py | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/tests/urlpatterns/path_base64_urls.py b/tests/urlpatterns/path_base64_urls.py index 9b69f929fe..afd11ac9f6 100644 --- a/tests/urlpatterns/path_base64_urls.py +++ b/tests/urlpatterns/path_base64_urls.py @@ -4,8 +4,16 @@ from . import converters, views register_converter(converters.Base64Converter, 'base64') +subsubpatterns = [ + path('<base64:last_value>/', views.empty_view, name='subsubpattern-base64'), +] + subpatterns = [ path('<base64:value>/', views.empty_view, name='subpattern-base64'), + path( + '<base64:value>/', + include((subsubpatterns, 'second-layer-namespaced-base64'), 'instance-ns-base64') + ), ] urlpatterns = [ diff --git a/tests/urlpatterns/tests.py b/tests/urlpatterns/tests.py index b3d97ec5b9..299258e56f 100644 --- a/tests/urlpatterns/tests.py +++ b/tests/urlpatterns/tests.py @@ -70,6 +70,13 @@ class SimplifiedURLTests(SimpleTestCase): url = reverse(url_name, kwargs=kwargs) self.assertEqual(url, expected) + @override_settings(ROOT_URLCONF='urlpatterns.path_base64_urls') + def test_converter_reverse_with_second_layer_instance_namespace(self): + kwargs = included_kwargs.copy() + kwargs['last_value'] = b'world' + url = reverse('instance-ns-base64:subsubpattern-base64', kwargs=kwargs) + self.assertEqual(url, '/base64/aGVsbG8=/subpatterns/d29ybGQ=/d29ybGQ=/') + def test_path_inclusion_is_matchable(self): match = resolve('/included_urls/extra/something/') self.assertEqual(match.url_name, 'inner-extra') |
