214 lines
5.2 KiB
Python
Raw Normal View History

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