""" Memori 管理器测试 """ import pytest from agent.memori_manager import MemoriManager, get_memori_manager class TestMemoriManager: """测试 MemoriManager 类""" def test_singleton(self): """测试全局单例模式""" manager1 = get_memori_manager() manager2 = get_memori_manager() assert manager1 is manager2 def test_initialization_state(self): """测试初始状态""" manager = MemoriManager() assert manager._initialized is False assert manager._instances == {} assert manager._sync_engines == {} def test_clear_cache_all(self): """测试清除所有缓存""" manager = MemoriManager() manager._instances["key1"] = "value1" manager._instances["key2"] = "value2" manager.clear_cache() assert manager._instances == {} def test_clear_cache_selective(self): """测试选择性清除缓存""" manager = MemoriManager() manager._instances["user1:bot1"] = "value1" manager._instances["user1:bot2"] = "value2" manager._instances["user2:bot1"] = "value3" # 只清除 user1 的缓存 manager.clear_cache(entity_id="user1") assert "user1:bot1" not in manager._instances assert "user1:bot2" not in manager._instances assert "user2:bot1" in manager._instances # 只清除 bot1 的缓存 manager.clear_cache(process_id="bot1") assert "user2:bot1" not in manager._instances def test_missing_db_url_and_pool(self): """测试没有提供 db_url 和 pool 的情况""" import pytest config = { "entity_id": "user_123", "process_id": "bot_456", "session_id": "session_789", } # 需要 mock _create_memori_instance 或提供 db_url # 这里只测试初始化逻辑 manager = MemoriManager() assert manager._db_url is None assert manager._db_pool is None