9c9a51263c
汇总未提交工作区:Servers 列表 site_url 链接、终端页与选机器 UI、SSH 连通性与 Telegram 通知、agent/offline/unset_path 后台调度与 gate_ai_review 门控;更新 AGENTS 与 agent-exploration 规则(仅本机 commit);同步 web/app 构建产物与相关文档。
65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
"""Gate 8 AI review helper tests (no cursor-agent network)."""
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
|
|
from scripts.gate_ai_review import (
|
|
blockers,
|
|
extract_json_blob,
|
|
is_reviewable,
|
|
normalize_finding,
|
|
validate_review_doc,
|
|
)
|
|
|
|
|
|
def test_is_reviewable_skips_docs_and_assets() -> None:
|
|
assert is_reviewable("server/api/foo.py")
|
|
assert not is_reviewable("docs/changelog/x.md")
|
|
assert not is_reviewable("web/app/assets/index-abc.js")
|
|
|
|
|
|
def test_blockers_p1_high_confidence() -> None:
|
|
doc = {
|
|
"schema_version": 1,
|
|
"head_sha": "abc",
|
|
"verdict": "Ready with fixes",
|
|
"reviewed_at": "2026-06-14T00:00:00+00:00",
|
|
"findings": [
|
|
{"severity": "P1", "file": "a.py", "line": 1, "title": "bug", "confidence": 75},
|
|
{"severity": "P2", "file": "b.py", "line": 2, "title": "nit", "confidence": 100},
|
|
],
|
|
}
|
|
blocks = blockers(doc)
|
|
assert len(blocks) == 1
|
|
assert blocks[0]["severity"] == "P1"
|
|
|
|
|
|
def test_blockers_not_ready_verdict() -> None:
|
|
doc = {
|
|
"schema_version": 1,
|
|
"head_sha": "abc",
|
|
"verdict": "Not ready",
|
|
"reviewed_at": "2026-06-14T00:00:00+00:00",
|
|
"findings": [],
|
|
}
|
|
assert len(blockers(doc)) == 1
|
|
|
|
|
|
def test_extract_json_blob_nested_result() -> None:
|
|
inner = {"verdict": "Ready to merge", "findings": []}
|
|
outer = {"result": json.dumps(inner)}
|
|
parsed = extract_json_blob(json.dumps(outer))
|
|
assert parsed["verdict"] == "Ready to merge"
|
|
|
|
|
|
def test_validate_review_doc() -> None:
|
|
doc = {
|
|
"schema_version": 1,
|
|
"head_sha": "deadbeef",
|
|
"verdict": "Ready to merge",
|
|
"reviewed_at": "2026-06-14T00:00:00+00:00",
|
|
"findings": [normalize_finding({"severity": "p3", "file": "x", "line": "3", "title": "t", "confidence": "50"})],
|
|
}
|
|
validate_review_doc(doc)
|
|
assert doc["findings"][0]["severity"] == "P3"
|