Browse Source

test: add coverage for dependency overridden status codes in streams

pull/15937/head
Saurabh 2 weeks ago
parent
commit
11f2f207af
  1. 52
      tests/test_stream_status_code.py

52
tests/test_stream_status_code.py

@ -54,6 +54,29 @@ async def jsonl_default() -> AsyncIterable[dict[str, str]]:
yield {"message": "ok"}
# --- NEW OVERRIDE ENDPOINTS ---
@app.post("/sse-created-override", response_class=EventSourceResponse, status_code=201)
async def sse_created_override(
accepted: None = Depends(set_accepted),
) -> AsyncIterable[dict[str, str]]:
yield {"message": "overridden"}
@app.post("/jsonl-created-override", status_code=201)
async def jsonl_created_override(
accepted: None = Depends(set_accepted),
) -> AsyncIterable[dict[str, str]]:
yield {"message": "overridden"}
@app.post("/raw-created-override", response_class=StreamingResponse, status_code=201)
async def raw_created_override(
accepted: None = Depends(set_accepted),
) -> AsyncIterable[str]:
yield "overridden"
client = TestClient(app)
@ -121,6 +144,29 @@ def test_jsonl_stream_default_status_code_stays_200() -> None:
assert get_jsonl_data(response.text) == [{"message": "ok"}]
# --- NEW OVERRIDE TESTS ---
def test_sse_stream_dependency_overrides_declared_status_code() -> None:
response = client.post("/sse-created-override")
assert response.status_code == 202
assert get_sse_data(response.text) == [{"message": "overridden"}]
def test_jsonl_stream_dependency_overrides_declared_status_code() -> None:
response = client.post("/jsonl-created-override")
assert response.status_code == 202
assert get_jsonl_data(response.text) == [{"message": "overridden"}]
def test_raw_stream_dependency_overrides_declared_status_code() -> None:
response = client.post("/raw-created-override")
assert response.status_code == 202
assert response.text == "overridden"
def test_stream_status_codes_match_openapi() -> None:
schema = client.get("/openapi.json").json()
@ -129,6 +175,12 @@ def test_stream_status_codes_match_openapi() -> None:
assert response_status_codes(schema, "/sse-default", "get") == ["200"]
assert response_status_codes(schema, "/jsonl-default", "get") == ["200"]
# Asserting that OpenAPI still documents the declared status code (201),
# even though the dependency sets it to 202 at runtime.
assert response_status_codes(schema, "/sse-created-override", "post") == ["201"]
assert response_status_codes(schema, "/jsonl-created-override", "post") == ["201"]
assert response_status_codes(schema, "/raw-created-override", "post") == ["201"]
def response_status_codes(schema: dict[str, Any], path: str, method: str) -> list[str]:
paths = cast(dict[str, Any], schema["paths"])

Loading…
Cancel
Save