forked from goodboy/tractor
1
0
Fork 0

Port tests to handle our new `asyncio` cancelled type

infect_asyncio
Tyler Goodlet 2021-11-24 12:13:02 -05:00
parent 6803891bd7
commit c4b3bb354e
1 changed files with 10 additions and 10 deletions

View File

@ -1,5 +1,5 @@
''' '''
The most hipster way to force SC onto the stdlib's "async". The hipster way to force SC onto the stdlib's "async": 'infection mode'.
''' '''
from typing import Optional, Iterable from typing import Optional, Iterable
@ -74,7 +74,7 @@ async def asyncio_actor(
if expect_err: if expect_err:
assert isinstance(err, error_type) assert isinstance(err, error_type)
raise err raise
def test_aio_simple_error(arb_addr): def test_aio_simple_error(arb_addr):
@ -134,7 +134,7 @@ def test_trio_cancels_aio(arb_addr):
# cancel the nursery shortly after boot # cancel the nursery shortly after boot
async with tractor.open_nursery() as n: async with tractor.open_nursery() as n:
portal = await n.run_in_actor( await n.run_in_actor(
asyncio_actor, asyncio_actor,
target='sleep_forever', target='sleep_forever',
expect_err='trio.Cancelled', expect_err='trio.Cancelled',
@ -144,9 +144,9 @@ def test_trio_cancels_aio(arb_addr):
trio.run(main) trio.run(main)
async def aio_cancel(): async def aio_cancel():
''''Cancel urself boi. ''''
Cancel urself boi.
''' '''
await asyncio.sleep(0.5) await asyncio.sleep(0.5)
@ -164,16 +164,16 @@ def test_aio_cancelled_from_aio_causes_trio_cancelled(arb_addr):
portal = await n.run_in_actor( portal = await n.run_in_actor(
asyncio_actor, asyncio_actor,
target='aio_cancel', target='aio_cancel',
expect_err='asyncio.CancelledError', expect_err='tractor.to_asyncio.AsyncioCancelled',
infect_asyncio=True, infect_asyncio=True,
) )
# with trio.CancelScope(shield=True):
await portal.result()
with pytest.raises(RemoteActorError) as excinfo: with pytest.raises(RemoteActorError) as excinfo:
trio.run(main) trio.run(main)
# ensure boxed error is correct
assert excinfo.value.type == to_asyncio.AsyncioCancelled
# TODO: verify open_channel_from will fail on this.. # TODO: verify open_channel_from will fail on this..
async def no_to_trio_in_args(): async def no_to_trio_in_args():
@ -201,7 +201,7 @@ async def push_from_aio_task(
if i == 50 and fail_early: if i == 50 and fail_early:
raise Exception raise Exception
print(f'asyncio streamer complete!') print('asyncio streamer complete!')
except asyncio.CancelledError: except asyncio.CancelledError:
if not expect_cancel: if not expect_cancel: