bpo-39200: Correct the error message for min/max builtin function (GH-17814)
Correct the error message when calling the min() or max() with no arguments.
This commit is contained in:
parent
c39b52f152
commit
abdc634f33
|
@ -949,7 +949,12 @@ class BuiltinTest(unittest.TestCase):
|
|||
self.assertEqual(max(1, 2.0, 3), 3)
|
||||
self.assertEqual(max(1.0, 2, 3), 3)
|
||||
|
||||
self.assertRaises(TypeError, max)
|
||||
with self.assertRaisesRegex(
|
||||
TypeError,
|
||||
'max expected at least 1 argument, got 0'
|
||||
):
|
||||
max()
|
||||
|
||||
self.assertRaises(TypeError, max, 42)
|
||||
self.assertRaises(ValueError, max, ())
|
||||
class BadSeq:
|
||||
|
@ -1003,7 +1008,12 @@ class BuiltinTest(unittest.TestCase):
|
|||
self.assertEqual(min(1, 2.0, 3), 1)
|
||||
self.assertEqual(min(1.0, 2, 3), 1.0)
|
||||
|
||||
self.assertRaises(TypeError, min)
|
||||
with self.assertRaisesRegex(
|
||||
TypeError,
|
||||
'min expected at least 1 argument, got 0'
|
||||
):
|
||||
min()
|
||||
|
||||
self.assertRaises(TypeError, min, 42)
|
||||
self.assertRaises(ValueError, min, ())
|
||||
class BadSeq:
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Correct the error message when calling the :func:`min` or :func:`max` with
|
||||
no arguments. Patch by Dong-hee Na.
|
|
@ -1589,10 +1589,15 @@ min_max(PyObject *args, PyObject *kwds, int op)
|
|||
const int positional = PyTuple_Size(args) > 1;
|
||||
int ret;
|
||||
|
||||
if (positional)
|
||||
if (positional) {
|
||||
v = args;
|
||||
else if (!PyArg_UnpackTuple(args, name, 1, 1, &v))
|
||||
}
|
||||
else if (!PyArg_UnpackTuple(args, name, 1, 1, &v)) {
|
||||
if (PyExceptionClass_Check(PyExc_TypeError)) {
|
||||
PyErr_Format(PyExc_TypeError, "%s expected at least 1 argument, got 0", name);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
emptytuple = PyTuple_New(0);
|
||||
if (emptytuple == NULL)
|
||||
|
|
Loading…
Reference in New Issue