diff --git a/backend/app/admin/tests/conftest.py b/backend/conftest.py similarity index 79% rename from backend/app/admin/tests/conftest.py rename to backend/conftest.py index bdeb2105..5f0297ec 100644 --- a/backend/app/admin/tests/conftest.py +++ b/backend/conftest.py @@ -4,13 +4,14 @@ import pytest from starlette.testclient import TestClient -from backend.app.admin.tests.utils.db import override_get_db from backend.core.conf import settings -from backend.database.db import get_db +from backend.database.db import get_db, get_db_transaction from backend.main import app +from backend.tests.utils.db import override_get_db, override_get_db_transaction # 重载数据库 app.dependency_overrides[get_db] = override_get_db +app.dependency_overrides[get_db_transaction] = override_get_db_transaction # Test data @@ -19,7 +20,7 @@ PYTEST_PASSWORD = '123456' PYTEST_BASE_URL = f'http://testserver{settings.FASTAPI_API_V1_PATH}' -@pytest.fixture(scope='module') +@pytest.fixture(scope='session') def client() -> Generator: with TestClient(app, base_url=PYTEST_BASE_URL) as c: yield c diff --git a/backend/tests/__init__.py b/backend/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/tests/utils/__init__.py b/backend/tests/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/app/admin/tests/utils/db.py b/backend/tests/utils/db.py similarity index 77% rename from backend/app/admin/tests/utils/db.py rename to backend/tests/utils/db.py index 453634b3..4fa7158c 100644 --- a/backend/app/admin/tests/utils/db.py +++ b/backend/tests/utils/db.py @@ -16,3 +16,9 @@ async def override_get_db() -> AsyncGenerator[AsyncSession, None]: """获取数据库会话""" async with async_test_db_session() as session: yield session + + +async def override_get_db_transaction() -> AsyncGenerator[AsyncSession, None]: + """获取数据库会话""" + async with async_test_db_session.begin() as session: + yield session