Skip to content

Commit 90c4f38

Browse files
DaraanJelleZijlstra
andcommitted
Removed subTests or made to their own function
formatting to changelog Co-authored-by: Jelle Zijlstra <[email protected]> Co-authored-by: Daraan <[email protected]>
1 parent db36b48 commit 90c4f38

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
subscripted objects) had wrong parameters if they were directly
1717
subscripted with an `Unpack` object.
1818
Patch by [Daraan](https://github.com/Daraan).
19-
- Fix error in subscription of Unpack aliases causing nested Unpacks
19+
- Fix error in subscription of `Unpack` aliases causing nested Unpacks
2020
to not be resolved correctly. Patch by [Daraan](https://github.com/Daraan).
2121

2222
# Release 4.12.2 (June 7, 2024)

src/test_typing_extensions.py

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5781,40 +5781,45 @@ class D(Protocol[T1, T2, Unpack[Ts]]): pass
57815781

57825782
def test_substitution(self):
57835783
Ts = TypeVarTuple("Ts")
5784-
unpacked_str = Unpack[Ts][str]
5785-
with self.subTest("Check substitution result"):
5786-
self.assertIs(unpacked_str, str)
5784+
unpacked_str = Unpack[Ts][str] # This should not raise an error
5785+
self.assertIs(unpacked_str, str)
57875786

57885787
@skipUnless(TYPING_3_11_0, "Needs Issue #103 for <3.11")
57895788
def test_nested_unpack(self):
5790-
T = TypeVar('T')
57915789
Ts = TypeVarTuple("Ts")
57925790
Variadic = Tuple[int, Unpack[Ts]]
57935791
# Tuple[int, int, Tuple[str, int]]
57945792
direct_subscription = Variadic[int, Tuple[str, int]]
57955793
# Tuple[int, int, Tuple[*Ts, int]]
57965794
TupleAliasTs = Variadic[int, Tuple[Unpack[Ts], int]]
57975795

5798-
# if this fails all below are likely to fail too
57995796
# Tuple[int, int, Tuple[str, int]]
58005797
recursive_unpack = TupleAliasTs[str]
58015798
self.assertEqual(direct_subscription, recursive_unpack)
58025799
self.assertEqual(get_args(recursive_unpack), (int, int, Tuple[str, int]))
58035800

5801+
# Test with Callable
5802+
T = TypeVar("T")
5803+
# Tuple[int, (*Ts) -> T]
5804+
CallableAliasTsT = Variadic[Callable[[Unpack[Ts]], T]]
5805+
# Tuple[int, (str, int) -> object]
5806+
callable_fully_subscripted = CallableAliasTsT[Unpack[Tuple[str, int]], object]
5807+
self.assertEqual(get_args(callable_fully_subscripted), (int, Callable[[str, int], object]))
5808+
5809+
@skipUnless(TYPING_3_11_0, "Needs Issue #103 for <3.11")
5810+
def test_equivalent_nested_variadics(self):
5811+
T = TypeVar("T")
5812+
Ts = TypeVarTuple("Ts")
5813+
Variadic = Tuple[int, Unpack[Ts]]
58045814
TupleAliasTsT = Variadic[Tuple[Unpack[Ts], T]]
5805-
# Equivalent Forms
5806-
with self.subTest("Equivalence of variadic arguments"):
5807-
nested_tuple_bare = TupleAliasTsT[str, int, object]
5808-
self.assertEqual(nested_tuple_bare, TupleAliasTsT[Unpack[Tuple[str, int, object]]])
5809-
self.assertEqual(nested_tuple_bare, TupleAliasTsT[Unpack[Tuple[str, int]], object])
5810-
self.assertEqual(nested_tuple_bare, TupleAliasTsT[Unpack[Tuple[str]], Unpack[Tuple[int]], object])
5811-
self.assertEqual(get_args(nested_tuple_bare), (int, Tuple[str, int, object],))
5812-
5813-
with self.subTest("With Callable and Unpack"):
5814-
# Tuple[int, (str, int) -> object]
5815-
CallableAliasTsT = Variadic[Callable[[Unpack[Ts]], T]]
5816-
callable_fully_subscripted = CallableAliasTsT[Unpack[Tuple[str, int]], object]
5817-
self.assertEqual(get_args(callable_fully_subscripted), (int, Callable[[str, int], object],))
5815+
nested_tuple_bare = TupleAliasTsT[str, int, object]
5816+
5817+
self.assertEqual(get_args(nested_tuple_bare), (int, Tuple[str, int, object]))
5818+
# Variants
5819+
self.assertEqual(nested_tuple_bare, TupleAliasTsT[Unpack[Tuple[str, int, object]]])
5820+
self.assertEqual(nested_tuple_bare, TupleAliasTsT[Unpack[Tuple[str, int]], object])
5821+
self.assertEqual(nested_tuple_bare, TupleAliasTsT[Unpack[Tuple[str]], Unpack[Tuple[int]], object])
5822+
58185823

58195824
class TypeVarTupleTests(BaseTestCase):
58205825

0 commit comments

Comments
 (0)