mirror of
https://github.com/django/django.git
synced 2024-12-28 12:06:22 +00:00
Fixed #24252 -- Forced lazy __str__ to utf-8 on Python 2
Thanks Stanislas Guerra for the report and Tomas Ehrlich for the review.
This commit is contained in:
parent
250aa7c39b
commit
cd0ceaa102
@ -95,6 +95,7 @@ def lazy(func, *resultclasses):
|
|||||||
cls.__str__ = cls.__text_cast
|
cls.__str__ = cls.__text_cast
|
||||||
else:
|
else:
|
||||||
cls.__unicode__ = cls.__text_cast
|
cls.__unicode__ = cls.__text_cast
|
||||||
|
cls.__str__ = cls.__bytes_cast_encoded
|
||||||
elif cls._delegate_bytes:
|
elif cls._delegate_bytes:
|
||||||
if six.PY3:
|
if six.PY3:
|
||||||
cls.__bytes__ = cls.__bytes_cast
|
cls.__bytes__ = cls.__bytes_cast
|
||||||
@ -117,6 +118,9 @@ def lazy(func, *resultclasses):
|
|||||||
def __bytes_cast(self):
|
def __bytes_cast(self):
|
||||||
return bytes(func(*self.__args, **self.__kw))
|
return bytes(func(*self.__args, **self.__kw))
|
||||||
|
|
||||||
|
def __bytes_cast_encoded(self):
|
||||||
|
return func(*self.__args, **self.__kw).encode('utf-8')
|
||||||
|
|
||||||
def __cast(self):
|
def __cast(self):
|
||||||
if self._delegate_bytes:
|
if self._delegate_bytes:
|
||||||
return self.__bytes_cast()
|
return self.__bytes_cast()
|
||||||
|
@ -318,6 +318,17 @@ class ReverseLazyTest(TestCase):
|
|||||||
response = self.client.get('/login_required_view/')
|
response = self.client.get('/login_required_view/')
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
def test_inserting_reverse_lazy_into_string(self):
|
||||||
|
self.assertEqual(
|
||||||
|
'Some URL: %s' % reverse_lazy('some-login-page'),
|
||||||
|
'Some URL: /login/'
|
||||||
|
)
|
||||||
|
if six.PY2:
|
||||||
|
self.assertEqual(
|
||||||
|
b'Some URL: %s' % reverse_lazy('some-login-page'),
|
||||||
|
'Some URL: /login/'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ReverseLazySettingsTest(AdminScriptTestCase):
|
class ReverseLazySettingsTest(AdminScriptTestCase):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user