You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
swarms/tests/structs/test_tests_graph_workflow.py

73 lines
2.2 KiB

import pytest
11 months ago
from swarms.structs.graph_workflow import GraphWorkflow
@pytest.fixture
def graph_workflow():
return GraphWorkflow()
def test_init(graph_workflow):
assert graph_workflow.graph == {}
assert graph_workflow.entry_point is None
def test_add(graph_workflow):
graph_workflow.add("node1", "value1")
assert "node1" in graph_workflow.graph
assert graph_workflow.graph["node1"]["value"] == "value1"
assert graph_workflow.graph["node1"]["edges"] == {}
def test_set_entry_point(graph_workflow):
graph_workflow.add("node1", "value1")
graph_workflow.set_entry_point("node1")
assert graph_workflow.entry_point == "node1"
def test_set_entry_point_nonexistent_node(graph_workflow):
9 months ago
with pytest.raises(ValueError, match="Node does not exist in graph"):
graph_workflow.set_entry_point("nonexistent")
def test_add_edge(graph_workflow):
graph_workflow.add("node1", "value1")
graph_workflow.add("node2", "value2")
graph_workflow.add_edge("node1", "node2")
assert "node2" in graph_workflow.graph["node1"]["edges"]
def test_add_edge_nonexistent_node(graph_workflow):
graph_workflow.add("node1", "value1")
9 months ago
with pytest.raises(ValueError, match="Node does not exist in graph"):
graph_workflow.add_edge("node1", "nonexistent")
def test_add_conditional_edges(graph_workflow):
graph_workflow.add("node1", "value1")
graph_workflow.add("node2", "value2")
graph_workflow.add_conditional_edges(
"node1", "condition1", {"condition_value1": "node2"}
)
assert "node2" in graph_workflow.graph["node1"]["edges"]
def test_add_conditional_edges_nonexistent_node(graph_workflow):
graph_workflow.add("node1", "value1")
9 months ago
with pytest.raises(ValueError, match="Node does not exist in graph"):
graph_workflow.add_conditional_edges(
"node1", "condition1", {"condition_value1": "nonexistent"}
)
def test_run(graph_workflow):
graph_workflow.add("node1", "value1")
graph_workflow.set_entry_point("node1")
assert graph_workflow.run() == graph_workflow.graph
def test_run_no_entry_point(graph_workflow):
with pytest.raises(ValueError, match="Entry point not set"):
graph_workflow.run()