• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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