【发布时间】:2019-10-05 11:43:46
【问题描述】:
我有一个 Flask 应用程序,我在其中使用服务器发送的事件将数据发送到我的前端。
@bp.route("/stream", methods=("GET",))
def stream_translations():
translation_schema = TranslationSchema()
def event_stream():
while True:
recently_updated = [
translation_schema.dump(translation)
for translation in recently_updated_translations()]
if recently_updated:
yield f"data: {json.dumps(recently_updated)}\n\n"
return Response(event_stream(), mimetype="text/event-stream")
它工作正常,但我也想为它编写一个测试以确保它。我以前从未为生成器编写过测试,绝对不是服务器发送的事件。目前这是我所拥有的:
def test_stream(client):
response = client.get("/translations/stream")
assert response.status_code == 200
assert response.mimetype == "text/event-stream"
当然这只是测试响应,但我也想测试event_stream() 生成器。我该怎么做?
【问题讨论】:
标签: python flask flask-sqlalchemy pytest