Streaming, WebSockets & Testing in Python

From the FastAPI cheat sheet ยท Advanced Features ยท verified Jul 2026

Streaming, WebSockets & Testing

Stream responses, use WebSockets, and test with TestClient.

python
# Streaming
from fastapi.responses import StreamingResponse

@app.get("/stream")
async def stream():
    async def generate():
        for i in range(10):
            yield f"chunk {i}\n"
    return StreamingResponse(generate(), media_type="text/plain")

# WebSocket
from fastapi import WebSocket

@app.websocket("/ws")
async def websocket_endpoint(ws: WebSocket):
    await ws.accept()
    data = await ws.receive_text()
    await ws.send_text(f"Echo: {data}")
    await ws.close()
๐Ÿ’ก StreamingResponse with text/event-stream gives you Server-Sent Events (SSE)
โšก TestClient uses requests-style API โ€” no need to start a real server
๐Ÿ“Œ Use app.dependency_overrides to swap real DB for test DB in tests
๐ŸŸข WebSocket endpoints use await ws.receive_text() and ws.send_text() in a loop
streamingwebsockettestingsse

More Python tasks

Back to the full FastAPI cheat sheet