Aethero_github / Aethero_App /tests /test_langgraph_visualization.py
xvadur's picture
Add complete Aethero_App and aethero_protocol directories
46f737d
"""
Tests for LangGraph Visualization Module
"""
import pytest
from aetheros_protocol.visualization.langgraph_config import AetheroGraphVisualizer, AgentState
@pytest.fixture
def sample_config():
return {
"agents": [
{"agent_id": "planner_agent_001", "description_asl": {"purpose": "planning"}},
{"agent_id": "scout_agent_001", "description_asl": {"purpose": "discovery"}},
]
}
def test_initialize_graph(sample_config):
visualizer = AetheroGraphVisualizer(sample_config)
visualizer.initialize_graph()
assert len(visualizer.graph.nodes) == 2
assert "planner_agent_001" in visualizer.graph.nodes
assert "scout_agent_001" in visualizer.graph.nodes
def test_add_agent_node(sample_config):
visualizer = AetheroGraphVisualizer(sample_config)
visualizer.add_agent_node("analyst_agent_001", {"purpose": "analysis"})
assert "analyst_agent_001" in visualizer.graph.nodes
def test_update_agent_state(sample_config):
visualizer = AetheroGraphVisualizer(sample_config)
visualizer.initialize_graph()
visualizer.update_agent_state("planner_agent_001", AgentState.PROCESSING)
node_state = visualizer.graph.nodes["planner_agent_001"]["state"]
assert node_state == AgentState.PROCESSING.value
def test_add_transition(sample_config):
visualizer = AetheroGraphVisualizer(sample_config)
visualizer.initialize_graph()
visualizer.add_transition(
"planner_agent_001",
"scout_agent_001",
{"stage": "planning_to_discovery"}
)
assert visualizer.graph.has_edge("planner_agent_001", "scout_agent_001")
def test_generate_mermaid_diagram(sample_config):
visualizer = AetheroGraphVisualizer(sample_config)
visualizer.initialize_graph()
visualizer.add_transition(
"planner_agent_001",
"scout_agent_001",
{"stage": "planning_to_discovery"}
)
diagram = visualizer.generate_mermaid_diagram()
assert "graph TD" in diagram
assert "planner_agent_001" in diagram
assert "scout_agent_001" in diagram
def test_export_graph_data(sample_config):
visualizer = AetheroGraphVisualizer(sample_config)
visualizer.initialize_graph()
visualizer.add_transition(
"planner_agent_001",
"scout_agent_001",
{"stage": "planning_to_discovery"}
)
data = visualizer.export_graph_data()
assert "nodes" in data
assert "edges" in data
assert any(node["id"] == "planner_agent_001" for node in data["nodes"])
assert any(edge["source"] == "planner_agent_001" for edge in data["edges"])
if __name__ == "__main__":
pytest.main(["-v", __file__])