diff options
| author | Jon Dufresne <jon.dufresne@gmail.com> | 2014-09-18 13:03:09 -0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-10-07 13:06:39 -0400 |
| commit | c1ef234e310fb984ced37eac8c8b90f5b6155e5f (patch) | |
| tree | 51da49ccbe48c2bb942f8b3c72161636895d426c | |
| parent | d1e87aebf70dd035c98a0b0f0162c0a2c398598c (diff) | |
Fixed #23522 -- Changed reverse() to return a Unicode string; not bytes
| -rw-r--r-- | django/core/urlresolvers.py | 4 | ||||
| -rw-r--r-- | docs/releases/1.8.txt | 4 | ||||
| -rw-r--r-- | tests/urlpatterns_reverse/tests.py | 7 |
3 files changed, 13 insertions, 2 deletions
diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py index eff7e078e4..62e3949df8 100644 --- a/django/core/urlresolvers.py +++ b/django/core/urlresolvers.py @@ -577,9 +577,9 @@ def reverse(viewname, urlconf=None, args=None, kwargs=None, prefix=None, current if ns_pattern: resolver = get_ns_resolver(ns_pattern, resolver) - return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) + return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) -reverse_lazy = lazy(reverse, str) +reverse_lazy = lazy(reverse, six.text_type) def clear_url_caches(): diff --git a/docs/releases/1.8.txt b/docs/releases/1.8.txt index 01e48b75e4..892dbd47b2 100644 --- a/docs/releases/1.8.txt +++ b/docs/releases/1.8.txt @@ -607,6 +607,10 @@ Miscellaneous * The default max size of the Oracle test tablespace has increased from 200M to 500M. +* :func:`~django.core.urlresolvers.reverse` and + :func:`~django.core.urlresolvers.reverse_lazy` now return Unicode strings + instead of byte strings. + .. _deprecated-features-1.8: Features deprecated in 1.8 diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py index dbb1836b7a..9e5e4f513f 100644 --- a/tests/urlpatterns_reverse/tests.py +++ b/tests/urlpatterns_reverse/tests.py @@ -222,6 +222,13 @@ class URLPatternReverse(TestCase): # exception self.fail("Expected a NoReverseMatch, but none occurred.") + def test_reverse_returns_unicode(self): + name, expected, args, kwargs = test_data[0] + self.assertIsInstance( + reverse(name, args=args, kwargs=kwargs), + six.text_type + ) + class ResolverTests(unittest.TestCase): def test_resolver_repr(self): |
