Skip to content

Commit 408ae2e

Browse files
committed
Added more invalid test cases
1 parent e1b3095 commit 408ae2e

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

src/test_typing_extensions.py

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7317,14 +7317,48 @@ def test_invalid_cases(self):
73177317
self.assertEqual(get_args(too_many), (int, bool))
73187318
self.assertEqual(too_many.__parameters__, ())
73197319

7320-
ListOrSet2T = TypeAliasType("ListOrSetT", Union[List[T], Set[T2]], type_params=(T, T2))
7320+
ListOrSet2T = TypeAliasType("ListOrSet2T", Union[List[T], Set[T2]], type_params=(T, T2))
73217321
not_enough = ListOrSet2T[int]
73227322
self.assertEqual(get_args(not_enough), (int,))
73237323
self.assertEqual(not_enough.__parameters__, ())
73247324

73257325
not_enough2 = ListOrSet2T[T]
73267326
self.assertEqual(get_args(not_enough2), (T,))
73277327
self.assertEqual(not_enough2.__parameters__, (T,))
7328+
# ParamSpec
7329+
P = ParamSpec('P')
7330+
CallableP = TypeAliasType("CallableP", Callable[P, T], type_params=(P,))
7331+
7332+
callable_not_enough = CallableP[int]
7333+
self.assertEqual(callable_not_enough.__parameters__, ())
7334+
self.assertEqual(get_args(callable_not_enough), (int, ))
7335+
7336+
callable_too_many = CallableP[str, float, T2, int]
7337+
self.assertEqual(callable_too_many.__parameters__, (T2, ))
7338+
self.assertEqual(get_args(callable_too_many), (str, float, T2, int, ))
7339+
7340+
# Test with Concatenate
7341+
callable_concat = CallableP[Concatenate[Any, T2, P], Any]
7342+
reveal_type(callable_concat)
7343+
self.assertEqual(callable_concat.__parameters__, (T2, P))
7344+
self.assertEqual(get_args(callable_concat), (Concatenate[Any, T2, P], Any))
7345+
7346+
# TypeVarTuple
7347+
Ts = TypeVarTuple("Ts")
7348+
Variadic = TypeAliasType("Variadic", Tuple[int, Unpack[Ts]], type_params=(Ts,))
7349+
# No Unpack
7350+
invalid_tuple_A = Variadic[Tuple[int, T]]
7351+
self.assertEqual(invalid_tuple_A.__parameters__, (T, ))
7352+
self.assertEqual(get_args(invalid_tuple_A), (Tuple[int, T], ))
7353+
7354+
# To type tuple
7355+
invalid_tuple_B = Variadic[int, T]
7356+
self.assertEqual(invalid_tuple_B.__parameters__, (T, ))
7357+
7358+
# No Tuple, but list
7359+
invalud_tuple_C = Variadic[[int, T]]
7360+
self.assertEqual(invalud_tuple_C.__parameters__, ())
7361+
self.assertEqual(get_args(invalud_tuple_C), ([int, T],))
73287362

73297363
def test_pickle(self):
73307364
global Alias

0 commit comments

Comments
 (0)