# -*- coding: utf-8 -*- """第二批修复:O-001(余 2 处笔误)、O-002(泛化尾述收敛)、O-003(数据引用对齐)。""" from __future__ import annotations import sys from pathlib import Path REPO = Path(__file__).resolve().parent.parent sys.stdout.reconfigure(encoding="utf-8") CASES = REPO / "output" / "test_cases" / "物流公司管理需求_测试用例.md" FIXES: list[tuple[str, str, str, str]] = [ # O-001 余项 ("PLT_BSC_LC_019", "预期结果", "1. 不传许可证时提单成功(核心边界口径,不得误判为必传)", "1. 不传许可证时提交成功(核心边界口径,不得误判为必传)"), ("PLT_BSC_LC_066", "测试数据", "生效=T-0、过期=T+365", "生效时间=T、过期时间=T+365"), # O-002 泛化尾述收敛 ("PLT_BSC_LC_012", "预期结果", "3. 空态下分页组件收敛(不显示明细分页)、导出按钮行为符合平台口径", "3. 空态下分页组件收敛(不显示明细分页)、导出按钮不可点 或 给出无数据提示(记录实际行为)"), ("PLT_BSC_LC_041", "预期结果", "4. 控制台无未捕获异常,页面功能正常", "4. 控制台无未捕获异常;列表查询/重置/导出等页面功能可正常执行(无因注入样本导致的渲染或请求异常)"), ("PLT_TMS_LC_011", "预期结果", "3. 恢复后搜索、分页、单选功能正常", "3. 恢复后搜索可命中、分页可翻页、单选可勾选并回填(三功能逐一验证)"), ("PLT_TMS_LC_074", "预期结果", "3. \"无外协公司\"选项下记录可正常操作,展示列为\"无外协公司\"", "3. \"无外协公司\"选项下记录可执行打款/驳回,状态流转与未筛选时一致,展示列为\"无外协公司\""), # O-003 数据引用对齐 ("PLT_TMS_LC_005", "测试数据", "BLK-03(名称/代码关键词、无结果关键词 ZZZ不存在);WT-08", "LC-07(名称部分字符\"测试庚\"、信用代码前缀 91532301);无结果关键词 ZZZ不存在;WT-08"), ("PLT_BSC_LC_040", "测试数据", "UQ-10(1 秒连点 2 次);REQ-011;项目画像 §8.2", "UQ-10(1 秒连点 3 次);REQ-011;项目画像 §8.2"), ] FIX_MAP = { "PLT_BSC_LC_019": "O-001", "PLT_BSC_LC_066": "O-001", "PLT_BSC_LC_012": "O-002", "PLT_BSC_LC_041": "O-002", "PLT_TMS_LC_011": "O-002", "PLT_TMS_LC_074": "O-002", "PLT_TMS_LC_005": "O-003", "PLT_BSC_LC_040": "O-003", } lines = CASES.read_text(encoding="utf-8").splitlines(keepends=True) line_of: dict[str, int] = {} for i, line in enumerate(lines): if line.startswith("| PLT_"): line_of[line.split("|")[1].strip()] = i for case_id, col, old, new in FIXES: li = line_of[case_id] line = lines[li] cnt = line.count(old) if cnt != 1: raise SystemExit(f"❌ {case_id} [{col}] 命中 {cnt} 次(期望 1):{old[:50]!r}") lines[li] = line.replace(old, new) print(f"✅ {case_id} [{col}] 已修复") for case_id, fix_id in FIX_MAP.items(): li = line_of[case_id] line = lines[li] tag = f";[AI修正: 评审修复 {fix_id}]" if tag in line: continue idx = line.rstrip().rfind(" |") if idx < 0: raise SystemExit(f"❌ {case_id} 备注列尾部结构异常") lines[li] = line[:idx] + tag + line[idx:] print(f"✅ {case_id} 补标注 [AI修正: 评审修复 {fix_id}]") CASES.write_text("".join(lines), encoding="utf-8") print(f"\n完成:{len(FIXES)} 处修复 + {len(FIX_MAP)} 处标注 -> {CASES}")