diff --git a/tests/regressiontests/utils/functional.py b/tests/regressiontests/utils/functional.py
index 90a6f08..b9615e8 100644
|
a
|
b
|
|
| 1 | 1 | from django.utils import unittest |
| 2 | | from django.utils.functional import lazy, lazy_property |
| | 2 | from django.utils.functional import lazy, lazy_property, cached_property |
| 3 | 3 | |
| 4 | 4 | |
| 5 | 5 | class FunctionalTestCase(unittest.TestCase): |
| … |
… |
class FunctionalTestCase(unittest.TestCase):
|
| 37 | 37 | |
| 38 | 38 | self.assertRaises(NotImplementedError, lambda: A().do) |
| 39 | 39 | self.assertEqual(B().do, 'DO IT') |
| | 40 | |
| | 41 | def test_cached_property(self): |
| | 42 | """ |
| | 43 | Test that cached_property caches its value, |
| | 44 | and that it behaves like a property |
| | 45 | """ |
| | 46 | |
| | 47 | class A(object): |
| | 48 | |
| | 49 | @cached_property |
| | 50 | def value(self): |
| | 51 | return 1, object() |
| | 52 | |
| | 53 | a = A() |
| | 54 | |
| | 55 | # check that it is cached |
| | 56 | self.assertEqual(a.value, a.value) |
| | 57 | |
| | 58 | # check that it returns the right thing |
| | 59 | self.assertEqual(a.value[0], 1) |
| | 60 | |
| | 61 | # check that state isn't shared between instances |
| | 62 | a2 = A() |
| | 63 | self.assertNotEqual(a.value, a2.value) |
| | 64 | |
| | 65 | # check that it behaves like a property when there's no instance |
| | 66 | self.assertIsInstance(A.value, cached_property) |