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