feat: add authenticated HTTP service

This commit is contained in:
Lucas Winther
2026-09-26 11:15:32 +02:00
parent 57e5215a36
commit ad192365a1
31 changed files with 768 additions and 21 deletions
+37
View File
@@ -0,0 +1,37 @@
from typing import cast
import pytest
from fastapi import FastAPI
from fastapi.testclient import TestClient
def test_error_envelope(authenticated: tuple[TestClient, str]) -> None:
client, _ = authenticated
response = client.get("/collections/cffffffffff")
assert response.status_code == 404
assert response.json() == {"error": {
"code": "collection_not_found", "message": "Collection was not found", "details": {}
}}
def test_unknown_route_uses_error_envelope(app_client: TestClient) -> None:
response = app_client.get("/no-such-route")
assert response.status_code == 404
assert response.json()["error"]["code"] == "path_not_found"
def test_unexpected_error_has_request_id(
app_client: TestClient, monkeypatch: pytest.MonkeyPatch
) -> None:
def fail() -> None:
raise RuntimeError("private filesystem path")
app = cast(FastAPI, app_client.app)
monkeypatch.setattr(app.state.engine, "health", fail)
with TestClient(
app_client.app, base_url="https://testserver", raise_server_exceptions=False
) as client:
response = client.get("/health")
assert response.status_code == 500
assert response.headers["X-Request-ID"] == response.json()["error"]["details"]["request_id"]
assert "private" not in response.text