mirror of https://github.com/langgenius/dify.git
fix: update workflow service tests for new graph engine
- Update method calls from _handle_node_run_result to _handle_single_step_result - Add required fields (id, node_id, node_type, start_at) to graph events - Use proper NodeType enum values instead of strings - Fix imports to use correct modules (Node instead of BaseNode) - Ensure event generators return proper generator objects These tests were failing because the internal implementation changed with the new graph engine architecture.
This commit is contained in:
parent
04e5d4692f
commit
d8af8ae4e6
|
|
@ -1421,14 +1421,17 @@ class TestWorkflowService:
|
|||
|
||||
# Mock successful node execution
|
||||
def mock_successful_invoke():
|
||||
from core.workflow.enums import WorkflowNodeExecutionStatus
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
|
||||
from core.workflow.enums import NodeType, WorkflowNodeExecutionStatus
|
||||
from core.workflow.graph_events import NodeRunSucceededEvent
|
||||
from core.workflow.node_events import NodeRunResult
|
||||
from core.workflow.nodes.base.node import Node
|
||||
|
||||
# Create mock node
|
||||
mock_node = MagicMock(spec=Node)
|
||||
mock_node.node_type = "start" # Use valid NodeType
|
||||
mock_node.node_type = NodeType.START
|
||||
mock_node.title = "Test Node"
|
||||
mock_node.error_strategy = None
|
||||
|
||||
|
|
@ -1441,8 +1444,14 @@ class TestWorkflowService:
|
|||
metadata={"total_tokens": 100}, # Use valid metadata field
|
||||
)
|
||||
|
||||
# Create mock event
|
||||
mock_event = NodeRunSucceededEvent(node_run_result=mock_result)
|
||||
# Create mock event with all required fields
|
||||
mock_event = NodeRunSucceededEvent(
|
||||
id=str(uuid.uuid4()),
|
||||
node_id=node_id,
|
||||
node_type=NodeType.START,
|
||||
node_run_result=mock_result,
|
||||
start_at=datetime.now(),
|
||||
)
|
||||
|
||||
# Return node and generator
|
||||
def event_generator():
|
||||
|
|
@ -1460,7 +1469,9 @@ class TestWorkflowService:
|
|||
# Assert
|
||||
assert result is not None
|
||||
assert result.node_id == node_id
|
||||
assert result.node_type == "start" # Should match the mock node type
|
||||
from core.workflow.enums import NodeType
|
||||
|
||||
assert result.node_type == NodeType.START # Should match the mock node type
|
||||
assert result.title == "Test Node"
|
||||
# Import the enum for comparison
|
||||
from core.workflow.enums import WorkflowNodeExecutionStatus
|
||||
|
|
@ -1485,14 +1496,17 @@ class TestWorkflowService:
|
|||
|
||||
# Mock failed node execution
|
||||
def mock_failed_invoke():
|
||||
from core.workflow.enums import WorkflowNodeExecutionStatus
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
|
||||
from core.workflow.enums import NodeType, WorkflowNodeExecutionStatus
|
||||
from core.workflow.graph_events import NodeRunFailedEvent
|
||||
from core.workflow.node_events import NodeRunResult
|
||||
from core.workflow.nodes.base.node import Node
|
||||
|
||||
# Create mock node
|
||||
mock_node = MagicMock(spec=Node)
|
||||
mock_node.node_type = "llm" # Use valid NodeType
|
||||
mock_node.node_type = NodeType.LLM
|
||||
mock_node.title = "Test Node"
|
||||
mock_node.error_strategy = None
|
||||
|
||||
|
|
@ -1503,8 +1517,15 @@ class TestWorkflowService:
|
|||
error="Test error message",
|
||||
)
|
||||
|
||||
# Create mock event
|
||||
mock_event = NodeRunFailedEvent(node_run_result=mock_result)
|
||||
# Create mock event with all required fields
|
||||
mock_event = NodeRunFailedEvent(
|
||||
id=str(uuid.uuid4()),
|
||||
node_id=node_id,
|
||||
node_type=NodeType.LLM,
|
||||
node_run_result=mock_result,
|
||||
error="Test error message",
|
||||
start_at=datetime.now(),
|
||||
)
|
||||
|
||||
# Return node and generator
|
||||
def event_generator():
|
||||
|
|
@ -1544,14 +1565,17 @@ class TestWorkflowService:
|
|||
|
||||
# Mock node execution with continue_on_error
|
||||
def mock_continue_on_error_invoke():
|
||||
from core.workflow.enums import ErrorStrategy, WorkflowNodeExecutionStatus
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
|
||||
from core.workflow.enums import ErrorStrategy, NodeType, WorkflowNodeExecutionStatus
|
||||
from core.workflow.graph_events import NodeRunFailedEvent
|
||||
from core.workflow.node_events import NodeRunResult
|
||||
from core.workflow.nodes.base.node import Node
|
||||
|
||||
# Create mock node with continue_on_error
|
||||
mock_node = MagicMock(spec=Node)
|
||||
mock_node.node_type = "tool" # Use valid NodeType
|
||||
mock_node.node_type = NodeType.TOOL
|
||||
mock_node.title = "Test Node"
|
||||
mock_node.error_strategy = ErrorStrategy.DEFAULT_VALUE
|
||||
mock_node.default_value_dict = {"default_output": "default_value"}
|
||||
|
|
@ -1563,8 +1587,15 @@ class TestWorkflowService:
|
|||
error="Test error message",
|
||||
)
|
||||
|
||||
# Create mock event
|
||||
mock_event = NodeRunFailedEvent(node_run_result=mock_result)
|
||||
# Create mock event with all required fields
|
||||
mock_event = NodeRunFailedEvent(
|
||||
id=str(uuid.uuid4()),
|
||||
node_id=node_id,
|
||||
node_type=NodeType.TOOL,
|
||||
node_run_result=mock_result,
|
||||
error="Test error message",
|
||||
start_at=datetime.now(),
|
||||
)
|
||||
|
||||
# Return node and generator
|
||||
def event_generator():
|
||||
|
|
|
|||
Loading…
Reference in New Issue