test(review): 把 5 处既有瑕疵锁成 *_known_gap 用例
让既有瑕疵可见,而不是被当成正确行为;改 1~3(确定性检查前置/结论结构化/ 证据交叉校验)时可据此判断行为是否被改变。 - bbox_to_window 含非数值 → ValueError(上游只判长度) - summarize / extract_issues 硬下标 f['frame'] → KeyError - annotate 的 created 无去重(同 handle 产生重复批注) - extract_issues 单行 ```json[...]``` 围栏剥离失败 → [] - result_json 文本 'null' → None(与「无 text 返回 default」语义易混)
This commit is contained in:
1 parent
fa2d01aad2
commit
daccc734bf
4 files changed
+51
No files matched your search
@@ -2,6 +2,8 @@
|
||||
|
||||
import json
|
||||
|
||||
import pytest
|
||||
|
||||
from dwg_review.phases.report import extract_issues, save_report, summarize
|
||||
from tests.fakes import FakeLlmClient, make_ctx
|
||||
|
||||
@@ -44,6 +46,13 @@ def test_summarize_falls_back_to_raw_input_on_error():
|
||||
assert any("汇总失败" in line for line in logs)
|
||||
|
||||
|
||||
def test_summarize_missing_frame_key_known_gap():
|
||||
"""已知瑕疵:summarize 用硬下标 f['frame'],findings 缺该键直接 KeyError。"""
|
||||
ctx = make_ctx(llm=FakeLlmClient(text="x"))
|
||||
with pytest.raises(KeyError):
|
||||
summarize(ctx, [{"finding": "缺 frame 键"}], log=lambda *a: None)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# extract_issues
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -85,6 +94,20 @@ def test_extract_issues_returns_empty_when_not_a_list():
|
||||
assert extract_issues(ctx, findings_fixture(), log=lambda *a: None) == []
|
||||
|
||||
|
||||
def test_extract_issues_single_line_fence_known_gap():
|
||||
"""已知瑕疵:围栏剥离依赖换行,单行 ```json[...]``` 会残留 json 前缀 → 解析失败。"""
|
||||
llm = FakeLlmClient(text_script=['```json[{"frame": 1, "message": "z"}]```'])
|
||||
ctx = make_ctx(llm=llm)
|
||||
assert extract_issues(ctx, findings_fixture(), log=lambda *a: None) == []
|
||||
|
||||
|
||||
def test_extract_issues_missing_frame_key_known_gap():
|
||||
"""已知瑕疵:extract_issues 同样用硬下标 f['frame'],findings 缺该键直接 KeyError。"""
|
||||
ctx = make_ctx(llm=FakeLlmClient(text="[]"))
|
||||
with pytest.raises(KeyError):
|
||||
extract_issues(ctx, [{"finding": "缺 frame 键"}], log=lambda *a: None)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# save_report
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user