mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 13:26:48 +00:00
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
"""Tests for security profile expansion (Section 7)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
|
|
class TestProfileExpansion:
|
|
"""Profiles should pre-fill security and server config fields."""
|
|
|
|
def test_personal_profile_sets_redact(self) -> None:
|
|
from openjarvis.core.config import SecurityConfig, apply_security_profile
|
|
|
|
cfg = SecurityConfig(profile="personal")
|
|
apply_security_profile(cfg, None)
|
|
assert cfg.mode == "redact"
|
|
assert cfg.rate_limit_enabled is True
|
|
|
|
def test_server_profile_sets_block(self) -> None:
|
|
from openjarvis.core.config import (
|
|
SecurityConfig,
|
|
ServerConfig,
|
|
apply_security_profile,
|
|
)
|
|
|
|
cfg = SecurityConfig(profile="server")
|
|
server_cfg = ServerConfig()
|
|
apply_security_profile(cfg, server_cfg)
|
|
assert cfg.mode == "block"
|
|
assert cfg.rate_limit_rpm == 30
|
|
assert cfg.rate_limit_burst == 5
|
|
assert server_cfg.host == "0.0.0.0"
|
|
|
|
def test_explicit_override_beats_profile(self) -> None:
|
|
from openjarvis.core.config import SecurityConfig, apply_security_profile
|
|
|
|
cfg = SecurityConfig(profile="server", mode="warn")
|
|
apply_security_profile(cfg, None, overrides={"mode"})
|
|
assert cfg.mode == "warn"
|
|
|
|
def test_empty_profile_is_noop(self) -> None:
|
|
from openjarvis.core.config import SecurityConfig, apply_security_profile
|
|
|
|
cfg = SecurityConfig()
|
|
original_mode = cfg.mode
|
|
apply_security_profile(cfg, None)
|
|
assert cfg.mode == original_mode
|
|
|
|
def test_unknown_profile_raises(self) -> None:
|
|
from openjarvis.core.config import SecurityConfig, apply_security_profile
|
|
|
|
cfg = SecurityConfig(profile="nonexistent")
|
|
with pytest.raises(ValueError, match="Unknown security profile"):
|
|
apply_security_profile(cfg, None)
|