tornado_json Web アプリの単体テストを設定しようとしています。ポストハンドラーをテストしようとしていますが、fetch
メソッドが _asyncio.Future オブジェクトを返すように見えるため、惨めに失敗しています。これは決して完了/結果セットを持たないようです。コードの要約を投稿しようとしましたが、現時点では ['test'] アイテムを返しています。https://github.com/tornadoweb/tornado/issues/1154と竜巻のドキュメントを見てきました。タスクを完了するには self.stop または self.wait() が必要なようですが、これを機能させる方法、またはそれが解決策であるかどうかはわかりません。どんな助けでも大歓迎です。
@schema.validate(
input_schema={
"type": "object",
"properties": {
"path": {"type": "string"}
},
"required": ["path"]
},
output_schema={
"type": "array",
"items": {
"properties": {"type": "string"}
}
}
)
@coroutine
def post(self):
attributes = dict(self.body)
path = attributes["path"]
response = ["test"]
return response
@gen_test
def test_POST_method(self):
body = json.dumps({'path': 'bin'})
self.http_client.fetch(self.get_url('/api/listmyfiles'),
method="POST",
body=body
)
response = self.wait()
print(response.result()))
私が得るエラーは次のとおりです。
asyncio.base_futures.InvalidStateError: Result is not set.