整理配置和代码入口,增加部分测试。
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import importlib.util
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
|
||||
def _load_case_module():
|
||||
scripts_dir = Path(__file__).resolve().parents[2] / "scripts"
|
||||
if str(scripts_dir) not in sys.path:
|
||||
sys.path.insert(0, str(scripts_dir))
|
||||
file_path = scripts_dir / "auto_test_domains" / "project_case.py"
|
||||
spec = importlib.util.spec_from_file_location("project_case_for_test", file_path)
|
||||
if spec is None or spec.loader is None:
|
||||
raise RuntimeError(f"Unable to load module from {file_path}")
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(module)
|
||||
return module
|
||||
|
||||
|
||||
def test_project_case_round_3_focuses_on_stable_readback_fields(monkeypatch, tmp_path: Path) -> None:
|
||||
module = _load_case_module()
|
||||
captured_rounds: dict[str, dict] = {}
|
||||
|
||||
def _fake_run_pipeline_round(**kwargs):
|
||||
captured_rounds[kwargs["round_name"]] = kwargs
|
||||
return {"name": kwargs["round_name"], "passed": True, "issues": []}
|
||||
|
||||
def _fake_build_domain_report(**kwargs):
|
||||
return kwargs
|
||||
|
||||
monkeypatch.setattr(module, "run_pipeline_round", _fake_run_pipeline_round)
|
||||
monkeypatch.setattr(module, "build_domain_report", _fake_build_domain_report)
|
||||
|
||||
module.run_case(config={"project_root": str(tmp_path)}, report_root=tmp_path)
|
||||
|
||||
round_3 = captured_rounds["round_3_investment_update"]
|
||||
expected_fields = round_3["expected_bound_fields"]["remote"]["project"][module.LOCAL_PROJECT_ID]
|
||||
changed_fields = round_3["expected_changes"]["project"][module.LOCAL_PROJECT_ID]
|
||||
|
||||
assert set(changed_fields) == {
|
||||
"investment_decision_capacity",
|
||||
"investment_decision_date",
|
||||
"complete_investment",
|
||||
"dynamic_investment",
|
||||
}
|
||||
assert set(expected_fields.keys()) == {
|
||||
"investment_decision_capacity",
|
||||
"investment_decision_date",
|
||||
"complete_investment",
|
||||
"dynamic_investment",
|
||||
}
|
||||
assert "PUT /project/settlement_investment" in round_3["coverage"]["api"]
|
||||
Reference in New Issue
Block a user