1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +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:
Alokik Vijay
2022-03-28 21:26:20 +05:30
committed by Mariusz Felisiak
parent 83c803f161
commit baf9604ed8
11 changed files with 163 additions and 14 deletions

View File

@@ -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/",
)