from unittest.mock import patch, MagicMock from swarms.structs.workflow import Workflow def test_workflow_initialization(): agent = MagicMock() workflow = Workflow(agent) assert isinstance(workflow, Workflow) assert workflow.agent == agent assert workflow.tasks == [] assert workflow.parallel is False def test_workflow_add(): agent = MagicMock() workflow = Workflow(agent) task = workflow.add("What's the weather in miami") assert isinstance(task, Workflow.Task) assert task.task == "What's the weather in miami" assert task.parents == [] assert task.children == [] assert task.output is None assert task.structure == workflow def test_workflow_first_task(): agent = MagicMock() workflow = Workflow(agent) assert workflow.first_task() is None workflow.add("What's the weather in miami") assert workflow.first_task().task == "What's the weather in miami" def test_workflow_last_task(): agent = MagicMock() workflow = Workflow(agent) assert workflow.last_task() is None workflow.add("What's the weather in miami") assert workflow.last_task().task == "What's the weather in miami" @patch("your_module.Workflow.__run_from_task") def test_workflow_run(mock_run_from_task): agent = MagicMock() workflow = Workflow(agent) workflow.add("What's the weather in miami") workflow.run() mock_run_from_task.assert_called_once() def test_workflow_context(): agent = MagicMock() workflow = Workflow(agent) task = workflow.add("What's the weather in miami") assert workflow.context(task) == { "parent_output": None, "parent": None, "child": None, } @patch("your_module.Workflow.Task.execute") def test_workflow___run_from_task(mock_execute): agent = MagicMock() workflow = Workflow(agent) task = workflow.add("What's the weather in miami") mock_execute.return_value = "Sunny" workflow.__run_from_task(task) mock_execute.assert_called_once()