Adjust aio test for silent cancellation by parent

ctx_cancel_semantics_and_overruns
Tyler Goodlet 2023-04-13 18:06:44 -04:00
parent f1e9c0be93
commit 63adf73b4b
1 changed files with 15 additions and 5 deletions

View File

@ -15,6 +15,7 @@ import tractor
from tractor import (
to_asyncio,
RemoteActorError,
ContextCancelled,
)
from tractor.trionics import BroadcastReceiver
@ -224,14 +225,23 @@ def test_context_spawns_aio_task_that_errors(
await trio.sleep_forever()
with pytest.raises(RemoteActorError) as excinfo:
trio.run(main)
return await ctx.result()
err = excinfo.value
assert isinstance(err, RemoteActorError)
if parent_cancels:
assert err.type == trio.Cancelled
# bc the parent made the cancel request,
# the error is not raised locally but instead
# the context is exited silently
res = trio.run(main)
assert isinstance(res, ContextCancelled)
assert 'root' in res.canceller[0]
else:
expect = RemoteActorError
with pytest.raises(expect) as excinfo:
trio.run(main)
err = excinfo.value
assert isinstance(err, expect)
assert err.type == AssertionError