CLFGUI / tests /test_backend_profiles.py
smlflg's picture
Initial public upload from Projekte/CLFGUI
a4514b4 verified
Raw History Blame Contribute Delete
1.17 kB
import pytest
from clfgui.backend.profiles import InvalidAgentId, ProfileDiscovery, UnknownAgent
def test_profile_discovery_lists_valid_directories_only(tmp_path):
profiles_dir = tmp_path / "Hermes" / "profiles"
profiles_dir.mkdir(parents=True)
(profiles_dir / "planner").mkdir()
(profiles_dir / "research-agent").mkdir()
(profiles_dir / "BadName").mkdir()
(profiles_dir / "notes.txt").write_text("not a profile", encoding="utf-8")
agents = ProfileDiscovery(profiles_dir).list_agents()
assert [agent.id for agent in agents] == ["planner", "research-agent"]
def test_profile_discovery_validates_agent_ids_without_traversal(tmp_path):
profiles_dir = tmp_path / "Hermes" / "profiles"
profiles_dir.mkdir(parents=True)
(profiles_dir / "planner").mkdir()
discovery = ProfileDiscovery(profiles_dir)
assert discovery.validate_agent_id("planner") == "planner"
with pytest.raises(InvalidAgentId):
discovery.validate_agent_id("../planner")
with pytest.raises(InvalidAgentId):
discovery.validate_agent_id("Planner")
with pytest.raises(UnknownAgent):
discovery.validate_agent_id("missing")