mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
Python: Move Workflow, Edge, EdgeGroup and Executor to AFBaseModel (#472)
* Refactor workflow to introduce EdgeRunner for edge execution. * Fix edge cases * Convert Workflow, Edge, EdgeGroup, and Executor into AFBaseModel to support object model serialization * format * remove accidental file * fix typing * Add type information to EdgeGroup and Executor subclasses * fix format * Add condition_name field to Edge * Add new fields * remove Optional * Update
This commit is contained in:
committed by
GitHub
Unverified
parent
88c51013c6
commit
6e9d35830f
@@ -161,12 +161,14 @@ def test_graph_connectivity_isolated_executors():
|
||||
|
||||
# Create edges that include an isolated executor (self-loop that's not connected to main graph)
|
||||
edge_groups = [
|
||||
SingleEdgeGroup(executor1, executor2),
|
||||
SingleEdgeGroup(executor3, executor3),
|
||||
SingleEdgeGroup(executor1.id, executor2.id),
|
||||
SingleEdgeGroup(executor3.id, executor3.id),
|
||||
] # Self-loop to include in graph
|
||||
|
||||
executors: dict[str, Executor] = {executor1.id: executor1, executor2.id: executor2, executor3.id: executor3}
|
||||
|
||||
with pytest.raises(GraphConnectivityError) as exc_info:
|
||||
validate_workflow_graph(edge_groups, executor1)
|
||||
validate_workflow_graph(edge_groups, executors, executor1)
|
||||
|
||||
assert "unreachable" in str(exc_info.value).lower()
|
||||
assert "executor3" in str(exc_info.value)
|
||||
@@ -243,15 +245,16 @@ def test_type_compatibility_inheritance():
|
||||
def test_direct_validation_function():
|
||||
executor1 = StringExecutor(id="executor1")
|
||||
executor2 = StringExecutor(id="executor2")
|
||||
edge_groups = [SingleEdgeGroup(executor1, executor2)]
|
||||
edge_groups = [SingleEdgeGroup(executor1.id, executor2.id)]
|
||||
executors: dict[str, Executor] = {executor1.id: executor1, executor2.id: executor2}
|
||||
|
||||
# This should not raise any exceptions
|
||||
validate_workflow_graph(edge_groups, executor1)
|
||||
validate_workflow_graph(edge_groups, executors, executor1)
|
||||
|
||||
# Test with invalid start executor
|
||||
executor3 = StringExecutor(id="executor3")
|
||||
with pytest.raises(GraphConnectivityError):
|
||||
validate_workflow_graph(edge_groups, executor3)
|
||||
validate_workflow_graph(edge_groups, executors, executor3)
|
||||
|
||||
|
||||
def test_fan_out_validation():
|
||||
|
||||
Reference in New Issue
Block a user