This commit is contained in:
2026-05-04 07:20:16 +02:00
parent 69e1726045
commit 58173bd6a9
4 changed files with 72 additions and 58 deletions

View File

@@ -347,3 +347,38 @@ def test_ban_country_empty_string_coerced_to_none() -> None:
country="",
)
assert ban.country is None
# ---------------------------------------------------------------------------
# ConfFileCreateRequest reserved jail name validation
# ---------------------------------------------------------------------------
def test_conffile_create_request_rejects_reserved_jail_name() -> None:
"""ConfFileCreateRequest rejects fail2ban reserved jail names."""
from app.models.file_config import ConfFileCreateRequest
for reserved in ["all", "status", "purge", "start", "stop", "reload", "restart"]:
with pytest.raises(ValidationError) as exc_info:
ConfFileCreateRequest(name=reserved, content="[my jail]")
assert "reserved" in str(exc_info.value).lower()
def test_conffile_create_request_accepts_valid_jail_name() -> None:
"""ConfFileCreateRequest accepts valid non-reserved jail names."""
from app.models.file_config import ConfFileCreateRequest
req = ConfFileCreateRequest(name="sshd", content="[my jail]")
assert req.name == "sshd"
req = ConfFileCreateRequest(name="nginx-http-auth", content="[my jail]")
assert req.name == "nginx-http-auth"
def test_conffile_create_request_rejects_ban_and_unban() -> None:
"""ConfFileCreateRequest rejects 'ban' and 'unban' as jail names."""
from app.models.file_config import ConfFileCreateRequest
for name in ["ban", "unban", "add", "del", "set", "get"]:
with pytest.raises(ValidationError):
ConfFileCreateRequest(name=name, content="[my jail]")