"ExceptionGroup('test', deque([ValueError(1), TypeError(2)]))"
)
+ def test_repr_small_size_args(self):
+ eg = ExceptionGroup("msg", [ValueError()])
+ eg.args = ()
+ # repr of the ExceptionGroup with empty args should not crash
+ self.assertEqual(repr(eg), "ExceptionGroup('msg', (ValueError(),))")
+
+ eg.args = (1,)
+ # repr of the ExceptionGroup with 1-size args should not crash
+ self.assertEqual(repr(eg), "ExceptionGroup('msg', (ValueError(),))")
+
+
+
def test_repr_raises(self):
class MySeq(collections.abc.Sequence):
def __init__(self, raises):
* value of self.args[1]; but this can be mutable and go out-of-sync
* with self.exceptions. Instead, use self.exceptions for accuracy,
* making it look like self.args[1] for backwards compatibility. */
- if (PyList_Check(PyTuple_GET_ITEM(self->args, 1))) {
+ assert(PyTuple_Check(self->args));
+ if (PyTuple_GET_SIZE(self->args) == 2 && PyList_Check(PyTuple_GET_ITEM(self->args, 1))) {
PyObject *exceptions_list = PySequence_List(self->excs);
if (!exceptions_list) {
return NULL;