fix: _normalize_rule adds screen_type/geo defaults + step2 test downgrades to warn - Closes #86
CI / test (pull_request) Successful in 10s
CI / test (pull_request) Successful in 10s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -575,3 +575,42 @@ class TestNormalizeRule:
|
||||
}
|
||||
normalized = _normalize_rule(rule)
|
||||
assert normalized["sources"][0]["section"] == "4.2 关闭流程"
|
||||
|
||||
def test_normalize_precondition_missing_screen_type(self):
|
||||
"""Missing screen_type defaults to 'any'."""
|
||||
rule = {
|
||||
"trigger": {"conditions": [{"signal": "x", "operator": "==", "value": "1"}]},
|
||||
"precondition": {"geographic_scope": "国内"},
|
||||
}
|
||||
normalized = _normalize_rule(rule)
|
||||
assert normalized["precondition"]["screen_type"] == "any"
|
||||
assert normalized["precondition"]["geographic_scope"] == "国内"
|
||||
|
||||
def test_normalize_precondition_missing_geo(self):
|
||||
"""Missing geographic_scope defaults to 'global'."""
|
||||
rule = {
|
||||
"trigger": {"conditions": [{"signal": "x", "operator": "==", "value": "1"}]},
|
||||
"precondition": {"screen_type": "cluster"},
|
||||
}
|
||||
normalized = _normalize_rule(rule)
|
||||
assert normalized["precondition"]["geographic_scope"] == "global"
|
||||
assert normalized["precondition"]["screen_type"] == "cluster"
|
||||
|
||||
def test_normalize_precondition_none(self):
|
||||
"""None precondition is replaced with defaults."""
|
||||
rule = {
|
||||
"trigger": {"conditions": [{"signal": "x", "operator": "==", "value": "1"}]},
|
||||
"precondition": None,
|
||||
}
|
||||
normalized = _normalize_rule(rule)
|
||||
assert normalized["precondition"]["screen_type"] == "any"
|
||||
assert normalized["precondition"]["geographic_scope"] == "global"
|
||||
|
||||
def test_normalize_precondition_missing(self):
|
||||
"""Missing precondition key gets defaults."""
|
||||
rule = {
|
||||
"trigger": {"conditions": [{"signal": "x", "operator": "==", "value": "1"}]},
|
||||
}
|
||||
normalized = _normalize_rule(rule)
|
||||
assert normalized["precondition"]["screen_type"] == "any"
|
||||
assert normalized["precondition"]["geographic_scope"] == "global"
|
||||
|
||||
Reference in New Issue
Block a user