summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2014-09-18 13:03:09 -0700
committerTim Graham <timograham@gmail.com>2014-10-07 13:06:39 -0400
commitc1ef234e310fb984ced37eac8c8b90f5b6155e5f (patch)
tree51da49ccbe48c2bb942f8b3c72161636895d426c
parentd1e87aebf70dd035c98a0b0f0162c0a2c398598c (diff)
Fixed #23522 -- Changed reverse() to return a Unicode string; not bytes
-rw-r--r--django/core/urlresolvers.py4
-rw-r--r--docs/releases/1.8.txt4
-rw-r--r--tests/urlpatterns_reverse/tests.py7
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):