Автор Stefan Scherfke “Testing (asyncio) coroutines with pytest”
PyTest — отличный пакет для тестирования на Python, и с давних пор один из моих любимых пакетов в целом. Он значительно облегчает написание тестов и обладает широкими возможностями по составлению отчетов о непройденных тестах.
Тем не менее, на момент версии 2.7, он менее эффективен в тестировании (asyncio) подпрограмм. Поэтому не стоит пытаться их тестировать таким способом:
# tests/test_coros.py
import asyncio
def test_coro():
loop = asyncio.get_event_loop()
@asyncio.coroutine
def do_test():
yield from asyncio.sleep(0.1, loop=loop)
assert 0 # onoes!
loop.run_until_complete(do_test())
В таком методе много недостатков и излишеств. Единственные интересные строки — те, что содержат операторы yield from и assert.