fix(management): validate_config补grade_bounds形状与跨维度code唯一性校验
This commit is contained in:
@@ -277,3 +277,29 @@ def test_validate_config_threshold_shapes():
|
||||
.update(low=300)) # low>high 200
|
||||
assert any("call_band" in p and "low<high" in p
|
||||
for p in validate_config(bad_band))
|
||||
|
||||
|
||||
def test_validate_config_grade_bounds_shape():
|
||||
"""grade_bounds 须含 A/B/C/D 且严格降序(B4 DB 配置加载预埋)。"""
|
||||
missing = json.loads(json.dumps(DEFAULT_SCORE_CONFIG)) # deep copy
|
||||
del missing["grade_bounds"]["A"]
|
||||
assert any("grade_bounds" in p for p in validate_config(missing))
|
||||
|
||||
non_desc = json.loads(json.dumps(DEFAULT_SCORE_CONFIG))
|
||||
non_desc["grade_bounds"].update(A=80, B=90) # A<B 非降序
|
||||
assert any("grade_bounds" in p and "严格降序" in p
|
||||
for p in validate_config(non_desc))
|
||||
|
||||
|
||||
def test_validate_config_cross_dimension_code_unique():
|
||||
"""同指标 code 出现于两维度:metrics_detail 扁平 dict 会碰撞,须报问题。"""
|
||||
dup = json.loads(json.dumps(DEFAULT_SCORE_CONFIG)) # deep copy
|
||||
# 把 customer 维的 active_share 整个抄进 service 维 → code 跨维度重复
|
||||
dup["dimensions"]["service"]["metrics"]["active_share"] = \
|
||||
dup["dimensions"]["customer"]["metrics"]["active_share"]
|
||||
assert any("active_share" in p and "重复" in p for p in validate_config(dup))
|
||||
|
||||
|
||||
def test_validate_config_default_config_clean():
|
||||
"""默认配置自身必须全绿(空问题列表)。"""
|
||||
assert validate_config(DEFAULT_SCORE_CONFIG) == []
|
||||
|
||||
Reference in New Issue
Block a user