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, 2.0, 3), 3)
|
||||||
self.assertEqual(max(1.0, 2, 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(TypeError, max, 42)
|
||||||
self.assertRaises(ValueError, max, ())
|
self.assertRaises(ValueError, max, ())
|
||||||
class BadSeq:
|
class BadSeq:
|
||||||
|
@ -1003,7 +1008,12 @@ class BuiltinTest(unittest.TestCase):
|
||||||
self.assertEqual(min(1, 2.0, 3), 1)
|
self.assertEqual(min(1, 2.0, 3), 1)
|
||||||
self.assertEqual(min(1.0, 2, 3), 1.0)
|
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(TypeError, min, 42)
|
||||||
self.assertRaises(ValueError, min, ())
|
self.assertRaises(ValueError, min, ())
|
||||||
class BadSeq:
|
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;
|
const int positional = PyTuple_Size(args) > 1;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (positional)
|
if (positional) {
|
||||||
v = args;
|
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;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
emptytuple = PyTuple_New(0);
|
emptytuple = PyTuple_New(0);
|
||||||
if (emptytuple == NULL)
|
if (emptytuple == NULL)
|
||||||
|
|
Loading…
Reference in New Issue