Complete implementation of the DCOS package including: - 40+ Python source files across agents, communication, core, learning, memory, protocols, utils - pyproject.toml build configuration - 102 unit tests across all subsystems - Fixed flake.nix (Python 3.12, proper dependencies, pyproject build) - Fixed .woodpecker.yml (correct paths, removed silent-fail flags) - Added .gitignore - Cleared stale pytest cache
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
"""
|
|
Tests for the AgentRegistry.
|
|
"""
|
|
|
|
import pytest
|
|
from dcos.core.registry import AgentRegistry, AgentRecord
|
|
|
|
|
|
class TestAgentRegistry:
|
|
def test_register_and_get(self):
|
|
registry = AgentRegistry()
|
|
record = AgentRecord(agent_id="a1", name="test-agent", role="planner")
|
|
registry.register(record)
|
|
retrieved = registry.get("a1")
|
|
assert retrieved is not None
|
|
assert retrieved.name == "test-agent"
|
|
|
|
def test_unregister(self):
|
|
registry = AgentRegistry()
|
|
record = AgentRecord(agent_id="a2", name="removable", role="researcher")
|
|
registry.register(record)
|
|
removed = registry.unregister("a2")
|
|
assert removed is not None
|
|
assert registry.get("a2") is None
|
|
|
|
def test_find_by_role(self):
|
|
registry = AgentRegistry()
|
|
registry.register(AgentRecord(agent_id="a1", name="planner-1", role="planner"))
|
|
registry.register(AgentRecord(agent_id="a2", name="planner-2", role="planner"))
|
|
registry.register(AgentRecord(agent_id="a3", name="researcher", role="researcher"))
|
|
planners = registry.find_by_role("planner")
|
|
assert len(planners) == 2
|
|
|
|
def test_find_by_capability(self):
|
|
registry = AgentRegistry()
|
|
registry.register(AgentRecord(agent_id="a1", name="capable", role="planner", capabilities=["ml", "nlp"]))
|
|
registry.register(AgentRecord(agent_id="a2", name="other", role="researcher", capabilities=["search"]))
|
|
ml_agents = registry.find_by_capability("ml")
|
|
assert len(ml_agents) == 1
|
|
assert ml_agents[0].agent_id == "a1"
|
|
|
|
def test_count(self):
|
|
registry = AgentRegistry()
|
|
assert registry.count() == 0
|
|
registry.register(AgentRecord(agent_id="a1", name="only", role="planner"))
|
|
assert registry.count() == 1
|