diff options
Diffstat (limited to 'Lib/test/test_genericclass.py')
-rw-r--r-- | Lib/test/test_genericclass.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_genericclass.py b/Lib/test/test_genericclass.py index 214527b01f..2057fc000c 100644 --- a/Lib/test/test_genericclass.py +++ b/Lib/test/test_genericclass.py @@ -1,4 +1,5 @@ import unittest +from test import support class TestMROEntry(unittest.TestCase): @@ -248,5 +249,22 @@ class TestClassGetitem(unittest.TestCase): self.assertEqual(C[int], 'from metaclass') +@support.cpython_only +class CAPITest(unittest.TestCase): + + def test_c_class(self): + from _testcapi import Generic, GenericAlias + self.assertIsInstance(Generic.__class_getitem__(Generic, int), GenericAlias) + + IntGeneric = Generic[int] + self.assertIs(type(IntGeneric), GenericAlias) + self.assertEqual(IntGeneric.__mro_entries__(()), (int,)) + class C(IntGeneric): + pass + self.assertEqual(C.__bases__, (int,)) + self.assertEqual(C.__orig_bases__, (IntGeneric,)) + self.assertEqual(C.__mro__, (C, int, object)) + + if __name__ == "__main__": unittest.main() |