mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #24781 -- Fixed repr() for lazy objects.
This commit is contained in:
		| @@ -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())) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user