Skip to content

Commit 0991b42

Browse files
committed
Properly skipped tests
1 parent 8e4f0be commit 0991b42

File tree

1 file changed

+37
-32
lines changed

1 file changed

+37
-32
lines changed

src/test_typing_extensions.py

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1726,8 +1726,9 @@ 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-
if sys.version_info >= (3, 9, 2):
1730-
# Cannot construct Callable[Concatenate[int, ...] with non-types
1729+
with self.subTest("Concatenate[int, ...]"):
1730+
if sys.version_info < (3, 9, 2):
1731+
self.skipTest("arguments must be types before 3.9.2, i.e. no ...")
17311732
self.assertEqual(get_args(Callable[Concatenate[int, ...], int]),
17321733
(Concatenate[int, ...], int))
17331734

@@ -5384,24 +5385,25 @@ def test_valid_uses(self):
53845385
self.assertEqual(C1.__origin__, C2.__origin__)
53855386
self.assertNotEqual(C1, C2)
53865387

5387-
@skipUnless(TYPING_3_9_0, "Needs PEP 585")
5388-
def test_collections_abc_callable(self):
5388+
@skipUnless(TYPING_3_9_0, "Needs PEP 585; no backport for 3.8 typing")
5389+
def test_valid_uses_py39_plus(self):
53895390
P = ParamSpec('P')
53905391
T = TypeVar('T')
5391-
C3 = collections.abc.Callable[Concatenate[int, P], int]
5392-
C4 = collections.abc.Callable[Concatenate[int, T, P], T]
5393-
self.assertEqual(C3.__origin__, C4.__origin__)
5394-
self.assertNotEqual(C3, C4)
53955392

5396-
@skipUnless(sys.version_info >= (3, 9, 3), "Callable with Ellipsis cannot be constructed below 3.9.2")
5397-
def test_valid_uses_py39_plus(self):
5398-
T = TypeVar('T')
5399-
C5 = Callable[Concatenate[int, ...], int]
5400-
C6 = Callable[Concatenate[int, T, ...], T]
5393+
with self.subTest("typing.Callable with Ellipsis"):
5394+
if sys.version_info < (3, 9, 2):
5395+
self.skipTest("Must use types before 3.9.2")
5396+
C3 = Callable[Concatenate[int, ...], int]
5397+
C4 = Callable[Concatenate[int, T, ...], T]
5398+
self.assertEqual(C3.__origin__, C4.__origin__)
5399+
self.assertNotEqual(C3, C4)
5400+
5401+
# Test collections.abc.Callable too.
5402+
C5 = collections.abc.Callable[Concatenate[int, P], int]
5403+
C6 = collections.abc.Callable[Concatenate[int, T, P], T]
54015404
self.assertEqual(C5.__origin__, C6.__origin__)
54025405
self.assertNotEqual(C5, C6)
54035406

5404-
# Test collections.abc.Callable too.
54055407
C7 = collections.abc.Callable[Concatenate[int, ...], int]
54065408
C8 = collections.abc.Callable[Concatenate[int, T, ...], T]
54075409
self.assertEqual(C7.__origin__, C8.__origin__)
@@ -5423,26 +5425,29 @@ def test_invalid_uses(self):
54235425
):
54245426
Concatenate[P, T]
54255427

5426-
# Cannot construct a Callable with Ellipsis in 3.8 as args must be types
5427-
if sys.version_info >= (3, 9, 2):
5428-
with self.assertRaisesRegex(
5429-
TypeError,
5430-
'is not a generic class',
5431-
):
5432-
Callable[Concatenate[int, ...], Any][T]
5428+
@skipIf(sys.version_info < (3, 9, 2), "Args must be types below 3.9.2")
5429+
def test_invalid_uses_py39_2_plus(self):
5430+
T = TypeVar('T')
5431+
with self.assertRaisesRegex(
5432+
TypeError,
5433+
'is not a generic class',
5434+
):
5435+
Callable[Concatenate[int, ...], Any][T]
54335436

5434-
if not TYPING_3_11_0:
5435-
with self.assertRaisesRegex(
5436-
TypeError,
5437-
'each arg must be a type',
5438-
):
5439-
Concatenate[1, P]
5437+
@skipIf(TYPING_3_11_0, "Args can be non-types in 3.11+")
5438+
def test_invalid_uses_before_3_11(self):
5439+
P = ParamSpec('P')
5440+
with self.assertRaisesRegex(
5441+
TypeError,
5442+
'each arg must be a type',
5443+
):
5444+
Concatenate[1, P]
54405445

5441-
with self.assertRaisesRegex(
5442-
TypeError,
5443-
'each arg must be a type.',
5444-
):
5445-
Concatenate[1, ..., P]
5446+
with self.assertRaisesRegex(
5447+
TypeError,
5448+
'each arg must be a type.',
5449+
):
5450+
Concatenate[1, ..., P]
54465451

54475452
@skipUnless(TYPING_3_11_0 or (3, 10, 0) <= sys.version_info < (3, 10, 2),
54485453
"Cannot be backported to <=3.9"

0 commit comments

Comments
 (0)