mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +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.
(cherry picked from commit f92b9133ef
)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
b192fb3f6a
commit
c8db292012
3 changed files with 15 additions and 8 deletions
|
@ -620,8 +620,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
|
||||
|
@ -4548,6 +4546,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