127 lines
4.7 KiB
Python
Raw Normal View History

2025-11-04 05:17:27 +01:00
import pytest
import time
from pr.agents.agent_roles import AgentRole, get_agent_role, list_agent_roles
from pr.agents.agent_manager import AgentManager, AgentInstance
from pr.agents.agent_communication import AgentCommunicationBus, AgentMessage, MessageType
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, str)
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