@@ -1236,6 +1236,17 @@ def __mro_entries__(self, bases):
1236
1236
self .assertEqual (D .__orig_bases__ , (c ,))
1237
1237
self .assertEqual (D .__mro__ , (D , A , object ))
1238
1238
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
+
1239
1250
def test_new_class_with_mro_entry_none (self ):
1240
1251
class A : pass
1241
1252
class B : pass
@@ -1351,6 +1362,11 @@ def __mro_entries__(self, bases):
1351
1362
for bases in [x , y , z , t ]:
1352
1363
self .assertIs (types .resolve_bases (bases ), bases )
1353
1364
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
+
1354
1370
def test_metaclass_derivation (self ):
1355
1371
# issue1294232: correct metaclass calculation
1356
1372
new_calls = [] # to check the order of __new__ calls
0 commit comments