移除示例项目初始化并修复前后端稳定性问题

This commit is contained in:
Cheng Zhou
2026-03-30 15:35:22 +08:00
parent a67991740e
commit 8c5d03f1cb
24 changed files with 581 additions and 102 deletions
+78
View File
@@ -0,0 +1,78 @@
from contextlib import asynccontextmanager
from unittest.mock import AsyncMock
import pytest
from fastapi import FastAPI
from app import main
class _DummyTask:
def __init__(self):
self.awaited = False
def __await__(self):
async def _wait():
self.awaited = True
return _wait().__await__()
class _DummySession:
async def __aenter__(self):
return self
async def __aexit__(self, exc_type, exc, tb):
return False
class _DummyBegin:
async def __aenter__(self):
return self
async def __aexit__(self, exc_type, exc, tb):
return False
async def run_sync(self, fn):
return None
class _DummyEngine:
def begin(self):
return _DummyBegin()
@pytest.mark.asyncio
async def test_development_startup_does_not_seed_demo_fees(monkeypatch):
ensure_admin_exists = AsyncMock()
seed_demo_fees = AsyncMock()
create_all = AsyncMock()
legacy_pk = AsyncMock()
scheduler_task = _DummyTask()
async def fake_scheduler(stop_event):
return None
def fake_create_task(coroutine):
coroutine.close()
return scheduler_task
@asynccontextmanager
async def fake_session_local():
yield _DummySession()
monkeypatch.setattr(main.settings, "ENV", "development")
monkeypatch.setattr(main, "ensure_admin_exists", ensure_admin_exists)
monkeypatch.setattr(main, "seed_demo_fees", seed_demo_fees, raising=False)
monkeypatch.setattr(main, "run_daily_lost_visit_job", fake_scheduler)
monkeypatch.setattr(main.asyncio, "create_task", fake_create_task)
monkeypatch.setattr(main, "engine", _DummyEngine())
monkeypatch.setattr(main, "SessionLocal", fake_session_local)
monkeypatch.setattr(main, "_ensure_legacy_primary_keys", legacy_pk)
monkeypatch.setattr(main.Base.metadata, "create_all", create_all)
async with main.lifespan(FastAPI()):
pass
ensure_admin_exists.assert_awaited_once()
seed_demo_fees.assert_not_awaited()