[3.11] GH-87390: Add remaining tests for PEP 646 (GH-98267) (#98667)

Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>.
Co-authored-by: Matthew Rahtz <matthew.rahtz@gmail.com>

(cherry picked from commit cb95cc24ef)
This commit is contained in:
Jelle Zijlstra 2022-10-25 18:46:57 -07:00 committed by GitHub
parent 18b788c63a
commit 83c8df29dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 495 additions and 247 deletions

View File

@ -203,23 +203,11 @@ class MyList(list):
self.assertEqual(repr(list[str]), 'list[str]')
self.assertEqual(repr(list[()]), 'list[()]')
self.assertEqual(repr(tuple[int, ...]), 'tuple[int, ...]')
x1 = tuple[
tuple( # Effectively the same as starring; TODO
tuple[int]
)
]
x1 = tuple[*tuple[int]]
self.assertEqual(repr(x1), 'tuple[*tuple[int]]')
x2 = tuple[
tuple( # Ditto TODO
tuple[int, str]
)
]
x2 = tuple[*tuple[int, str]]
self.assertEqual(repr(x2), 'tuple[*tuple[int, str]]')
x3 = tuple[
tuple( # Ditto TODO
tuple[int, ...]
)
]
x3 = tuple[*tuple[int, ...]]
self.assertEqual(repr(x3), 'tuple[*tuple[int, ...]]')
self.assertTrue(repr(MyList[int]).endswith('.BaseTest.test_repr.<locals>.MyList[int]'))
self.assertEqual(repr(list[str]()), '[]') # instances should keep their normal repr
@ -273,42 +261,24 @@ def test_parameters(self):
self.assertEqual(L5.__args__, (Callable[[K, V], K],))
self.assertEqual(L5.__parameters__, (K, V))
T1 = tuple[
tuple( # Ditto TODO
tuple[int]
)
]
T1 = tuple[*tuple[int]]
self.assertEqual(
T1.__args__,
tuple( # Ditto TODO
tuple[int]
)
(*tuple[int],),
)
self.assertEqual(T1.__parameters__, ())
T2 = tuple[
tuple( # Ditto TODO
tuple[T]
)
]
T2 = tuple[*tuple[T]]
self.assertEqual(
T2.__args__,
tuple( # Ditto TODO
tuple[T]
)
(*tuple[T],),
)
self.assertEqual(T2.__parameters__, (T,))
T4 = tuple[
tuple( # Ditto TODO
tuple[int, str]
)
]
T4 = tuple[*tuple[int, str]]
self.assertEqual(
T4.__args__,
tuple( # Ditto TODO
tuple[int, str]
)
(*tuple[int, str],),
)
self.assertEqual(T4.__parameters__, ())
@ -343,18 +313,7 @@ def test_equality(self):
self.assertEqual(list[int], list[int])
self.assertEqual(dict[str, int], dict[str, int])
self.assertEqual((*tuple[int],)[0], (*tuple[int],)[0])
self.assertEqual(
tuple[
tuple( # Effectively the same as starring; TODO
tuple[int]
)
],
tuple[
tuple( # Ditto TODO
tuple[int]
)
]
)
self.assertEqual(tuple[*tuple[int]], tuple[*tuple[int]])
self.assertNotEqual(dict[str, int], dict[str, str])
self.assertNotEqual(list, list[int])
self.assertNotEqual(list[int], list)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
Add tests for star-unpacking with PEP 646, and some other miscellaneous PEP 646 tests.