Spaces:
Running
Running
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() | |