mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
bpo-44793: Fix checking the number of arguments when subscribe a generic type with ParamSpec parameter. (GH-27515)
For example Callable[P, T][[int], str, float] will now raise an error. Use also term "arguments" instead of "parameters" in error message for too few/many arguments.
This commit is contained in:
parent
208a7e957b
commit
f92b9133ef
3 changed files with 15 additions and 8 deletions
|
@ -626,8 +626,6 @@ class TypingCallableTests(BaseCallableTests, BaseTestCase):
|
|||
self.assertEqual(c1.__args__, c2.__args__)
|
||||
self.assertEqual(hash(c1.__args__), hash(c2.__args__))
|
||||
|
||||
test_errors = skip("known bug #44793")(BaseCallableTests.test_errors)
|
||||
|
||||
|
||||
class CollectionsCallableTests(BaseCallableTests, BaseTestCase):
|
||||
Callable = collections.abc.Callable
|
||||
|
@ -4588,6 +4586,10 @@ class ParamSpecTests(BaseTestCase):
|
|||
G1 = X[int, P_2]
|
||||
self.assertEqual(G1.__args__, (int, P_2))
|
||||
self.assertEqual(G1.__parameters__, (P_2,))
|
||||
with self.assertRaisesRegex(TypeError, "few arguments for"):
|
||||
X[int]
|
||||
with self.assertRaisesRegex(TypeError, "many arguments for"):
|
||||
X[int, P_2, str]
|
||||
|
||||
G2 = X[int, Concatenate[int, P_2]]
|
||||
self.assertEqual(G2.__args__, (int, Concatenate[int, P_2]))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue