Skip to content

Commit e79fadb

Browse files
committed
verify _check_generic also for typing variants
1 parent 6d31bbb commit e79fadb

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/test_typing_extensions.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5399,6 +5399,24 @@ class ProtoZ(Protocol[P]):
53995399
H3 = G10[int]
54005400
self.assertEqual(H3.__args__, ((int, (str, int)),))
54015401

5402+
@skipUnless(TYPING_3_10_0, "ParamSpec not present before 3.10")
5403+
def test_substitution_with_typing_variants(self):
5404+
# verifies substitution and typing._check_generic working with typing variants
5405+
P = ParamSpec("P")
5406+
typing_P = typing.ParamSpec("typing_P")
5407+
typing_Concatenate = typing.Concatenate[int, P]
5408+
5409+
class Z(Generic[typing_P]):
5410+
pass
5411+
5412+
P1 = Z[typing_P]
5413+
self.assertEqual(P1.__parameters__, (typing_P,))
5414+
self.assertEqual(P1.__args__, (typing_P,))
5415+
5416+
C1 = Z[typing_Concatenate]
5417+
self.assertEqual(C1.__parameters__, (P,))
5418+
self.assertEqual(C1.__args__, (typing_Concatenate,))
5419+
54025420
def test_pickle(self):
54035421
global P, P_co, P_contra, P_default
54045422
P = ParamSpec('P')

0 commit comments

Comments
 (0)