From bbe2c7a965a9d8760cc8950a546ee5d878068d2d Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Mon, 9 Sep 2024 16:15:20 -0700 Subject: [PATCH] gh-123881: Add additional test coverage for PEP 695 edge cases Followup from https://github.com/python/cpython/pull/123883/files#r1750989014 --- Lib/test/test_type_params.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Lib/test/test_type_params.py b/Lib/test/test_type_params.py index d9c9ec4eddc368..dc0c0d0829f8d3 100644 --- a/Lib/test/test_type_params.py +++ b/Lib/test/test_type_params.py @@ -951,6 +951,7 @@ class C[T](Base, a=1, b=2, **kwargs): T, = C.__type_params__ self.assertEqual(T.__name__, "T") self.assertEqual(C.kwargs, {"a": 1, "b": 2, "c": 3}) + self.assertEqual(C.__bases__, (Base, Generic)) bases = (Base,) class C2[T](*bases, **kwargs): @@ -959,6 +960,22 @@ class C2[T](*bases, **kwargs): T, = C2.__type_params__ self.assertEqual(T.__name__, "T") self.assertEqual(C2.kwargs, {"c": 3}) + self.assertEqual(C2.__bases__, (Base, Generic)) + + def test_starargs_base(self): + class C1[T](*()): pass + + T, = C1.__type_params__ + self.assertEqual(T.__name__, "T") + self.assertEqual(C1.__bases__, (Generic,)) + + class Base: pass + bases = [Base] + class C2[T](*bases): pass + + T, = C2.__type_params__ + self.assertEqual(T.__name__, "T") + self.assertEqual(C2.__bases__, (Base, Generic)) class TypeParamsTraditionalTypeVarsTest(unittest.TestCase):