diff options
author | Xtreak <tirkarthi@users.noreply.github.com> | 2018-07-22 20:13:26 (GMT) |
---|---|---|
committer | Raymond Hettinger <rhettinger@users.noreply.github.com> | 2018-07-22 20:13:26 (GMT) |
commit | 1426daa4fe47d8f8be0d416f7cba7adae1d5839f (patch) | |
tree | d8b7b72876b1ee768402fcb320f9e0bdfa0f9b37 | |
parent | c75c1e0e8aeb720ac3fcfab119b70cabba4e8235 (diff) | |
download | cpython-1426daa4fe47d8f8be0d416f7cba7adae1d5839f.zip cpython-1426daa4fe47d8f8be0d416f7cba7adae1d5839f.tar.gz cpython-1426daa4fe47d8f8be0d416f7cba7adae1d5839f.tar.bz2 |
bpo-34127: Fix grammar in error message with respect to argument count (GH-8395)
-rw-r--r-- | Lib/test/test_call.py | 16 | ||||
-rw-r--r-- | Misc/NEWS.d/next/C API/2018-07-22-14-58-06.bpo-34127.qkfnHO.rst | 2 | ||||
-rw-r--r-- | Python/getargs.c | 8 |
3 files changed, 22 insertions, 4 deletions
diff --git a/Lib/test/test_call.py b/Lib/test/test_call.py index 3f9987c..ec9697a 100644 --- a/Lib/test/test_call.py +++ b/Lib/test/test_call.py @@ -143,6 +143,22 @@ class CFunctionCallsErrorMessages(unittest.TestCase): 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_varargs4(self): + msg = r"get expected at least 1 argument, got 0" + self.assertRaisesRegex(TypeError, msg, {}.get) + + def test_varargs5(self): + msg = r"getattr expected at least 2 arguments, got 0" + self.assertRaisesRegex(TypeError, msg, getattr) + + def test_varargs6(self): + msg = r"input expected at most 1 argument, got 2" + self.assertRaisesRegex(TypeError, msg, input, 1, 2) + + def test_varargs7(self): + msg = r"get expected at most 2 arguments, got 3" + self.assertRaisesRegex(TypeError, msg, {}.get, 1, 2, 3) + def test_varargs1_kw(self): msg = r"__contains__\(\) takes no keyword arguments" self.assertRaisesRegex(TypeError, msg, {}.__contains__, x=2) diff --git a/Misc/NEWS.d/next/C API/2018-07-22-14-58-06.bpo-34127.qkfnHO.rst b/Misc/NEWS.d/next/C API/2018-07-22-14-58-06.bpo-34127.qkfnHO.rst new file mode 100644 index 0000000..c5b8c07 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2018-07-22-14-58-06.bpo-34127.qkfnHO.rst @@ -0,0 +1,2 @@ +Return grammatically correct error message based on argument count. +Patch by Karthikeyan Singaravelan. diff --git a/Python/getargs.c b/Python/getargs.c index 992cb21..98823f2 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -2411,8 +2411,8 @@ unpack_stack(PyObject *const *args, Py_ssize_t nargs, const char *name, if (name != NULL) PyErr_Format( PyExc_TypeError, - "%.200s expected %s%zd arguments, got %zd", - name, (min == max ? "" : "at least "), min, nargs); + "%.200s expected %s%zd argument%s, got %zd", + name, (min == max ? "" : "at least "), min, min == 1 ? "" : "s", nargs); else PyErr_Format( PyExc_TypeError, @@ -2430,8 +2430,8 @@ unpack_stack(PyObject *const *args, Py_ssize_t nargs, const char *name, if (name != NULL) PyErr_Format( PyExc_TypeError, - "%.200s expected %s%zd arguments, got %zd", - name, (min == max ? "" : "at most "), max, nargs); + "%.200s expected %s%zd argument%s, got %zd", + name, (min == max ? "" : "at most "), max, max == 1 ? "" : "s", nargs); else PyErr_Format( PyExc_TypeError, |