@@ -1236,6 +1236,17 @@ def __mro_entries__(self, bases):
12361236 self .assertEqual (D .__orig_bases__ , (c ,))
12371237 self .assertEqual (D .__mro__ , (D , A , object ))
12381238
1239+ def test_new_class_with_mro_entry_genericalias (self ):
1240+ L1 = types .new_class ('L1' , (typing .List [int ],), {})
1241+ self .assertEqual (L1 .__bases__ , (list , typing .Generic ))
1242+ self .assertEqual (L1 .__orig_bases__ , (typing .List [int ],))
1243+ self .assertEqual (L1 .__mro__ , (L1 , list , typing .Generic , object ))
1244+
1245+ L2 = types .new_class ('L2' , (list [int ],), {})
1246+ self .assertEqual (L2 .__bases__ , (list ,))
1247+ self .assertEqual (L2 .__orig_bases__ , (list [int ],))
1248+ self .assertEqual (L2 .__mro__ , (L2 , list , object ))
1249+
12391250 def test_new_class_with_mro_entry_none (self ):
12401251 class A : pass
12411252 class B : pass
@@ -1351,6 +1362,11 @@ def __mro_entries__(self, bases):
13511362 for bases in [x , y , z , t ]:
13521363 self .assertIs (types .resolve_bases (bases ), bases )
13531364
1365+ def test_resolve_bases_with_mro_entry (self ):
1366+ self .assertEqual (types .resolve_bases ((typing .List [int ],)),
1367+ (list , typing .Generic ))
1368+ self .assertEqual (types .resolve_bases ((list [int ],)), (list ,))
1369+
13541370 def test_metaclass_derivation (self ):
13551371 # issue1294232: correct metaclass calculation
13561372 new_calls = [] # to check the order of __new__ calls
0 commit comments