mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			23 lines
		
	
	
	
		
			529 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			529 B
		
	
	
	
		
			Python
		
	
	
	
	
	
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)
 |