refactor(api): TOML 配置 SSOT、统一错误契约、Auth/事务加固与可观测性 (#33)

配置 SSOT(TOML + .env)
统一错误契约
Auth 与事务边界
Redis / Celery 可靠性:业务 Redis(DB/0)与 Celery broker/backend(DB/1)显式拆分;连接池、sync client
可观测性(OpenTelemetry + LGTM)
This commit is contained in:
Sully
2026-05-22 13:44:50 +08:00
committed by GitHub
parent f09ae248f9
commit 53e0065e3e
298 changed files with 15247 additions and 4344 deletions

View File

@@ -0,0 +1,37 @@
"""Content 静态页 HTTP smokelegal 与官网主页。"""
from __future__ import annotations
import pytest
from fastapi import FastAPI
from httpx import ASGITransport, AsyncClient
from app.features.content.router import router as content_router
from tests.conftest import install_test_error_handlers
@pytest.fixture
def content_app() -> FastAPI:
app = install_test_error_handlers(FastAPI())
app.include_router(content_router)
return app
@pytest.mark.asyncio
@pytest.mark.parametrize(
"path,expected_fragment",
[
("/api/legal/terms", "用户协议"),
("/api/legal/privacy", "隐私"),
("/", "岁月留书"),
],
)
async def test_content_static_pages_return_html(
content_app: FastAPI, path: str, expected_fragment: str
) -> None:
transport = ASGITransport(app=content_app)
async with AsyncClient(transport=transport, base_url="http://test") as client:
r = await client.get(path)
assert r.status_code == 200
assert r.headers.get("content-type", "").startswith("text/html")
assert expected_fragment in r.text