# -*- coding: utf-8 -*- # 样例:复制为 ``tests/test_golden_cases.py`` 后运行;默认不收集。 """ Golden fixture 回归(示意)。 - 从 ``tests/fixtures/`` 读取脱敏 JSON。 - 调用 service 层(复制后替换为真实 import)。 - 断言关键字段,而非全文 diff(外部系统常带时间戳/非确定性字段)。 """ from __future__ import annotations import json import os import unittest def _fixtures_dir() -> str: return os.path.join(os.path.dirname(__file__), "..", "fixtures") class TestGoldenCasesSample(unittest.TestCase): def test_sample_request_matches_expected_shape(self) -> None: req_path = os.path.join(_fixtures_dir(), "sample_request.json") exp_path = os.path.join(_fixtures_dir(), "expected_response.json") with open(req_path, encoding="utf-8") as f: req = json.load(f) with open(exp_path, encoding="utf-8") as f: exp = json.load(f) self.assertEqual(req["request_id"], "req_test_001") self.assertTrue(req["parameters"]["options"]["dry_run"]) # 示意:out = run(req); 然后 assert out["success"] == exp["success"] 等关键字段 self.assertTrue(exp["success"]) self.assertEqual(exp["data"]["status"], "ok") if __name__ == "__main__": unittest.main()