mirror of
https://github.com/django/django.git
synced 2025-10-24 22:26:08 +00:00
Fixed #16406 -- Added ResolveMatch.captured_kwargs and extra_kwargs.
Thanks Florian Apolloner for the review and implementation idea.
This commit is contained in:
committed by
Mariusz Felisiak
parent
83c803f161
commit
baf9604ed8
@@ -89,7 +89,7 @@ resolve_test_data = (
|
||||
"mixed-args",
|
||||
views.empty_view,
|
||||
(),
|
||||
{"arg2": "37"},
|
||||
{"extra": True, "arg2": "37"},
|
||||
),
|
||||
(
|
||||
"/included/mixed_args/42/37/",
|
||||
@@ -1554,6 +1554,16 @@ class ResolverMatchTests(SimpleTestCase):
|
||||
"namespaces=[], route='^no_kwargs/([0-9]+)/([0-9]+)/$')",
|
||||
)
|
||||
|
||||
def test_repr_extra_kwargs(self):
|
||||
self.assertEqual(
|
||||
repr(resolve("/mixed_args/1986/11/")),
|
||||
"ResolverMatch(func=urlpatterns_reverse.views.empty_view, args=(), "
|
||||
"kwargs={'arg2': '11', 'extra': True}, url_name='mixed-args', "
|
||||
"app_names=[], namespaces=[], "
|
||||
"route='^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', "
|
||||
"captured_kwargs={'arg2': '11'}, extra_kwargs={'extra': True})",
|
||||
)
|
||||
|
||||
@override_settings(ROOT_URLCONF="urlpatterns_reverse.reverse_lazy_urls")
|
||||
def test_classbased_repr(self):
|
||||
self.assertEqual(
|
||||
@@ -1758,3 +1768,18 @@ class LookaheadTests(SimpleTestCase):
|
||||
with self.subTest(name=name, kwargs=kwargs):
|
||||
with self.assertRaises(NoReverseMatch):
|
||||
reverse(name, kwargs=kwargs)
|
||||
|
||||
|
||||
@override_settings(ROOT_URLCONF="urlpatterns_reverse.urls")
|
||||
class ReverseResolvedTests(SimpleTestCase):
|
||||
def test_rereverse(self):
|
||||
match = resolve("/resolved/12/")
|
||||
self.assertEqual(
|
||||
reverse(match.url_name, args=match.args, kwargs=match.kwargs),
|
||||
"/resolved/12/",
|
||||
)
|
||||
match = resolve("/resolved-overridden/12/url/")
|
||||
self.assertEqual(
|
||||
reverse(match.url_name, args=match.args, kwargs=match.captured_kwargs),
|
||||
"/resolved-overridden/12/url/",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user