Files
voidea/tests/unit/agents/test_registry.py
T

81 lines
2.2 KiB
Python

"""Tests for AgentRegistry."""
import pytest
from app.agents.registry import AgentRegistry, get_agent, get_all_agents
@pytest.fixture
def registry():
return AgentRegistry()
def test_registry_initialization(registry):
"""Test registry initializes with all agents."""
agents = registry.list_agents()
assert len(agents) >= 5
agent_names = [a["name"] for a in agents]
assert "doc_agent" in agent_names
assert "backlog_agent" in agent_names
assert "spec_agent" in agent_names
assert "audit_agent" in agent_names
assert "observer_agent" in agent_names
assert "evolution_agent" in agent_names
def test_get_agent(registry):
"""Test getting specific agent."""
agent = registry.get("doc_agent")
assert agent is not None
assert agent.name == "doc_agent"
def test_get_nonexistent_agent(registry):
"""Test getting non-existent agent."""
agent = registry.get("nonexistent_agent")
assert agent is None
def test_list_agents(registry):
"""Test listing all agents."""
agents = registry.list_agents()
assert isinstance(agents, list)
assert all("name" in a for a in agents)
assert all("status" in a for a in agents)
def test_get_all_agents_function():
"""Test get_all_agents function."""
agents = get_all_agents()
assert isinstance(agents, list)
assert len(agents) > 0
def test_get_agent_function():
"""Test get_agent function."""
agent = get_agent("spec_agent")
assert agent is not None
assert agent.name == "spec_agent"
@pytest.mark.asyncio
async def test_run_nonexistent_agent(registry):
"""Test running non-existent agent."""
result = await registry.run_agent("nonexistent")
assert result.success is False
@pytest.mark.asyncio
async def test_health_check_all(registry):
"""Test health check for all agents."""
results = await registry.health_check_all()
assert isinstance(results, dict)
assert all(isinstance(v, bool) for v in results.values())
@pytest.mark.asyncio
async def test_get_metrics_all(registry):
"""Test getting metrics for all agents."""
metrics = registry.get_metrics_all()
assert isinstance(metrics, dict)
assert all("status" in m for m in metrics.values())