myrmidon / python /tests /integration /services /test_dynamic_agents.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
1.74 kB
import pytest
from src.server.services.agent_registry import get_agent_config
from src.server.services.agent_service import AgentService
@pytest.mark.asyncio
class TestDynamicAgentsIntegration:
async def test_dynamic_agent_registry_loading(self):
"""Verify dynamic loading of agent configurations and tools from public.archon_agents."""
# 1. Test Librarian Config
config = get_agent_config("librarian")
assert config is not None
assert config["name"] == "Archon Librarian"
assert config["model_tier"] == "lite"
# Verify tools list loaded from database relation
assert "rag_search_knowledge_base" in config["tools"]
assert "perform_web_crawl" in config["tools"]
# 2. Test DevBot Config
dev_config = get_agent_config("dev-bot")
assert dev_config is not None
assert dev_config["name"] == "Archon DevBot"
assert dev_config["model_tier"] == "pro"
assert "apply_modification" in dev_config["tools"]
async def test_dynamic_assignable_agents_rbac(self):
"""Verify dynamic assignable agents logic using role-agent mappings in database."""
service = AgentService()
# 1. Test Sales role
sales_agents = await service.get_assignable_agents(user_role="sales")
assert len(sales_agents) == 1
assert sales_agents[0]["name"] == "MarketBot (Sales)"
# 2. Test Marketing role
marketing_agents = await service.get_assignable_agents(user_role="marketing")
agent_names = {a["name"] for a in marketing_agents}
assert "MarketBot (Sales)" in agent_names
assert "Librarian (Knowledge)" in agent_names
assert len(marketing_agents) == 2