Loading django/utils/functional.py +3 −0 Original line number Diff line number Diff line Loading @@ -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: Loading tests/utils_tests/test_functional.py +15 −0 Original line number Diff line number Diff line Loading @@ -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
django/utils/functional.py +3 −0 Original line number Diff line number Diff line Loading @@ -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: Loading
tests/utils_tests/test_functional.py +15 −0 Original line number Diff line number Diff line Loading @@ -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()))