Add timeout around `test_one_end_stream_not_opened()` body

Tyler Goodlet 2024-04-02 13:33:06 -04:00
parent 3a105e2830
commit 67f673bf36
1 changed files with 23 additions and 19 deletions

View File

@ -845,7 +845,10 @@ async def keep_sending_from_callee(
('caller', 1, never_open_stream),
('callee', 0, keep_sending_from_callee),
],
ids='overrun_condition={}'.format,
ids=[
('caller_1buf_never_open_stream'),
('callee_0buf_keep_sending_from_callee'),
]
)
def test_one_end_stream_not_opened(
overrun_by: tuple[str, int, Callable],
@ -869,29 +872,30 @@ def test_one_end_stream_not_opened(
enable_modules=[__name__],
)
async with portal.open_context(
entrypoint,
) as (ctx, sent):
assert sent is None
with trio.fail_after(1):
async with portal.open_context(
entrypoint,
) as (ctx, sent):
assert sent is None
if 'caller' in overrunner:
if 'caller' in overrunner:
async with ctx.open_stream() as stream:
async with ctx.open_stream() as stream:
# itersend +1 msg more then the buffer size
# to cause the most basic overrun.
for i in range(buf_size):
print(f'sending {i}')
await stream.send(i)
# itersend +1 msg more then the buffer size
# to cause the most basic overrun.
for i in range(buf_size):
print(f'sending {i}')
await stream.send(i)
else:
# expect overrun error to be relayed back
# and this sleep interrupted
await trio.sleep_forever()
else:
# expect overrun error to be relayed back
# and this sleep interrupted
await trio.sleep_forever()
else:
# callee overruns caller case so we do nothing here
await trio.sleep_forever()
else:
# callee overruns caller case so we do nothing here
await trio.sleep_forever()
await portal.cancel_actor()