如何编写用stream_body装饰器包装的torando处理程序的测试?

时间:2017-02-01 10:06:40

标签: python unit-testing tornado

我有一个异步处理程序,用"stream_body" decorator包装,用于接收大文件并逐步读取它们,类似于this example。但是,我不明白,如何在unittest中测试此功能,因为这需要异步客户端。

1 个答案:

答案 0 :(得分:1)

您可以在客户端中测试使用stream_request_body而没有任何特殊功能的处理程序。例如,this test in Tornado itself使用普通请求测试stream_request_body处理程序(恰好与AsyncHTTPClient一起发送,因为AsyncHTTPTestCase是如何处理的,但它原则上可以通过同步来完成客户在另一个线程中。)

如果要测试处理程序的流属性,则可能需要更灵活的客户端。例如,AsyncHTTPClient中的a test that uses body_producer可以控制发送块,而无需尽快上传所有内容。