@@ -5274,10 +5274,38 @@ def _source(self):
52745274
52755275 def test_multiple_inheritance (self ):
52765276 class A :
5277- pass
5278- with self .assertRaises (TypeError ):
5279- class X (NamedTuple , A ):
5280- x : int
5277+ @property
5278+ def x (self ):
5279+ return 4
5280+ @property
5281+ def y (self ):
5282+ return 5
5283+ def __len__ (self ):
5284+ return 10
5285+
5286+ class X (NamedTuple , A ):
5287+ x : int
5288+ self .assertEqual (X .__bases__ , (tuple , A ))
5289+ self .assertEqual (X .__orig_bases__ , (NamedTuple , A ))
5290+ self .assertEqual (X .__mro__ , (X , tuple , A , object ))
5291+
5292+ a = X (3 )
5293+ self .assertEqual (a .x , 3 )
5294+ self .assertEqual (a .y , 5 )
5295+ self .assertEqual (len (a ), 1 )
5296+
5297+ class Y (A , NamedTuple ):
5298+ x : int
5299+ self .assertEqual (Y .__bases__ , (A , tuple ))
5300+ self .assertEqual (Y .__orig_bases__ , (A , NamedTuple ))
5301+ self .assertEqual (Y .__mro__ , (Y , A , tuple , object ))
5302+
5303+ a = Y (3 )
5304+ self .assertEqual (a .x , 3 )
5305+ self .assertEqual (a .y , 5 )
5306+ self .assertEqual (len (a ), 10 )
5307+
5308+ def test_multiple_inheritance_errors (self ):
52815309 with self .assertRaises (TypeError ):
52825310 class X (NamedTuple , tuple ):
52835311 x : int
0 commit comments