def test_main_and_task_both_crash(recwarn):
# If main crashes and there's also a task crash, then we get both in a
# MultiError
async def crasher():
raise ValueError
async def main(wait):
async with _core.open_nursery() as nursery:
crasher_task = nursery.spawn(crasher)
if wait:
await crasher_task.wait()
raise KeyError
for wait in [True, False]:
with pytest.raises(_core.MultiError) as excinfo:
_core.run(main, wait)
print(excinfo.value)
assert set(type(exc) for exc in excinfo.value.exceptions) == {
ValueError, KeyError
}
评论列表
文章目录