mirror of https://github.com/python/cpython
gh-99925: Fix inconsistency in `json.dumps()` error messages (GH-99926)
This commit is contained in:
parent
a6331b605e
commit
d98ca8172c
|
@ -26,7 +26,8 @@ class TestFloat:
|
|||
res = self.loads(out)
|
||||
self.assertEqual(len(res), 1)
|
||||
self.assertNotEqual(res[0], res[0])
|
||||
self.assertRaises(ValueError, self.dumps, [val], allow_nan=False)
|
||||
msg = f'Out of range float values are not JSON compliant: {val}'
|
||||
self.assertRaisesRegex(ValueError, msg, self.dumps, [val], allow_nan=False)
|
||||
|
||||
|
||||
class TestPyFloat(TestFloat, PyTest): pass
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
Unify error messages in JSON serialization between
|
||||
``json.dumps(float('nan'), allow_nan=False)`` and ``json.dumps(float('nan'),
|
||||
allow_nan=False, indent=<SOMETHING>)``. Now both include the representation
|
||||
of the value that could not be serialized.
|
|
@ -1319,9 +1319,10 @@ encoder_encode_float(PyEncoderObject *s, PyObject *obj)
|
|||
double i = PyFloat_AS_DOUBLE(obj);
|
||||
if (!Py_IS_FINITE(i)) {
|
||||
if (!s->allow_nan) {
|
||||
PyErr_SetString(
|
||||
PyErr_Format(
|
||||
PyExc_ValueError,
|
||||
"Out of range float values are not JSON compliant"
|
||||
"Out of range float values are not JSON compliant: %R",
|
||||
obj
|
||||
);
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue