2026-08-24 01:18:40 +02:00
|
|
|
from tamq.policy import load_profile
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_default_policy(tmp_path):
|
|
|
|
|
profile = load_profile(tmp_path / "missing.toml")
|
|
|
|
|
assert profile.name == "default"
|
|
|
|
|
assert "secrets" in profile.require_human
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_configured_policy(tmp_path):
|
|
|
|
|
path = tmp_path / "config.toml"
|
2026-08-26 08:11:09 +02:00
|
|
|
path.write_text("[policy.profiles.dev]\nallow=['repo_inspect']\nrequire_human=['destructive']\nsafety_gated_max_attempts=2\ndelivery_max_attempts=3\n")
|
2026-08-24 01:18:40 +02:00
|
|
|
profile = load_profile(path, "dev")
|
|
|
|
|
assert profile.safety_gated_max_attempts == 2
|
2026-08-26 08:11:09 +02:00
|
|
|
assert profile.delivery_max_attempts == 3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_delivery_attempt_cap_is_bounded(tmp_path):
|
|
|
|
|
path = tmp_path / "config.toml"
|
|
|
|
|
path.write_text("[policy.profiles.bad]\ndelivery_max_attempts=10\n")
|
|
|
|
|
try:
|
|
|
|
|
load_profile(path, "bad")
|
|
|
|
|
except ValueError as exc:
|
|
|
|
|
assert str(exc) == "delivery_max_attempts must be between 1 and 9"
|
|
|
|
|
else:
|
|
|
|
|
raise AssertionError("invalid delivery cap was accepted")
|