summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/utils/translation/trans_real.py3
-rw-r--r--tests/regressiontests/i18n/tests.py4
2 files changed, 6 insertions, 1 deletions
diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py
index 9e94840ee0..1bcef2d8de 100644
--- a/django/utils/translation/trans_real.py
+++ b/django/utils/translation/trans_real.py
@@ -246,7 +246,8 @@ def do_translate(message, translation_function):
"""
global _default
- eol_message = message.replace('\r\n', '\n').replace('\r', '\n')
+ # str() is allowing a bytestring message to remain bytestring on Python 2
+ eol_message = message.replace(str('\r\n'), str('\n')).replace(str('\r'), str('\n'))
t = getattr(_active, "value", None)
if t is not None:
result = getattr(t, translation_function)(eol_message)
diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py
index 4054f85ef0..2e0c097a19 100644
--- a/tests/regressiontests/i18n/tests.py
+++ b/tests/regressiontests/i18n/tests.py
@@ -83,6 +83,10 @@ class TranslationTests(TestCase):
s4 = ugettext_lazy('Some other string')
self.assertEqual(False, s == s4)
+ if not six.PY3:
+ # On Python 2, gettext_lazy should not transform a bytestring to unicode
+ self.assertEqual(gettext_lazy(b"test").upper(), b"TEST")
+
def test_lazy_pickle(self):
s1 = ugettext_lazy("test")
self.assertEqual(six.text_type(s1), "test")