@@ -5704,6 +5704,25 @@ class F(list[int]): pass
57045704 self .assertEqual (get_original_bases (E ), (list [T ],))
57055705 self .assertEqual (get_original_bases (F ), (list [int ],))
57065706
5707+ @skipIf (
5708+ sys .version_info [:3 ] == (3 , 12 , 0 ) and sys .version_info [3 ] in {"alpha" , "beta" },
5709+ "Early versions of py312 had a bug"
5710+ )
5711+ def test_concrete_subclasses_of_generic_classes (self ):
5712+ T = TypeVar ("T" )
5713+
5714+ class FirstBase (Generic [T ]): pass
5715+ class SecondBase (Generic [T ]): pass
5716+ class First (FirstBase [int ]): pass
5717+ class Second (SecondBase [int ]): pass
5718+ class G (First , Second ): pass
5719+ self .assertEqual (get_original_bases (G ), (First , Second ))
5720+
5721+ class First_ (Generic [T ]): pass
5722+ class Second_ (Generic [T ]): pass
5723+ class H (First_ , Second_ ): pass
5724+ self .assertEqual (get_original_bases (H ), (First_ , Second_ ))
5725+
57075726 def test_namedtuples (self ):
57085727 # On 3.12, this should work well with typing.NamedTuple and typing_extensions.NamedTuple
57095728 # On lower versions, it will only work fully with typing_extensions.NamedTuple
0 commit comments