MCPcopy Create free account
hub / github.com/MemTensor/MemOS / setUp

Method setUp

tests/memories/textual/test_general.py:20–72  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

18
19class TestGeneralTextMemory(unittest.TestCase):
20 def setUp(self):
21 # Mock configurations for GeneralTextMemoryConfig arguments
22 self.mock_llm_config_arg = MagicMock(spec=LLMConfigFactory)
23 self.mock_llm_config_arg.backend = "ollama" # Example valid backend
24 self.mock_llm_config_arg.config = {"model_name_or_path": "test-llm"}
25 self.mock_llm_config_arg.model_schema = "memos.configs.llm.LLMConfigFactory"
26
27 self.mock_embedder_config_arg = MagicMock(spec=EmbedderConfigFactory)
28 self.mock_embedder_config_arg.backend = "ollama" # Example valid backend
29 self.mock_embedder_config_arg.config = {"model_name_or_path": "test-embedder"}
30 self.mock_embedder_config_arg.model_schema = "memos.configs.embedder.EmbedderConfigFactory"
31
32 self.mock_vector_db_config_arg = MagicMock(spec=VectorDBConfigFactory)
33 self.mock_vector_db_config_arg.backend = "qdrant" # Example valid backend
34 self.mock_vector_db_config_arg.config = {"collection_name": "test-collection-for-factory"}
35 self.mock_vector_db_config_arg.model_schema = "memos.configs.vec_db.VectorDBConfigFactory"
36
37 # This mock_qdrant_config is for the *internal* config of the QdrantVecDB mock instance.
38 # It is NOT passed directly to GeneralTextMemoryConfig.
39 self.mock_qdrant_config = MagicMock()
40 self.mock_qdrant_config.collection_name = "test_textual_memory_unittest"
41
42 # Mocks for the actual LLM, VectorDB, Embedder instances that factories will return
43 self.mock_llm = MagicMock(spec=OllamaLLM)
44 self.mock_vector_db = MagicMock(spec=QdrantVecDB)
45 # The mocked QdrantVecDB instance will have its .config attribute point to self.mock_qdrant_config
46 self.mock_vector_db.config = self.mock_qdrant_config
47 self.mock_embedder = MagicMock(spec=OllamaEmbedder)
48
49 # Patch factories used in GeneralTextMemory constructor
50 self.patcher_llm_factory = patch("memos.memories.textual.general.LLMFactory")
51 self.patcher_vecdb_factory = patch("memos.memories.textual.general.VecDBFactory")
52 self.patcher_embedder_factory = patch("memos.memories.textual.general.EmbedderFactory")
53
54 self.mock_llm_factory = self.patcher_llm_factory.start()
55 self.mock_vecdb_factory = self.patcher_vecdb_factory.start()
56 self.mock_embedder_factory = self.patcher_embedder_factory.start()
57
58 # Configure patched factories to return the above mocks
59 self.mock_llm_factory.from_config.return_value = self.mock_llm
60 self.mock_vecdb_factory.from_config.return_value = self.mock_vector_db
61 self.mock_embedder_factory.from_config.return_value = self.mock_embedder
62
63 # Instantiate GeneralTextMemoryConfig with the correctly specced *ConfigFactory mocks
64 # that now have .backend and .config attributes
65 self.config = GeneralTextMemoryConfig(
66 extractor_llm=self.mock_llm_config_arg,
67 vector_db=self.mock_vector_db_config_arg,
68 embedder=self.mock_embedder_config_arg,
69 )
70
71 # Instantiate the class under test
72 self.memory = GeneralTextMemory(self.config)
73
74 def tearDown(self):
75 self.patcher_llm_factory.stop()

Callers

nothing calls this directly

Calls 4

GeneralTextMemoryClass · 0.90
patchFunction · 0.85
startMethod · 0.65

Tested by

no test coverage detected