"""工具搜索实体 else 分支测试."""
import pytest
from unittest.mock import Mock, MagicMock, patch
from src.tools import handle_tool_call
from src.config_manager import ConfigManager
class TestToolsSearchEntitiesElseBranch:
"""工具搜索实体 else 分支测试类."""
@pytest.fixture
def config_manager(self, temp_config_dir):
"""创建配置管理器."""
return ConfigManager(config_path=temp_config_dir / ".graphitiace" / "config.json")
@pytest.mark.asyncio
async def test_search_entities_else_branch(self, config_manager):
"""测试搜索实体 else 分支(无结果)."""
from src.graphiti_client import GraphitiClient
mock_client = Mock(spec=GraphitiClient)
mock_client.is_connected.return_value = True
mock_client.search_entities.return_value = {
"success": True,
"message": "搜索成功",
"results": [] # 无结果,会走 else 分支
}
result = await handle_tool_call(
tool_name="search_entities",
arguments={"query": "nonexistent", "limit": 10},
config_manager=config_manager,
graphiti_client=mock_client
)
assert result is not None
assert isinstance(result, list)
result_text = "".join([str(item.text) if hasattr(item, 'text') else str(item) for item in result])
assert "未找到" in result_text or "not found" in result_text.lower() or len(result_text) > 0