[Async-sig] async testing question
Chris Jerdonek
chris.jerdonek at gmail.com
Sat Jul 1 06:11:07 EDT 2017
I have a question about testing async code.
Say I have a coroutine:
async def do_things():
await do_something()
await do_more()
await do_even_more()
And future:
task = ensure_future(do_things())
Is there a way to write a test case to check that task.cancel() would
behave correctly if, say, do_things() is waiting at the line
do_more()?
In real life, this situation can happen if a function like the
following is called, and an exception happens in one of the given
tasks. One of the tasks in the "pending" list could be at the line
do_more().
done, pending = await asyncio.wait(tasks,
return_when=asyncio.FIRST_EXCEPTION)
But in a testing situation, you don't necessarily have control over
where each task ends up when FIRST_EXCEPTION occurs.
Thanks,
--Chris
More information about the Async-sig
mailing list