diff options
Diffstat (limited to 'tests/utils_tests/test_functional.py')
| -rw-r--r-- | tests/utils_tests/test_functional.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/utils_tests/test_functional.py b/tests/utils_tests/test_functional.py index ab649b7983..af4bd197a6 100644 --- a/tests/utils_tests/test_functional.py +++ b/tests/utils_tests/test_functional.py @@ -1,3 +1,5 @@ +from unittest import mock + from django.test import SimpleTestCase from django.utils.functional import cached_property, lazy @@ -207,3 +209,12 @@ class FunctionalTests(SimpleTestCase): original_object = b'J\xc3\xbcst a str\xc3\xadng' lazy_obj = lazy(lambda: original_object, bytes) self.assertEqual(repr(original_object), repr(lazy_obj())) + + def test_lazy_class_preparation_caching(self): + # lazy() should prepare the proxy class only once i.e. the first time + # it's used. + lazified = lazy(lambda: 0, int) + __proxy__ = lazified().__class__ + with mock.patch.object(__proxy__, '__prepare_class__') as mocked: + lazified() + mocked.assert_not_called() |
