summaryrefslogtreecommitdiff
path: root/tests/test_memory_store.py
diff options
context:
space:
mode:
authorbatsumaru <>2026-09-16 17:33:42 +0900
committerbatsumaru <>2026-09-16 17:33:42 +0900
commit71879695b951dd30bbd6cbd25261e22ac7f8e5d1 (patch)
tree62f30ca6d9be8ed89a796bd0ab91826cd32d9cce /tests/test_memory_store.py
parentd164005eb54dfc97a5827524948e804a37779f7c (diff)
Added more memory management and fixed system prompt bug
Diffstat (limited to 'tests/test_memory_store.py')
-rw-r--r--tests/test_memory_store.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/test_memory_store.py b/tests/test_memory_store.py
index 8f3407d..b83d217 100644
--- a/tests/test_memory_store.py
+++ b/tests/test_memory_store.py
@@ -211,3 +211,62 @@ def test_search_respects_limit(tmp_path):
store.add(memory)
assert store.search("programming", limit=2) == memories[:2]
+
+
+def test_search_uses_fts(tmp_path):
+ database = Database(tmp_path / "agent.db")
+ database.migrate()
+ store = LongTermMemoryStore(database)
+
+ memory = LongTermMemory.create(
+ "User prefers Rust for systems programming.",
+ MemoryCategory.SEMANTIC,
+ )
+ store.add(memory)
+
+ results = store.search("preferred systems programming language")
+
+ assert [result.id for result in results] == [memory.id]
+
+
+def test_delete_removes_memory_from_search(tmp_path):
+ database = Database(tmp_path / "agent.db")
+ database.migrate()
+ store = LongTermMemoryStore(database)
+
+ memory = LongTermMemory.create(
+ "User prefers Rust for systems programming.",
+ MemoryCategory.SEMANTIC,
+ )
+ store.add(memory)
+
+ assert store.search("Rust")
+
+ store.delete(memory.id)
+
+ assert store.search("Rust") == []
+
+
+def test_search_filters_by_category(tmp_path):
+ database = Database(tmp_path / "agent.db")
+ database.migrate()
+ store = LongTermMemoryStore(database)
+
+ semantic = LongTermMemory.create(
+ "User prefers Rust.",
+ MemoryCategory.SEMANTIC,
+ )
+ episodic = LongTermMemory.create(
+ "User used Rust on a filesystem project.",
+ MemoryCategory.EPISODIC,
+ )
+
+ store.add(semantic)
+ store.add(episodic)
+
+ results = store.search(
+ "Rust",
+ category=MemoryCategory.EPISODIC,
+ )
+
+ assert [result.id for result in results] == [episodic.id]