diff options
Diffstat (limited to 'autogpts/forge/forge/sdk/agent_test.py')
-rw-r--r-- | autogpts/forge/forge/sdk/agent_test.py | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/autogpts/forge/forge/sdk/agent_test.py b/autogpts/forge/forge/sdk/agent_test.py new file mode 100644 index 000000000..d2d23abbe --- /dev/null +++ b/autogpts/forge/forge/sdk/agent_test.py @@ -0,0 +1,107 @@ +import pytest + +from .agent import Agent +from .db import AgentDB +from .model import StepRequestBody, Task, TaskListResponse, TaskRequestBody +from .workspace import LocalWorkspace + + +@pytest.fixture +def agent(): + db = AgentDB("sqlite:///test.db") + workspace = LocalWorkspace("./test_workspace") + return Agent(db, workspace) + + +@pytest.mark.skip +@pytest.mark.asyncio +async def test_create_task(agent): + task_request = TaskRequestBody( + input="test_input", additional_input={"input": "additional_test_input"} + ) + task: Task = await agent.create_task(task_request) + assert task.input == "test_input" + + +@pytest.mark.skip +@pytest.mark.asyncio +async def test_list_tasks(agent): + task_request = TaskRequestBody( + input="test_input", additional_input={"input": "additional_test_input"} + ) + task = await agent.create_task(task_request) + tasks = await agent.list_tasks() + assert isinstance(tasks, TaskListResponse) + + +@pytest.mark.skip +@pytest.mark.asyncio +async def test_get_task(agent): + task_request = TaskRequestBody( + input="test_input", additional_input={"input": "additional_test_input"} + ) + task = await agent.create_task(task_request) + retrieved_task = await agent.get_task(task.task_id) + assert retrieved_task.task_id == task.task_id + + +@pytest.mark.skip +@pytest.mark.asyncio +async def test_create_and_execute_step(agent): + task_request = TaskRequestBody( + input="test_input", additional_input={"input": "additional_test_input"} + ) + task = await agent.create_task(task_request) + step_request = StepRequestBody( + input="step_input", additional_input={"input": "additional_test_input"} + ) + step = await agent.create_and_execute_step(task.task_id, step_request) + assert step.input == "step_input" + assert step.additional_input == {"input": "additional_test_input"} + + +@pytest.mark.skip +@pytest.mark.asyncio +async def test_get_step(agent): + task_request = TaskRequestBody( + input="test_input", additional_input={"input": "additional_test_input"} + ) + task = await agent.create_task(task_request) + step_request = StepRequestBody( + input="step_input", additional_input={"input": "additional_test_input"} + ) + step = await agent.create_and_execute_step(task.task_id, step_request) + retrieved_step = await agent.get_step(task.task_id, step.step_id) + assert retrieved_step.step_id == step.step_id + + +@pytest.mark.skip +@pytest.mark.asyncio +async def test_list_artifacts(agent): + artifacts = await agent.list_artifacts() + assert isinstance(artifacts, list) + + +@pytest.mark.skip +@pytest.mark.asyncio +async def test_create_artifact(agent): + task_request = TaskRequestBody( + input="test_input", additional_input={"input": "additional_test_input"} + ) + task = await agent.create_task(task_request) + artifact_request = ArtifactRequestBody(file=None, uri="test_uri") + artifact = await agent.create_artifact(task.task_id, artifact_request) + assert artifact.uri == "test_uri" + + +@pytest.mark.skip +@pytest.mark.asyncio +async def test_get_artifact(agent): + task_request = TaskRequestBody( + input="test_input", additional_input={"input": "additional_test_input"} + ) + task = await agent.create_task(task_request) + artifact_request = ArtifactRequestBody(file=None, uri="test_uri") + artifact = await agent.create_artifact(task.task_id, artifact_request) + retrieved_artifact = await agent.get_artifact(task.task_id, artifact.artifact_id) + assert retrieved_artifact.artifact_id == artifact.artifact_id |