1import unittest 2 3class TestLoadAttrCache(unittest.TestCase): 4 def test_descriptor_added_after_optimization(self): 5 class Descriptor: 6 pass 7 8 class C: 9 def __init__(self): 10 self.x = 1 11 x = Descriptor() 12 13 def f(o): 14 return o.x 15 16 o = C() 17 for i in range(1025): 18 assert f(o) == 1 19 20 Descriptor.__get__ = lambda self, instance, value: 2 21 Descriptor.__set__ = lambda *args: None 22 23 self.assertEqual(f(o), 2) 24