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:
|
elif missing == 2:
|
||||||
s = "{} and {}".format(*names)
|
s = "{} and {}".format(*names)
|
||||||
else:
|
else:
|
||||||
tail = ", {} and {}".format(names[-2:])
|
tail = ", {} and {}".format(*names[-2:])
|
||||||
del names[-2:]
|
del names[-2:]
|
||||||
s = ", ".join(names) + tail
|
s = ", ".join(names) + tail
|
||||||
raise TypeError("%s() missing %i required %s argument%s: %s" %
|
raise TypeError("%s() missing %i required %s argument%s: %s" %
|
||||||
|
|
|
@ -1216,6 +1216,12 @@ class TestGetcallargsFunctions(unittest.TestCase):
|
||||||
inspect.getcallargs(f5)
|
inspect.getcallargs(f5)
|
||||||
|
|
||||||
|
|
||||||
|
# issue20817:
|
||||||
|
def f6(a, b, c):
|
||||||
|
pass
|
||||||
|
with self.assertRaisesRegex(TypeError, "'a', 'b' and 'c'"):
|
||||||
|
inspect.getcallargs(f6)
|
||||||
|
|
||||||
class TestGetcallargsMethods(TestGetcallargsFunctions):
|
class TestGetcallargsMethods(TestGetcallargsFunctions):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
|
@ -116,6 +116,9 @@ Library
|
||||||
- Issue #20816: Fix inspect.getcallargs() to raise correct TypeError for
|
- Issue #20816: Fix inspect.getcallargs() to raise correct TypeError for
|
||||||
missing keyword-only arguments. Patch by Jeremiah Lowin.
|
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
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue