| 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.""" |
| |
| config = get_agent_config("librarian") |
| assert config is not None |
| assert config["name"] == "Archon Librarian" |
| assert config["model_tier"] == "lite" |
| |
| assert "rag_search_knowledge_base" in config["tools"] |
| assert "perform_web_crawl" in config["tools"] |
|
|
| |
| 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() |
|
|
| |
| sales_agents = await service.get_assignable_agents(user_role="sales") |
| assert len(sales_agents) == 1 |
| assert sales_agents[0]["name"] == "MarketBot (Sales)" |
|
|
| |
| 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 |
|
|