From c418c185dbc590ebc6b70fd9724d7a648ed1d7a0 Mon Sep 17 00:00:00 2001 From: Joshua Smith Date: Wed, 12 Mar 2025 09:13:47 -0400 Subject: [PATCH] added test --- tests/agent_goal_workflow_test.py | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 tests/agent_goal_workflow_test.py diff --git a/tests/agent_goal_workflow_test.py b/tests/agent_goal_workflow_test.py new file mode 100644 index 0000000..b280def --- /dev/null +++ b/tests/agent_goal_workflow_test.py @@ -0,0 +1,55 @@ +import asyncio + +from temporalio.client import Client, WorkflowExecutionStatus +from temporalio.worker import Worker +from temporalio.testing import TestWorkflowEnvironment +from api.main import get_initial_agent_goal +from models.data_types import AgentGoalWorkflowParams, CombinedInput +from workflows import AgentGoalWorkflow +from activities.tool_activities import ToolActivities, dynamic_tool_activity + + +async def asyncSetUp(self): + # Set up the test environment + self.env = await TestWorkflowEnvironment.create_local() + +async def asyncTearDown(self): + # Clean up after tests + await self.env.shutdown() + +async def test_workflow_success(client: Client): + # Register the workflow and activity + # self.env.register_workflow(AgentGoalWorkflow) + # self.env.register_activity(ToolActivities.agent_validatePrompt) + # self.env.register_activity(ToolActivities.agent_toolPlanner) + # self.env.register_activity(dynamic_tool_activity) + + task_queue_name = "agent-ai-workflow" + workflow_id = "agent-workflow" + + initial_agent_goal = get_initial_agent_goal() + + # Create combined input + combined_input = CombinedInput( + tool_params=AgentGoalWorkflowParams(None, None), + agent_goal=initial_agent_goal, + ) + + workflow_id = "agent-workflow" + async with Worker(client, task_queue=task_queue_name, workflows=[AgentGoalWorkflow], activities=[ToolActivities.agent_validatePrompt, ToolActivities.agent_toolPlanner, dynamic_tool_activity]): + handle = await client.start_workflow( + AgentGoalWorkflow.run, id=workflow_id, task_queue=task_queue_name + ) + # todo fix signals + await handle.signal(AgentGoalWorkflow.submit_greeting, "user1") + await handle.signal(AgentGoalWorkflow.submit_greeting, "user2") + assert WorkflowExecutionStatus.RUNNING == (await handle.describe()).status + + await handle.signal(AgentGoalWorkflow.exit) + assert ["Hello, user1", "Hello, user2"] == await handle.result() + assert WorkflowExecutionStatus.COMPLETED == (await handle.describe()).status + + + + + \ No newline at end of file