Fixed #24781 -- Fixed repr() for lazy objects.
This commit is contained in:
parent
2f9c4e2b6f
commit
ffd18732f3
|
@ -75,6 +75,9 @@ def lazy(func, *resultclasses):
|
|||
(func, self.__args, self.__kw) + resultclasses
|
||||
)
|
||||
|
||||
def __repr__(self):
|
||||
return repr(self.__cast())
|
||||
|
||||
@classmethod
|
||||
def __prepare_class__(cls):
|
||||
for resultclass in resultclasses:
|
||||
|
|
|
@ -130,3 +130,18 @@ class FunctionalTestCase(unittest.TestCase):
|
|||
|
||||
self.assertEqual(lazy_a(), lazy_b())
|
||||
self.assertNotEqual(lazy_b(), lazy_c())
|
||||
|
||||
def test_lazy_repr_text(self):
|
||||
original_object = 'Lazy translation text'
|
||||
lazy_obj = lazy(lambda: original_object, six.text_type)
|
||||
self.assertEquals(repr(original_object), repr(lazy_obj()))
|
||||
|
||||
def test_lazy_repr_int(self):
|
||||
original_object = 15
|
||||
lazy_obj = lazy(lambda: original_object, int)
|
||||
self.assertEquals(repr(original_object), repr(lazy_obj()))
|
||||
|
||||
def test_lazy_repr_bytes(self):
|
||||
original_object = b'J\xc3\xbcst a str\xc3\xadng'
|
||||
lazy_obj = lazy(lambda: original_object, bytes)
|
||||
self.assertEquals(repr(original_object), repr(lazy_obj()))
|
||||
|
|
Loading…
Reference in New Issue