""" Memori 配置测试 """ import pytest from agent.memori_config import MemoriConfig class TestMemoriConfig: """测试 MemoriConfig 配置类""" def test_default_values(self): """测试默认值""" config = MemoriConfig() assert config.enabled is False assert config.api_key is None assert config.semantic_search_top_k == 5 assert config.semantic_search_threshold == 0.7 assert config.inject_memory_to_system_prompt is True def test_enabled_check(self): """测试 is_enabled 方法""" config = MemoriConfig(enabled=False) assert config.is_enabled() is False config.enabled = True assert config.is_enabled() is True def test_get_attribution_tuple(self): """测试 get_attribution_tuple 方法""" config = MemoriConfig( entity_id="user_123", process_id="bot_456" ) entity_id, process_id = config.get_attribution_tuple() assert entity_id == "user_123" assert process_id == "bot_456" def test_get_attribution_tuple_missing_values(self): """测试缺少 entity_id 或 process_id 时抛出异常""" config = MemoriConfig(entity_id="user_123") with pytest.raises(ValueError, match="entity_id and process_id are required"): config.get_attribution_tuple() def test_get_memory_prompt(self): """测试 get_memory_prompt 方法""" config = MemoriConfig() memories = ["User likes coffee", "User prefers dark mode"] prompt = config.get_memory_prompt(memories) assert "相关记忆" in prompt assert "User likes coffee" in prompt assert "User prefers dark mode" in prompt def test_get_memory_prompt_empty(self): """测试空记忆列表""" config = MemoriConfig() prompt = config.get_memory_prompt([]) assert prompt == "" def test_with_session(self): """测试 with_session 方法""" config = MemoriConfig( entity_id="user_123", process_id="bot_456", session_id="session_789" ) new_config = config.with_session("new_session_999") assert new_config.session_id == "new_session_999" assert new_config.entity_id == "user_123" assert new_config.process_id == "bot_456" # 原配置不受影响 assert config.session_id == "session_789"