feat: 切换邮箱认证并重构前后端启动与门禁

This commit is contained in:
qzl
2026-04-02 18:39:35 +08:00
parent 92cdfd9fca
commit 31594558eb
116 changed files with 5608 additions and 628 deletions
+45
View File
@@ -0,0 +1,45 @@
from __future__ import annotations
import pytest
import app as app_module
@pytest.mark.asyncio
async def test_lifespan_uses_registered_services(
monkeypatch: pytest.MonkeyPatch,
) -> None:
initialized_services = [object(), object()]
calls: dict[str, object] = {}
async def _fake_initialize(service_names: list[str]) -> tuple[bool, list[object]]:
calls["init_names"] = service_names
return True, initialized_services
async def _fake_close(services: list[object]) -> bool:
calls["close_services"] = services
return True
monkeypatch.setattr(app_module, "initialize_registered_services", _fake_initialize)
monkeypatch.setattr(app_module, "close_registered_services", _fake_close)
context = app_module.lifespan(app_module.app)
await context.__aenter__()
await context.__aexit__(None, None, None)
assert calls["init_names"] == ["redis", "supabase"]
assert calls["close_services"] == initialized_services
@pytest.mark.asyncio
async def test_lifespan_raises_when_initialization_failed(
monkeypatch: pytest.MonkeyPatch,
) -> None:
async def _fake_initialize(_: list[str]) -> tuple[bool, list[object]]:
return False, []
monkeypatch.setattr(app_module, "initialize_registered_services", _fake_initialize)
context = app_module.lifespan(app_module.app)
with pytest.raises(RuntimeError, match="Service initialization failed"):
await context.__aenter__()