Skip to content

Commit a054898

Browse files
committed
tests: add tests for tree memory add
1 parent 52ab14b commit a054898

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

src/memos/memories/textual/tree_text_memory/organize/manager.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,9 @@ def _merge(self, source_node: TextualMemoryItem, similar_nodes: list[dict]) -> s
212212
merged_background = f"{original_meta.background}\n⟵MERGED⟶\n{source_meta.background}"
213213
merged_embedding = self.embedder.embed([merged_text])[0]
214214

215-
merged_confidence = float((original_meta.confidence + source_meta.confidence) / 2)
215+
original_conf = original_meta.confidence or 0.0
216+
source_conf = source_meta.confidence or 0.0
217+
merged_confidence = float((original_conf + source_conf) / 2)
216218
merged_usage = list(set((original_meta.usage or []) + (source_meta.usage or [])))
217219

218220
# Create new merged node

tests/memories/textual/test_tree.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,27 @@ def test_drop_creates_backup_and_cleans(mock_tree_text_memory):
138138
mock_tree_text_memory.dump.assert_called_once()
139139
mock_tree_text_memory._cleanup_old_backups.assert_called_once()
140140
mock_tree_text_memory.graph_store.drop_database.assert_called_once()
141+
142+
143+
def test_add_returns_ids(mock_tree_text_memory):
144+
# Mock the memory_manager.add to return specific IDs
145+
dummy_ids = ["id1", "id2"]
146+
mock_tree_text_memory.memory_manager.add = MagicMock(return_value=dummy_ids)
147+
148+
mock_items = [
149+
TextualMemoryItem(
150+
id="id1",
151+
memory="Memory 1",
152+
metadata=TreeNodeTextualMemoryMetadata(updated_at=None),
153+
),
154+
TextualMemoryItem(
155+
id="id2",
156+
memory="Memory 2",
157+
metadata=TreeNodeTextualMemoryMetadata(updated_at=None),
158+
),
159+
]
160+
161+
result = mock_tree_text_memory.add(mock_items)
162+
163+
assert result == dummy_ids
164+
mock_tree_text_memory.memory_manager.add.assert_called_once_with(mock_items)

tests/memories/textual/test_tree_manager.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,14 @@ def test_ensure_structure_path_reuses_existing(memory_manager, mock_graph_store)
145145
meta = TreeNodeTextualMemoryMetadata(key="hobby")
146146
node_id = memory_manager._ensure_structure_path("UserMemory", meta)
147147
assert node_id == "existing_node_id"
148+
149+
150+
def test_add_returns_written_node_ids(memory_manager):
151+
memory = TextualMemoryItem(
152+
memory="test memory",
153+
metadata=TreeNodeTextualMemoryMetadata(embedding=[0.1] * 5, memory_type="UserMemory"),
154+
)
155+
ids = memory_manager.add([memory])
156+
assert isinstance(ids, list)
157+
assert all(isinstance(i, str) for i in ids)
158+
assert len(ids) > 0

0 commit comments

Comments
 (0)