2017-02-01 8 views
0

У меня есть обработчик async, завернутый в "stream_body" decorator, который используется для получения больших файлов и чтения их пошагового схожего с this example. Тем не менее, я не понимаю, как я могу проверить эту функциональность в unittest, так как для этого требуется асинхронный клиент.Как написать тесты для обработчика torando, завернутого в декодер stream_body?

ответ

1

Вы можете протестировать обработчик, который использует stream_request_body без каких-либо специальных функций на клиенте. Например, this test in Tornado itself проверяет обработчик stream_request_body с обычным запросом (который, случается, отправляется с AsyncHTTPClient, потому что это то, как AsyncHTTPTestCase делает что-то, но в принципе это можно сделать с синхронным клиентом в другом потоке).

Если вы хотите протестировать потоковые свойства обработчика, вам может понадобиться более гибкий клиент. Например, a test that uses body_producer в AsyncHTTPClient может управлять отправкой кусков, не загружая все как можно быстрее.