aegis / tests /unit /test_registry.py
jayc1978's picture
Upload initial Aegis project
8a87cbb verified
Raw History Blame Contribute Delete
1.37 kB
import pytest
from aegis.core import Agent, AgentContext, AgentResult
from aegis.core.registry import (
AgentNotFoundError,
AgentRegistry,
DuplicateAgentError,
)
class StubAgent(Agent):
def __init__(self, name: str) -> None:
self.name = name
async def run(self, context: AgentContext) -> AgentResult:
return AgentResult(
agent_name=self.name,
success=True,
output={"task": context.task.name},
)
def test_registry_registers_and_resolves_agent() -> None:
agent = StubAgent("planner")
registry = AgentRegistry()
registry.register(agent)
assert registry.get("planner") is agent
assert registry.contains("planner") is True
assert len(registry) == 1
def test_registry_rejects_duplicate_agent_names() -> None:
registry = AgentRegistry([StubAgent("planner")])
with pytest.raises(DuplicateAgentError):
registry.register(StubAgent("planner"))
def test_registry_raises_when_agent_is_missing() -> None:
registry = AgentRegistry()
with pytest.raises(AgentNotFoundError):
registry.get("missing")
def test_registry_returns_sorted_names() -> None:
registry = AgentRegistry(
[
StubAgent("research"),
StubAgent("planner"),
]
)
assert registry.names() == ("planner", "research")