Files
fquiz/api/tests/test_fault_recurrence_contract.py
chengkai3 8a2af9135f [migrate]:[FL-18][迁移故障复现工具]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-07 17:35:43 +08:00

38 lines
1.4 KiB
Python

from __future__ import annotations
import ast
import unittest
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ROUTER_FILE = ROOT / "app" / "api" / "router.py"
SEED_FILE = ROOT / "app" / "services" / "seed_service.py"
AUTHZ_FILE = ROOT / "app" / "services" / "legacy_authz_service.py"
def _load_module(path: Path) -> ast.Module:
return ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
class FaultRecurrenceContractTest(unittest.TestCase):
def test_router_registers_fault_recurrence_api(self) -> None:
source = ROUTER_FILE.read_text(encoding="utf-8")
self.assertIn("from .v1.fault_recurrence import router as fault_recurrence_router", source)
self.assertIn("v1_router.include_router(fault_recurrence_router)", source)
def test_seed_defaults_include_fault_recurrence_menu(self) -> None:
source = SEED_FILE.read_text(encoding="utf-8")
self.assertIn('"code": "admin.fault_recurrence"', source)
self.assertIn('"path": "/admin/fault-recurrence"', source)
self.assertIn('"admin.fault_recurrence"', source)
def test_legacy_authz_maps_fault_recurrence_permissions(self) -> None:
source = AUTHZ_FILE.read_text(encoding="utf-8")
self.assertIn('"admin.fault_recurrence"', source)
self.assertIn('"/admin/fault-recurrence"', source)
if __name__ == "__main__":
unittest.main()