Skip to content

Commit 3cd38db

Browse files
committed
Test custom sequences which raise errors in the ExceptionGroup() constructor
1 parent 9997c01 commit 3cd38db

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Lib/test/test_exception_group.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,31 @@ class MyEG(ExceptionGroup):
225225
# Ensure that clearing the exceptions sequence doesn't change the repr.
226226
self.assertEqual(repr(eg), "ExceptionGroup('test', deque([ValueError(1), TypeError(2)]))")
227227

228+
def test_repr_raises(self):
229+
class MySeq(collections.abc.Sequence):
230+
def __init__(self, raises):
231+
self.raises = raises
232+
233+
def __len__(self):
234+
return 1
235+
236+
def __getitem__(self, index):
237+
if index == 0:
238+
return ValueError(1)
239+
raise IndexError
240+
241+
def __repr__(self):
242+
if self.raises:
243+
raise self.raises
244+
return None
245+
246+
with self.assertRaisesRegex(TypeError, r".*MySeq\.__repr__\(\) must return a str, not NoneType"):
247+
ExceptionGroup("test", MySeq(None))
248+
249+
with self.assertRaises(ValueError):
250+
BaseExceptionGroup("test", MySeq(ValueError))
251+
252+
228253

229254
def create_simple_eg():
230255
excs = []

0 commit comments

Comments
 (0)