mirror of
https://github.com/python/cpython.git
synced 2025-08-28 12:45:07 +00:00
[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:
parent
18b788c63a
commit
83c8df29dd
3 changed files with 495 additions and 247 deletions
|
@ -203,23 +203,11 @@ class BaseTest(unittest.TestCase):
|
||||||
self.assertEqual(repr(list[str]), 'list[str]')
|
self.assertEqual(repr(list[str]), 'list[str]')
|
||||||
self.assertEqual(repr(list[()]), 'list[()]')
|
self.assertEqual(repr(list[()]), 'list[()]')
|
||||||
self.assertEqual(repr(tuple[int, ...]), 'tuple[int, ...]')
|
self.assertEqual(repr(tuple[int, ...]), 'tuple[int, ...]')
|
||||||
x1 = tuple[
|
x1 = tuple[*tuple[int]]
|
||||||
tuple( # Effectively the same as starring; TODO
|
|
||||||
tuple[int]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
self.assertEqual(repr(x1), 'tuple[*tuple[int]]')
|
self.assertEqual(repr(x1), 'tuple[*tuple[int]]')
|
||||||
x2 = tuple[
|
x2 = tuple[*tuple[int, str]]
|
||||||
tuple( # Ditto TODO
|
|
||||||
tuple[int, str]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
self.assertEqual(repr(x2), 'tuple[*tuple[int, str]]')
|
self.assertEqual(repr(x2), 'tuple[*tuple[int, str]]')
|
||||||
x3 = tuple[
|
x3 = tuple[*tuple[int, ...]]
|
||||||
tuple( # Ditto TODO
|
|
||||||
tuple[int, ...]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
self.assertEqual(repr(x3), 'tuple[*tuple[int, ...]]')
|
self.assertEqual(repr(x3), 'tuple[*tuple[int, ...]]')
|
||||||
self.assertTrue(repr(MyList[int]).endswith('.BaseTest.test_repr.<locals>.MyList[int]'))
|
self.assertTrue(repr(MyList[int]).endswith('.BaseTest.test_repr.<locals>.MyList[int]'))
|
||||||
self.assertEqual(repr(list[str]()), '[]') # instances should keep their normal repr
|
self.assertEqual(repr(list[str]()), '[]') # instances should keep their normal repr
|
||||||
|
@ -273,42 +261,24 @@ class BaseTest(unittest.TestCase):
|
||||||
self.assertEqual(L5.__args__, (Callable[[K, V], K],))
|
self.assertEqual(L5.__args__, (Callable[[K, V], K],))
|
||||||
self.assertEqual(L5.__parameters__, (K, V))
|
self.assertEqual(L5.__parameters__, (K, V))
|
||||||
|
|
||||||
T1 = tuple[
|
T1 = tuple[*tuple[int]]
|
||||||
tuple( # Ditto TODO
|
|
||||||
tuple[int]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
T1.__args__,
|
T1.__args__,
|
||||||
tuple( # Ditto TODO
|
(*tuple[int],),
|
||||||
tuple[int]
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
self.assertEqual(T1.__parameters__, ())
|
self.assertEqual(T1.__parameters__, ())
|
||||||
|
|
||||||
T2 = tuple[
|
T2 = tuple[*tuple[T]]
|
||||||
tuple( # Ditto TODO
|
|
||||||
tuple[T]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
T2.__args__,
|
T2.__args__,
|
||||||
tuple( # Ditto TODO
|
(*tuple[T],),
|
||||||
tuple[T]
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
self.assertEqual(T2.__parameters__, (T,))
|
self.assertEqual(T2.__parameters__, (T,))
|
||||||
|
|
||||||
T4 = tuple[
|
T4 = tuple[*tuple[int, str]]
|
||||||
tuple( # Ditto TODO
|
|
||||||
tuple[int, str]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
T4.__args__,
|
T4.__args__,
|
||||||
tuple( # Ditto TODO
|
(*tuple[int, str],),
|
||||||
tuple[int, str]
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
self.assertEqual(T4.__parameters__, ())
|
self.assertEqual(T4.__parameters__, ())
|
||||||
|
|
||||||
|
@ -343,18 +313,7 @@ class BaseTest(unittest.TestCase):
|
||||||
self.assertEqual(list[int], list[int])
|
self.assertEqual(list[int], list[int])
|
||||||
self.assertEqual(dict[str, int], dict[str, int])
|
self.assertEqual(dict[str, int], dict[str, int])
|
||||||
self.assertEqual((*tuple[int],)[0], (*tuple[int],)[0])
|
self.assertEqual((*tuple[int],)[0], (*tuple[int],)[0])
|
||||||
self.assertEqual(
|
self.assertEqual(tuple[*tuple[int]], tuple[*tuple[int]])
|
||||||
tuple[
|
|
||||||
tuple( # Effectively the same as starring; TODO
|
|
||||||
tuple[int]
|
|
||||||
)
|
|
||||||
],
|
|
||||||
tuple[
|
|
||||||
tuple( # Ditto TODO
|
|
||||||
tuple[int]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)
|
|
||||||
self.assertNotEqual(dict[str, int], dict[str, str])
|
self.assertNotEqual(dict[str, int], dict[str, str])
|
||||||
self.assertNotEqual(list, list[int])
|
self.assertNotEqual(list, list[int])
|
||||||
self.assertNotEqual(list[int], list)
|
self.assertNotEqual(list[int], list)
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1 @@
|
||||||
|
Add tests for star-unpacking with PEP 646, and some other miscellaneous PEP 646 tests.
|
Loading…
Add table
Add a link
Reference in a new issue