File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -4113,6 +4113,32 @@ class E(D):
41134113 else :
41144114 self .fail ("shouldn't be able to create inheritance cycles" )
41154115
4116+ def test_assign_bases_many_subclasses (self ):
4117+ class A :
4118+ x = 'hello'
4119+ def __call__ (self ):
4120+ return 123
4121+ def __getitem__ (self , index ):
4122+ return None
4123+
4124+ class X :
4125+ x = 'bye'
4126+
4127+ class B (A ):
4128+ pass
4129+
4130+ subclasses = []
4131+ for i in range (1000 ):
4132+ sc = type (f'Sub{ i } ' , (B ,), {})
4133+ subclasses .append (sc )
4134+
4135+ self .assertEqual (subclasses [0 ]()(), 123 )
4136+ self .assertEqual (subclasses [0 ]().x , 'hello' )
4137+ B .__bases__ = (X ,)
4138+ with self .assertRaises (TypeError ):
4139+ subclasses [0 ]()()
4140+ self .assertEqual (subclasses [0 ]().x , 'bye' )
4141+
41164142 def test_builtin_bases (self ):
41174143 # Make sure all the builtin types can have their base queried without
41184144 # segfaulting. See issue #5787.
You can’t perform that action at this time.
0 commit comments