Skip to content

Commit

Permalink
Refs #22384 -- Readded RegexURLResolver.reverse().
Browse files Browse the repository at this point in the history
It was removed in 785cc71 only because
it was untested and unused in Django itself, however, some third-party
apps use it.
  • Loading branch information
timgraham committed Jun 20, 2016
1 parent 2eb7cb2 commit 4e400dc
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
3 changes: 3 additions & 0 deletions django/urls/resolvers.py
Expand Up @@ -323,6 +323,9 @@ def resolve_error_handler(self, view_type):
callback = getattr(urls, 'handler%s' % view_type)
return get_callable(callback), {}

def reverse(self, lookup_view, *args, **kwargs):
return self._reverse_with_prefix(lookup_view, '', *args, **kwargs)

def _reverse_with_prefix(self, lookup_view, _prefix, *args, **kwargs):
if args and kwargs:
raise ValueError("Don't mix *args and **kwargs in call to reverse()!")
Expand Down
6 changes: 6 additions & 0 deletions tests/urlpatterns_reverse/tests.py
Expand Up @@ -364,6 +364,12 @@ def test_reverse_lazy_object_coercion_by_resolve(self):
except TypeError:
self.fail('Failed to coerce lazy object to text')

def test_resolver_reverse(self):
resolver = get_resolver('urlpatterns_reverse.named_urls')
self.assertEqual(resolver.reverse('named-url1'), '')
self.assertEqual(resolver.reverse('named-url2', 'arg'), 'extra/arg/')
self.assertEqual(resolver.reverse('named-url2', extra='arg'), 'extra/arg/')

def test_non_regex(self):
"""
Verifies that we raise a Resolver404 if what we are resolving doesn't
Expand Down

0 comments on commit 4e400dc

Please sign in to comment.