From e4c55828087900e10dd280757838a8c2d7874536 Mon Sep 17 00:00:00 2001 From: NiLAy <134004519+NILAY1556@users.noreply.github.com> Date: Thu, 21 Aug 2025 00:11:28 +0530 Subject: [PATCH] fix-migration-collection-override (#3100) Co-authored-by: parshvadaftari --- mem0/memory/main.py | 10 ++++++---- tests/test_memory.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/mem0/memory/main.py b/mem0/memory/main.py index 52acb6ce4..35c59ab4c 100644 --- a/mem0/memory/main.py +++ b/mem0/memory/main.py @@ -146,13 +146,15 @@ class Memory(MemoryBase): self.enable_graph = True else: self.graph = None - self.config.vector_store.config.collection_name = "mem0migrations" + + telemetry_config = deepcopy(self.config.vector_store.config) + telemetry_config.collection_name = "mem0migrations" if self.config.vector_store.provider in ["faiss", "qdrant"]: provider_path = f"migrations_{self.config.vector_store.provider}" - self.config.vector_store.config.path = os.path.join(mem0_dir, provider_path) - os.makedirs(self.config.vector_store.config.path, exist_ok=True) + telemetry_config.path = os.path.join(mem0_dir, provider_path) + os.makedirs(telemetry_config.path, exist_ok=True) self._telemetry_vector_store = VectorStoreFactory.create( - self.config.vector_store.provider, self.config.vector_store.config + self.config.vector_store.provider, telemetry_config ) capture_event("mem0.init", self, {"sync_type": "sync"}) diff --git a/tests/test_memory.py b/tests/test_memory.py index 72e6a260e..afd36e0fd 100644 --- a/tests/test_memory.py +++ b/tests/test_memory.py @@ -3,6 +3,7 @@ from unittest.mock import MagicMock, patch import pytest from mem0 import Memory +from mem0.configs.base import MemoryConfig @pytest.fixture @@ -63,3 +64,34 @@ def test_list_memories(memory_client): memories = memory_client.get_all(user_id="test_user") assert data1 in memories assert data2 in memories + + +@patch('mem0.utils.factory.EmbedderFactory.create') +@patch('mem0.utils.factory.VectorStoreFactory.create') +@patch('mem0.utils.factory.LlmFactory.create') +@patch('mem0.memory.storage.SQLiteManager') +def test_collection_name_preserved_after_reset(mock_sqlite, mock_llm_factory, mock_vector_factory, mock_embedder_factory): + mock_embedder_factory.return_value = MagicMock() + mock_vector_store = MagicMock() + mock_vector_factory.return_value = mock_vector_store + mock_llm_factory.return_value = MagicMock() + mock_sqlite.return_value = MagicMock() + + test_collection_name = "mem0" + config = MemoryConfig() + config.vector_store.config.collection_name = test_collection_name + + memory = Memory(config) + + assert memory.collection_name == test_collection_name + assert memory.config.vector_store.config.collection_name == test_collection_name + + memory.reset() + + assert memory.collection_name == test_collection_name + assert memory.config.vector_store.config.collection_name == test_collection_name + + reset_calls = [call for call in mock_vector_factory.call_args_list if len(mock_vector_factory.call_args_list) > 2] + if reset_calls: + reset_config = reset_calls[-1][0][1] + assert reset_config.collection_name == test_collection_name, f"Reset used wrong collection name: {reset_config.collection_name}"