| import unittest | |
| class TestLoadAttrCache(unittest.TestCase): | |
| def test_descriptor_added_after_optimization(self): | |
| class Descriptor: | |
| pass | |
| class C: | |
| def __init__(self): | |
| self.x = 1 | |
| x = Descriptor() | |
| def f(o): | |
| return o.x | |
| o = C() | |
| for i in range(1025): | |
| assert f(o) == 1 | |
| Descriptor.__get__ = lambda self, instance, value: 2 | |
| Descriptor.__set__ = lambda *args: None | |
| self.assertEqual(f(o), 2) |