Skip to content

Commit 9fda1a1

Browse files
committed
Unified typing.Callable and collections.abc.Callable tests
1 parent ff79863 commit 9fda1a1

File tree

1 file changed

+16
-29
lines changed

1 file changed

+16
-29
lines changed

src/test_typing_extensions.py

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1726,8 +1726,7 @@ class C(Generic[T]): pass
17261726
self.assertEqual(get_args(Unpack), ())
17271727
self.assertEqual(get_args(Callable[Concatenate[int, P], int]),
17281728
(Concatenate[int, P], int))
1729-
with self.subTest("Concatenate[int, ...]"):
1730-
self.assertEqual(get_args(Callable[Concatenate[int, ...], int]),
1729+
self.assertEqual(get_args(Callable[Concatenate[int, ...], int]),
17311730
(Concatenate[int, ...], int))
17321731

17331732

@@ -5377,32 +5376,20 @@ class MyClass: ...
53775376
def test_valid_uses(self):
53785377
P = ParamSpec('P')
53795378
T = TypeVar('T')
5380-
5381-
C1 = Callable[Concatenate[int, P], int]
5382-
C2 = Callable[Concatenate[int, T, P], T]
5383-
self.assertEqual(C1.__origin__, C2.__origin__)
5384-
self.assertNotEqual(C1, C2)
5385-
5386-
with self.subTest("typing.Callable with Ellipsis"):
5387-
C3 = Callable[Concatenate[int, ...], int]
5388-
C4 = Callable[Concatenate[int, T, ...], T]
5389-
self.assertEqual(C3.__origin__, C4.__origin__)
5390-
self.assertNotEqual(C3, C4)
5391-
5392-
@skipUnless(TYPING_3_9_0, "Needs PEP 585")
5393-
def test_pep585_collections_callable(self):
5394-
P = ParamSpec('P')
5395-
T = TypeVar('T')
5396-
# Test collections.abc.Callable too.
5397-
C5 = collections.abc.Callable[Concatenate[int, P], int]
5398-
C6 = collections.abc.Callable[Concatenate[int, T, P], T]
5399-
self.assertEqual(C5.__origin__, C6.__origin__)
5400-
self.assertNotEqual(C5, C6)
5401-
5402-
C7 = collections.abc.Callable[Concatenate[int, ...], int]
5403-
C8 = collections.abc.Callable[Concatenate[int, T, ...], T]
5404-
self.assertEqual(C7.__origin__, C8.__origin__)
5405-
self.assertNotEqual(C7, C8)
5379+
for callable_variant in (Callable, collections.abc.Callable):
5380+
with self.subTest(callable_variant=callable_variant):
5381+
if not TYPING_3_9_0 and callable_variant is collections.abc.Callable:
5382+
self.skipTest("Needs PEP 585")
5383+
5384+
C1 = callable_variant[Concatenate[int, P], int]
5385+
C2 = callable_variant[Concatenate[int, T, P], T]
5386+
self.assertEqual(C1.__origin__, C2.__origin__)
5387+
self.assertNotEqual(C1, C2)
5388+
5389+
C3 = callable_variant[Concatenate[int, ...], int]
5390+
C4 = callable_variant[Concatenate[int, T, ...], T]
5391+
self.assertEqual(C3.__origin__, C4.__origin__)
5392+
self.assertNotEqual(C3, C4)
54065393

54075394
def test_invalid_uses(self):
54085395
P = ParamSpec('P')
@@ -5435,7 +5422,7 @@ def test_invalid_use(self):
54355422
):
54365423
Concatenate[(str,), P]
54375424

5438-
@skipUnless(TYPING_3_11_0 or (3, 10, 0) <= sys.version_info < (3, 10, 2),
5425+
@skipUnless(TYPING_3_11_0,
54395426
"Cannot be backported to <=3.9. See issue #48"
54405427
"Cannot use ... with typing._ConcatenateGenericAlias after 3.10.2")
54415428
def test_alias_subscription_with_ellipsis(self):

0 commit comments

Comments
 (0)