fix: test

This commit is contained in:
Yeuoly 2024-04-01 17:07:09 +08:00
parent 51f225e567
commit 75e95e09d3
No known key found for this signature in database
GPG Key ID: A66E7E320FB19F61
2 changed files with 47 additions and 11 deletions

View File

@ -16,8 +16,8 @@ class ToolEntity(BaseModel):
class ToolNodeData(BaseNodeData, ToolEntity):
class ToolInput(BaseModel):
type: Literal['mixed', 'variable', 'constant']
value: Union[ToolParameterValue, list[str]]
type: Literal['mixed', 'variable', 'constant']
@validator('type', pre=True, always=True)
def check_type(cls, value, values):
@ -29,7 +29,7 @@ class ToolNodeData(BaseNodeData, ToolEntity):
raise ValueError('value must be a list')
elif typ == 'constant' and not isinstance(value, ToolParameterValue):
raise ValueError('value must be a string, int, float, or bool')
return value
return typ
"""
Tool Node Schema

View File

@ -4,7 +4,7 @@ from core.workflow.entities.variable_pool import VariablePool
from core.workflow.nodes.tool.tool_node import ToolNode
from models.workflow import WorkflowNodeExecutionStatus
def test_tool_invoke():
def test_tool_variable_invoke():
pool = VariablePool(system_variables={}, user_inputs={})
pool.append_variable(node_id='1', variable_key_list=['123', 'args1'], value='1+1')
@ -25,14 +25,50 @@ def test_tool_invoke():
'tool_name': 'eval_expression',
'tool_label': 'eval_expression',
'tool_configurations': {},
'tool_parameters': [
{
'value_type': 'variable',
'static_value': None,
'variable_value': ['1', '123', 'args1'],
'parameter_name': 'expression',
},
]
'tool_parameters': {
'expression': {
'type': 'variable',
'value': ['1', '123', 'args1'],
}
}
}
}
)
# execute node
result = node.run(pool)
assert result.status == WorkflowNodeExecutionStatus.SUCCEEDED
assert '2' in result.outputs['text']
assert result.outputs['files'] == []
def test_tool_mixed_invoke():
pool = VariablePool(system_variables={}, user_inputs={})
pool.append_variable(node_id='1', variable_key_list=['args1'], value='1+1')
node = ToolNode(
tenant_id='1',
app_id='1',
workflow_id='1',
user_id='1',
user_from=InvokeFrom.WEB_APP,
config={
'id': '1',
'data': {
'title': 'a',
'desc': 'a',
'provider_id': 'maths',
'provider_type': 'builtin',
'provider_name': 'maths',
'tool_name': 'eval_expression',
'tool_label': 'eval_expression',
'tool_configurations': {},
'tool_parameters': {
'expression': {
'type': 'mixed',
'value': '{{#1.args1#}}',
}
}
}
}
)