Das ist mein Handler:Wie soll ich eine App Build mit Tornado testen, die Python 3.5 Async verwendet?
class ResourcesHandler(MetaResourceHandler):
@tornado.web.asynchronous
async def post(self):
arguments = self.get_json_arguments(force_presence=True)
resources = self._get_collection()
try:
resource = await resources.insert({**arguments})
except Exception as e:
self._exit_exception_500(e)
else:
self.update_response(
self._prepare_resource({"_id": resource})
)
self.finish_request(status_code=http_status.HTTP_201)
Und das ist, wie ich es anfangen:
app = tornado.web.Application(('/resources', ResourcesHandler))
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
Wenn ich anfangen und versuchen, mit Locke zu testen, es funktioniert aber, wenn ich meine automatisierte Tests ich schreibe mit tornado.testing.AsyncHTTPTestCase
hängt es für immer und löst eine Zeitüberschreitung aus. Ich habe bereits versucht, mit Pytest-Tornado zu testen, aber das Verhalten ist das gleiche.
Fehle ich etwas?
Vielen Dank!
Jesse, danke für Ihre schnelle Antwort! Aber selbst nach dem Anwenden der Änderungen, die Sie vorgeschlagen haben, bleibt der '' 'AssertionError: Async-Vorgang nach 5 Sekunden '' bestehen. Würde es Ihnen etwas ausmachen, sich mein [Projekt] (https://github.com/felippemr/resistance) anzusehen? Danke nochmal! –
Entschuldigung, ich habe einen kurzen Blick auf Ihr Projekt geworfen und kann nicht erkennen, warum Ihr Test blockiert würde. –
Danke Jesse! Ich werde versuchen, eine Lösung zu finden! –