mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-03 22:51:47 +08:00
ci: enforce complexity reduction ratchet
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
"""复杂度只降不增 ratchet 测试。"""
|
||||
|
||||
from scripts.architecture.complexity import compare_complexity
|
||||
|
||||
|
||||
def test_complexity_ratchet_allows_removal_and_reduction() -> None:
|
||||
"""既有超限入口被删除或缩短必须允许合并。"""
|
||||
baseline = {
|
||||
"api_endpoint": {"app/api/endpoints/a.py:large": 100},
|
||||
"application_public": {"app/application/a.py:Service.run": 180},
|
||||
"chain_public": {},
|
||||
}
|
||||
current = {
|
||||
"api_endpoint": {"app/api/endpoints/a.py:large": 90},
|
||||
"application_public": {},
|
||||
"chain_public": {},
|
||||
}
|
||||
|
||||
assert compare_complexity(baseline, current) == []
|
||||
|
||||
|
||||
def test_complexity_ratchet_rejects_growth_and_new_oversize() -> None:
|
||||
"""既有入口增长和新增超预算入口必须同时给出精确诊断。"""
|
||||
baseline = {
|
||||
"api_endpoint": {"app/api/endpoints/a.py:large": 100},
|
||||
"application_public": {},
|
||||
"chain_public": {},
|
||||
}
|
||||
current = {
|
||||
"api_endpoint": {
|
||||
"app/api/endpoints/a.py:large": 101,
|
||||
"app/api/endpoints/b.py:new_endpoint": 81,
|
||||
},
|
||||
"application_public": {},
|
||||
"chain_public": {},
|
||||
}
|
||||
|
||||
problems = compare_complexity(baseline, current)
|
||||
|
||||
assert any("既有超限增长" in problem for problem in problems)
|
||||
assert any("新增超限" in problem for problem in problems)
|
||||
Reference in New Issue
Block a user