aboutsummaryrefslogtreecommitdiff
path: root/autogpts/forge/forge/sdk/workspace_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'autogpts/forge/forge/sdk/workspace_test.py')
-rw-r--r--autogpts/forge/forge/sdk/workspace_test.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/autogpts/forge/forge/sdk/workspace_test.py b/autogpts/forge/forge/sdk/workspace_test.py
new file mode 100644
index 000000000..f259c86b0
--- /dev/null
+++ b/autogpts/forge/forge/sdk/workspace_test.py
@@ -0,0 +1,47 @@
+import os
+
+import pytest
+
+# Assuming the classes are defined in a file named workspace.py
+from .workspace import LocalWorkspace
+
+# Constants
+TEST_BASE_PATH = "/tmp/test_workspace"
+TEST_FILE_CONTENT = b"Hello World"
+TEST_TASK_ID = "1234"
+
+
+# Setup and Teardown for LocalWorkspace
+
+
+@pytest.fixture
+def setup_local_workspace():
+ os.makedirs(TEST_BASE_PATH, exist_ok=True)
+ yield
+ os.system(f"rm -rf {TEST_BASE_PATH}") # Cleanup after tests
+
+
+def test_local_read_write_delete_exists(setup_local_workspace):
+ workspace = LocalWorkspace(TEST_BASE_PATH)
+
+ # Write
+ workspace.write(TEST_TASK_ID, "test_file.txt", TEST_FILE_CONTENT)
+
+ # Exists
+ assert workspace.exists(TEST_TASK_ID, "test_file.txt")
+
+ # Read
+ assert workspace.read(TEST_TASK_ID, "test_file.txt") == TEST_FILE_CONTENT
+
+ # Delete
+ workspace.delete(TEST_TASK_ID, "test_file.txt")
+ assert not workspace.exists(TEST_TASK_ID, "test_file.txt")
+
+
+def test_local_list(setup_local_workspace):
+ workspace = LocalWorkspace(TEST_BASE_PATH)
+ workspace.write(TEST_TASK_ID, "test1.txt", TEST_FILE_CONTENT)
+ workspace.write(TEST_TASK_ID, "test2.txt", TEST_FILE_CONTENT)
+
+ files = workspace.list(TEST_TASK_ID, ".")
+ assert set(files) == {"test1.txt", "test2.txt"}