Skip to content

Commit 0ba4e85

Browse files
committed
gh-143959: Make _types optional for test_types
1 parent a3b9317 commit 0ba4e85

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

Lib/test/test_types.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,10 @@ def clear_typing_caches():
4343

4444
class TypesTests(unittest.TestCase):
4545

46-
def test_names(self):
46+
def check_types_names(self, module_types, *, c_extension=False):
4747
c_only_names = {'CapsuleType'}
4848
ignored = {'new_class', 'resolve_bases', 'prepare_class',
4949
'get_original_bases', 'DynamicClassAttribute', 'coroutine'}
50-
51-
for name in c_types.__all__:
52-
if name not in c_only_names | ignored:
53-
self.assertIs(getattr(c_types, name), getattr(py_types, name))
54-
5550
all_names = ignored | {
5651
'AsyncGeneratorType', 'BuiltinFunctionType', 'BuiltinMethodType',
5752
'CapsuleType', 'CellType', 'ClassMethodDescriptorType', 'CodeType',
@@ -63,8 +58,24 @@ def test_names(self):
6358
'ModuleType', 'NoneType', 'NotImplementedType', 'SimpleNamespace',
6459
'TracebackType', 'UnionType', 'WrapperDescriptorType',
6560
}
66-
self.assertEqual(all_names, set(c_types.__all__))
67-
self.assertEqual(all_names - c_only_names, set(py_types.__all__))
61+
expected = all_names if c_extension else all_names - c_only_names
62+
self.assertEqual(expected, set(module_types.__all__))
63+
64+
@unittest.skipUnless(c_types, "requires C _types module")
65+
def test_c_types_names(self):
66+
self.check_types_names(c_types, c_extension=True)
67+
68+
def test_py_types_names(self):
69+
self.check_types_names(py_types, c_extension=False)
70+
71+
@unittest.skipUnless(c_types, "requires C _types module")
72+
def test_types_names_consistency(self):
73+
c_only_names = {'CapsuleType'}
74+
ignored = {'new_class', 'resolve_bases', 'prepare_class',
75+
'get_original_bases', 'DynamicClassAttribute', 'coroutine'}
76+
for name in c_types.__all__:
77+
if name not in c_only_names | ignored:
78+
self.assertIs(getattr(c_types, name), getattr(py_types, name))
6879

6980
def test_truth_values(self):
7081
if None: self.fail('None is true instead of false')

0 commit comments

Comments
 (0)