inspect: Fix getcallargs() to fail correctly if more than 3 args are missing.
Patch by Jeremiah Lowin. Closes #20817.
This commit is contained in:
parent
875df20e8a
commit
dccfa13cdb
|
@ -1127,7 +1127,7 @@ def _missing_arguments(f_name, argnames, pos, values):
|
|||
elif missing == 2:
|
||||
s = "{} and {}".format(*names)
|
||||
else:
|
||||
tail = ", {} and {}".format(names[-2:])
|
||||
tail = ", {} and {}".format(*names[-2:])
|
||||
del names[-2:]
|
||||
s = ", ".join(names) + tail
|
||||
raise TypeError("%s() missing %i required %s argument%s: %s" %
|
||||
|
|
|
@ -1216,6 +1216,12 @@ class TestGetcallargsFunctions(unittest.TestCase):
|
|||
inspect.getcallargs(f5)
|
||||
|
||||
|
||||
# issue20817:
|
||||
def f6(a, b, c):
|
||||
pass
|
||||
with self.assertRaisesRegex(TypeError, "'a', 'b' and 'c'"):
|
||||
inspect.getcallargs(f6)
|
||||
|
||||
class TestGetcallargsMethods(TestGetcallargsFunctions):
|
||||
|
||||
def setUp(self):
|
||||
|
|
|
@ -116,6 +116,9 @@ Library
|
|||
- Issue #20816: Fix inspect.getcallargs() to raise correct TypeError for
|
||||
missing keyword-only arguments. Patch by Jeremiah Lowin.
|
||||
|
||||
- Issue #20817: Fix inspect.getcallargs() to fail correctly if more
|
||||
than 3 arguments are missing. Patch by Jeremiah Lowin.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
|
|
Loading…
Reference in New Issue