Тестирование отправленных сервером событий во Flask с помощью pytest - PullRequest
1 голос
/ 05 октября 2019

У меня есть приложение 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(). Как мне это сделать?

...