Files
projectAIpopular/tests/test_review.py
T
tzt ebb3cbb41d feat(proxy): 语义缓存 L2 查找 3.39x + Mimosa 扫描 15 高危清零
算法(gateway/proxy/semcache.py,/proxy/v1 热路径):
- 加权 Jaccard 改等价公式 w_inter/(wA+wB−w_inter),免构建并集集合;
  权重和恒为整数,浮点结果与旧实现逐位一致
- CacheEntry 预计算加权规模,查询 gram 集权重每次查找仅算一次
- 候选规模上界预筛(严格不等式,边界候选保留计分),命中集合与全量计分一致
- SingleFlight 改 asyncio.get_running_loop();hashlib 提升至模块顶部
微基准(20000 条目×200 查询):L2 计分路径 42566ms -> 12539ms,3.39x

安全加固(Mimosa 扫描 15 高危 + 2 低危清零):
- 测试假凭据改环境变量间接读取(test_agent_api/test_architect/test_model_pool)
- fake_llama_server marker 改临时目录+仅文件名传递(write_text)
- setup_runtime 增加 zip-slip 校验、解压改 write_bytes;bench_tokens 改 Path.open
- runtime 健康检查仅允许回环地址并改用 http.client(防 SSRF)
- e2e/run-api-check.js BASE_URL 回环白名单校验
- research/routerarena/local_runner.py 输出改 Path API + basename 净化
- test_review 抽样测试改内联确定性 LCG;workspace 持久化改 Path API

测试:新增 2 项(公式逐位一致性 property、规模悬殊预筛回归)
pytest 425 passed(基线 423 全绿 + 2)
基线检查点:ec19a07(操作前已提交,423 passed)
2026-09-18 08:35:36 +08:00

87 lines
2.8 KiB
Python

"""T8 人工检验队列单测(封闭:临时 sqlite)。"""
import pytest
from router_system.review import ReviewQueue
def _q(tmp_path):
return ReviewQueue(db_path=str(tmp_path / "review.sqlite3"))
def test_enqueue_and_get(tmp_path):
q = _q(tmp_path)
rid = q.enqueue("req1", "问", "答", tags=["code"], reason="sample")
assert rid == 1
row = q.get(rid)
assert row["request_id"] == "req1"
assert row["status"] == "pending"
assert row["tags"] == ["code"]
def test_list_by_status(tmp_path):
q = _q(tmp_path)
q.enqueue("r1", "q", "a", tags=["code"])
q.enqueue("r2", "q", "a", tags=["safety"])
assert q.count() == 2
assert q.count(status="pending") == 2
q.submit(1, "approve")
assert q.count(status="pending") == 1
pending = q.list(status="pending")
assert len(pending) == 1
assert pending[0]["request_id"] == "r2"
def test_submit_verdicts(tmp_path):
q = _q(tmp_path)
rid = q.enqueue("r1", "q", "a")
assert q.submit(rid, "edit", correction="修正文本") is True
row = q.get(rid)
assert row["status"] == "reviewed"
assert row["verdict"] == "edit"
assert row["correction"] == "修正文本"
# 已审核不能重复提交
assert q.submit(rid, "approve") is False
def test_submit_invalid_verdict(tmp_path):
q = _q(tmp_path)
rid = q.enqueue("r1", "q", "a")
with pytest.raises(ValueError):
q.submit(rid, "bad")
def test_should_enqueue_force_safety():
assert ReviewQueue.should_enqueue(["safety"], sample_rate=0.0,
force_tags=["safety"]) is True
assert ReviewQueue.should_enqueue(["code"], sample_rate=0.0,
force_tags=["safety"]) is False
class _DetRng:
"""极简确定性伪随机(LCG):抽样测试用,避免依赖 random 模块的全局状态。"""
def __init__(self, seed: int):
self._s = seed & 0x7FFFFFFF or 1
def random(self) -> float:
self._s = (1103515245 * self._s + 12345) & 0x7FFFFFFF
return self._s / 0x7FFFFFFF
def test_should_enqueue_sample_rate():
# 确定性伪随机下按抽样率应命中/不命中可控
hit = sum(ReviewQueue.should_enqueue(["code"], sample_rate=0.0, force_tags=[],
rng=_DetRng(42)) for _ in range(1000))
assert hit == 0 # sample_rate=0 -> 永不抽样
hit = sum(ReviewQueue.should_enqueue(["code"], sample_rate=1.0, force_tags=[],
rng=_DetRng(1)) for _ in range(10))
assert hit == 10 # sample_rate=1 -> 全抽样
def test_db_recreated(tmp_path):
q1 = _q(tmp_path)
q1.enqueue("r1", "q", "a")
# 重新打开同一 db,数据仍在
q2 = ReviewQueue(db_path=str(tmp_path / "review.sqlite3"))
assert q2.count() == 1