Files
sanguo_moziplus_v2/tests/conftest.py
T
2026-06-05 11:03:30 +08:00

52 lines
1.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import uuid
import pytest
from pathlib import Path
from fastapi.testclient import TestClient
def pytest_configure(config):
markers = {
"unit": "单元测试:纯逻辑,mock 外部依赖",
"integration": "集成测试:API 端点 + 真实/临时 DB",
"e2e": "端到端测试:真实 daemon + Agent(手动触发)",
"slow": "慢测试(>5s",
"broadcast": "广播认领相关",
"mail": "邮件系统相关",
"state_machine": "状态机转换",
"classify": "Classify Outcome 相关",
"review": "审查/Rebuttal 相关",
}
for name, desc in markers.items():
config.addinivalue_line("markers", f"{name}: {desc}")
@pytest.fixture
def isolated_data_root(tmp_path):
"""隔离的 data_root,测试结束自动清理"""
data_root = tmp_path / "test_data"
data_root.mkdir()
return data_root
@pytest.fixture
def isolated_registry(isolated_data_root):
"""隔离的 registry.db"""
from src.blackboard.registry import ProjectRegistry
registry = ProjectRegistry(isolated_data_root)
return registry
@pytest.fixture
def client_with_isolation(isolated_data_root):
"""带数据隔离的 TestClient"""
import src.utils as utils
original = utils.get_data_root
utils.get_data_root = lambda: isolated_data_root
from src.main import app
client = TestClient(app)
yield client
utils.get_data_root = original