from pr.agents.agent_communication import (
AgentCommunicationBus,
AgentMessage,
MessageType,
)
from pr.agents.agent_manager import AgentInstance, AgentManager
from pr.agents.agent_roles import AgentRole, get_agent_role, list_agent_roles
def test_get_agent_role():
role = get_agent_role("coding")
assert isinstance(role, AgentRole)
assert role.name == "coding"
def test_list_agent_roles():
roles = list_agent_roles()
assert isinstance(roles, dict)
assert len(roles) > 0
assert "coding" in roles
def test_agent_role():
role = AgentRole(
name="test",
description="test",
system_prompt="test",
allowed_tools=set(),
specialization_areas=[],
)
assert role.name == "test"
def test_agent_instance():
role = get_agent_role("coding")
instance = AgentInstance(agent_id="test", role=role)
assert instance.agent_id == "test"
assert instance.role == role
def test_agent_manager_init():
mgr = AgentManager(":memory:", None)
assert mgr is not None
def test_agent_manager_create_agent():
mgr = AgentManager(":memory:", None)
agent = mgr.create_agent("coding", "test_agent")
assert agent is not None
def test_agent_manager_get_agent():
mgr = AgentManager(":memory:", None)
mgr.create_agent("coding", "test_agent")
agent = mgr.get_agent("test_agent")
assert isinstance(agent, AgentInstance)
def test_agent_manager_remove_agent():
mgr = AgentManager(":memory:", None)
mgr.create_agent("coding", "test_agent")
mgr.remove_agent("test_agent")
agent = mgr.get_agent("test_agent")
assert agent is None
def test_agent_manager_send_agent_message():
mgr = AgentManager(":memory:", None)
mgr.create_agent("coding", "a")
mgr.create_agent("coding", "b")
mgr.send_agent_message("a", "b", "test")
assert True
def test_agent_manager_get_agent_messages():
mgr = AgentManager(":memory:", None)
mgr.create_agent("coding", "test")
messages = mgr.get_agent_messages("test")
assert isinstance(messages, list)
def test_agent_manager_get_session_summary():
mgr = AgentManager(":memory:", None)
summary = mgr.get_session_summary()
assert isinstance(summary, dict)
assert "session_id" in summary
assert "active_agents" in summary
assert "agents" in summary
def test_agent_manager_collaborate_agents():
mgr = AgentManager(":memory:", None)
result = mgr.collaborate_agents("orchestrator", "task", ["coding", "research"])
assert result is not None
def test_agent_manager_execute_agent_task():
mgr = AgentManager(":memory:", None)
mgr.create_agent("coding", "test")
result = mgr.execute_agent_task("test", "task")
assert result is not None
def test_agent_manager_clear_session():
mgr = AgentManager(":memory:", None)
mgr.clear_session()
assert True
def test_agent_message():
msg = AgentMessage(
from_agent="a",
to_agent="b",
message_type=MessageType.REQUEST,
content="test",
metadata={},
timestamp=1.0,
message_id="id",
)
assert msg.from_agent == "a"
def test_agent_message_to_dict():
msg = AgentMessage(
from_agent="a",
to_agent="b",
message_type=MessageType.REQUEST,
content="test",
metadata={},
timestamp=1.0,
message_id="id",
)
d = msg.to_dict()
assert isinstance(d, dict)
def test_agent_message_from_dict():
d = {
"from_agent": "a",
"to_agent": "b",
"message_type": "request",
"content": "test",
"metadata": {},
"timestamp": 1.0,
"message_id": "id",
}
msg = AgentMessage.from_dict(d)
assert isinstance(msg, AgentMessage)
def test_agent_communication_bus_init():
bus = AgentCommunicationBus(":memory:")
assert bus is not None
def test_agent_communication_bus_send_message():
bus = AgentCommunicationBus(":memory:")
msg = AgentMessage(
from_agent="a",
to_agent="b",
message_type=MessageType.REQUEST,
content="test",
metadata={},
timestamp=1.0,
message_id="id",
)
bus.send_message(msg)
assert True
def test_agent_communication_bus_receive_messages():
bus = AgentCommunicationBus(":memory:")
msg = AgentMessage(
from_agent="a",
to_agent="b",
message_type=MessageType.REQUEST,
content="test",
metadata={},
timestamp=1.0,
message_id="id",
)
bus.send_message(msg)
messages = bus.receive_messages("b")
assert len(messages) == 1
def test_agent_communication_bus_get_conversation_history():
bus = AgentCommunicationBus(":memory:")
msg = AgentMessage(
from_agent="a",
to_agent="b",
message_type=MessageType.REQUEST,
content="test",
metadata={},
timestamp=1.0,
message_id="id",
)
bus.send_message(msg)
history = bus.get_conversation_history("a", "b")
assert len(history) == 1
def test_agent_communication_bus_mark_as_read():
bus = AgentCommunicationBus(":memory:")
msg = AgentMessage(
from_agent="a",
to_agent="b",
message_type=MessageType.REQUEST,
content="test",
metadata={},
timestamp=1.0,
message_id="id",
)
bus.send_message(msg)
bus.mark_as_read(msg.message_id)
assert True