Spaces:
Sleeping
Sleeping
| import json | |
| import os | |
| import pytest | |
| from dotenv import load_dotenv | |
| from swarm_models import OpenAIChat | |
| from swarms.structs import BaseWorkflow | |
| load_dotenv() | |
| api_key = os.environ.get("OPENAI_API_KEY") | |
| def setup_workflow(): | |
| llm = OpenAIChat(openai_api_key=api_key) | |
| workflow = BaseWorkflow(max_loops=1) | |
| workflow.add("What's the weather in miami", llm) | |
| workflow.add("Create a report on these metrics", llm) | |
| workflow.save_workflow_state("workflow_state.json") | |
| return workflow | |
| def teardown_workflow(): | |
| os.remove("workflow_state.json") | |
| def test_load_workflow_state(): | |
| workflow = setup_workflow() | |
| workflow.load_workflow_state("workflow_state.json") | |
| assert workflow.max_loops == 1 | |
| assert len(workflow.tasks) == 2 | |
| assert ( | |
| workflow.tasks[0].description == "What's the weather in miami" | |
| ) | |
| assert ( | |
| workflow.tasks[1].description | |
| == "Create a report on these metrics" | |
| ) | |
| teardown_workflow() | |
| def test_load_workflow_state_with_missing_file(): | |
| workflow = setup_workflow() | |
| with pytest.raises(FileNotFoundError): | |
| workflow.load_workflow_state("non_existent_file.json") | |
| teardown_workflow() | |
| def test_load_workflow_state_with_invalid_file(): | |
| workflow = setup_workflow() | |
| with open("invalid_file.json", "w") as f: | |
| f.write("This is not valid JSON") | |
| with pytest.raises(json.JSONDecodeError): | |
| workflow.load_workflow_state("invalid_file.json") | |
| os.remove("invalid_file.json") | |
| teardown_workflow() | |
| def test_load_workflow_state_with_missing_keys(): | |
| workflow = setup_workflow() | |
| with open("missing_keys.json", "w") as f: | |
| json.dump({"max_loops": 1}, f) | |
| with pytest.raises(KeyError): | |
| workflow.load_workflow_state("missing_keys.json") | |
| os.remove("missing_keys.json") | |
| teardown_workflow() | |