aboutsummaryrefslogtreecommitdiff
path: root/tests/integration/memory/test_json_file_memory.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/memory/test_json_file_memory.py')
-rw-r--r--tests/integration/memory/test_json_file_memory.py126
1 files changed, 0 insertions, 126 deletions
diff --git a/tests/integration/memory/test_json_file_memory.py b/tests/integration/memory/test_json_file_memory.py
deleted file mode 100644
index 38cd26c89..000000000
--- a/tests/integration/memory/test_json_file_memory.py
+++ /dev/null
@@ -1,126 +0,0 @@
-# sourcery skip: snake-case-functions
-"""Tests for JSONFileMemory class"""
-import orjson
-import pytest
-
-from autogpt.config import Config
-from autogpt.memory.vector import JSONFileMemory, MemoryItem
-from autogpt.workspace import Workspace
-
-
-def test_json_memory_init_without_backing_file(config: Config, workspace: Workspace):
- index_file = workspace.root / f"{config.memory_index}.json"
-
- assert not index_file.exists()
- JSONFileMemory(config)
- assert index_file.exists()
- assert index_file.read_text() == "[]"
-
-
-def test_json_memory_init_with_backing_empty_file(config: Config, workspace: Workspace):
- index_file = workspace.root / f"{config.memory_index}.json"
- index_file.touch()
-
- assert index_file.exists()
- JSONFileMemory(config)
- assert index_file.exists()
- assert index_file.read_text() == "[]"
-
-
-def test_json_memory_init_with_backing_invalid_file(
- config: Config, workspace: Workspace
-):
- index_file = workspace.root / f"{config.memory_index}.json"
- index_file.touch()
-
- raw_data = {"texts": ["test"]}
- data = orjson.dumps(raw_data, option=JSONFileMemory.SAVE_OPTIONS)
- with index_file.open("wb") as f:
- f.write(data)
-
- assert index_file.exists()
- JSONFileMemory(config)
- assert index_file.exists()
- assert index_file.read_text() == "[]"
-
-
-def test_json_memory_add(config: Config, memory_item: MemoryItem):
- index = JSONFileMemory(config)
- index.add(memory_item)
- assert index.memories[0] == memory_item
-
-
-def test_json_memory_clear(config: Config, memory_item: MemoryItem):
- index = JSONFileMemory(config)
- assert index.memories == []
-
- index.add(memory_item)
- assert index.memories[0] == memory_item, "Cannot test clear() because add() fails"
-
- index.clear()
- assert index.memories == []
-
-
-def test_json_memory_get(config: Config, memory_item: MemoryItem, mock_get_embedding):
- index = JSONFileMemory(config)
- assert (
- index.get("test", config) == None
- ), "Cannot test get() because initial index is not empty"
-
- index.add(memory_item)
- retrieved = index.get("test", config)
- assert retrieved is not None
- assert retrieved.memory_item == memory_item
-
-
-def test_json_memory_load_index(config: Config, memory_item: MemoryItem):
- index = JSONFileMemory(config)
- index.add(memory_item)
-
- try:
- assert index.file_path.exists(), "index was not saved to file"
- assert len(index) == 1, f"index constains {len(index)} items instead of 1"
- assert index.memories[0] == memory_item, "item in index != added mock item"
- except AssertionError as e:
- raise ValueError(f"Setting up for load_index test failed: {e}")
-
- index.memories = []
- index.load_index()
-
- assert len(index) == 1
- assert index.memories[0] == memory_item
-
-
-@pytest.mark.vcr
-@pytest.mark.requires_openai_api_key
-def test_json_memory_get_relevant(config: Config, patched_api_requestor: None) -> None:
- index = JSONFileMemory(config)
- mem1 = MemoryItem.from_text_file("Sample text", "sample.txt", config)
- mem2 = MemoryItem.from_text_file(
- "Grocery list:\n- Pancake mix", "groceries.txt", config
- )
- mem3 = MemoryItem.from_text_file(
- "What is your favorite color?", "color.txt", config
- )
- lipsum = "Lorem ipsum dolor sit amet"
- mem4 = MemoryItem.from_text_file(" ".join([lipsum] * 100), "lipsum.txt", config)
- index.add(mem1)
- index.add(mem2)
- index.add(mem3)
- index.add(mem4)
-
- assert index.get_relevant(mem1.raw_content, 1, config)[0].memory_item == mem1
- assert index.get_relevant(mem2.raw_content, 1, config)[0].memory_item == mem2
- assert index.get_relevant(mem3.raw_content, 1, config)[0].memory_item == mem3
- assert [mr.memory_item for mr in index.get_relevant(lipsum, 2, config)] == [
- mem4,
- mem1,
- ]
-
-
-def test_json_memory_get_stats(config: Config, memory_item: MemoryItem) -> None:
- index = JSONFileMemory(config)
- index.add(memory_item)
- n_memories, n_chunks = index.get_stats()
- assert n_memories == 1
- assert n_chunks == 1