diff options
-rw-r--r-- | Lib/test/test_call.py | 4 | ||||
-rw-r--r-- | Python/getargs.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/Lib/test/test_call.py b/Lib/test/test_call.py index d929cfc088..1e84b525f7 100644 --- a/Lib/test/test_call.py +++ b/Lib/test/test_call.py @@ -136,6 +136,10 @@ class CFunctionCallsErrorMessages(unittest.TestCase): msg = r"__contains__\(\) takes exactly one argument \(2 given\)" self.assertRaisesRegex(TypeError, msg, {}.__contains__, 0, 1) + def test_varargs3(self): + msg = r"^from_bytes\(\) takes at most 2 positional arguments \(3 given\)" + self.assertRaisesRegex(TypeError, msg, int.from_bytes, b'a', 'little', False) + def test_varargs1_kw(self): msg = r"__contains__\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, {}.__contains__, x=2) diff --git a/Python/getargs.c b/Python/getargs.c index af1f2a2a24..f555870f7e 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -2089,13 +2089,13 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs, if (parser->max < nargs) { if (parser->max == 0) { PyErr_Format(PyExc_TypeError, - "%200s%s takes no positional arguments", + "%.200s%s takes no positional arguments", (parser->fname == NULL) ? "function" : parser->fname, (parser->fname == NULL) ? "" : "()"); } else { PyErr_Format(PyExc_TypeError, - "%200s%s takes %s %d positional arguments (%d given)", + "%.200s%s takes %s %d positional arguments (%d given)", (parser->fname == NULL) ? "function" : parser->fname, (parser->fname == NULL) ? "" : "()", (parser->min != INT_MAX) ? "at most" : "exactly", |