Files
PolyWeather/tests/test_cloudflare_free_config.py
T
2026-06-10 19:40:54 +08:00

49 lines
1.6 KiB
Python

from scripts.configure_cloudflare_free import (
MANAGED_RULE_REF_PREFIX,
build_managed_cache_rules,
merge_managed_rules,
)
def test_cloudflare_managed_rules_cache_public_content_then_bypass_sensitive_requests():
rules = build_managed_cache_rules()
assert [rule["ref"] for rule in rules] == [
f"{MANAGED_RULE_REF_PREFIX}public",
f"{MANAGED_RULE_REF_PREFIX}bypass",
]
assert rules[0]["action_parameters"]["cache"] is True
assert rules[-1]["action_parameters"]["cache"] is False
assert 'http.host eq "api.polyweather.top"' in rules[-1]["expression"]
assert 'http.request.uri.query contains "force_refresh=true"' in rules[-1]["expression"]
def test_cloudflare_rule_merge_preserves_unmanaged_rules_and_puts_bypass_last():
existing = [
{
"ref": "existing_rule",
"description": "keep me",
"expression": 'http.host eq "example.com"',
"action": "set_cache_settings",
"action_parameters": {"cache": True},
"enabled": True,
},
{
"ref": f"{MANAGED_RULE_REF_PREFIX}old",
"description": "replace me",
"expression": "true",
"action": "set_cache_settings",
"action_parameters": {"cache": False},
"enabled": True,
},
]
merged = merge_managed_rules(existing, build_managed_cache_rules())
assert [rule["ref"] for rule in merged] == [
"existing_rule",
f"{MANAGED_RULE_REF_PREFIX}public",
f"{MANAGED_RULE_REF_PREFIX}bypass",
]
assert merged[-1]["action_parameters"]["cache"] is False