"""GraphitiClient 搜索关系 dict 转换测试."""
import pytest
from unittest.mock import Mock, MagicMock
from src.graphiti_client import GraphitiClient
from src.config_manager import ConfigManager
class TestGraphitiClientSearchRelationshipsDict:
"""GraphitiClient 搜索关系 dict 转换测试类."""
@pytest.fixture
def config_manager(self, temp_config_dir):
"""创建配置管理器."""
return ConfigManager(config_path=temp_config_dir / ".graphitiace" / "config.json")
@pytest.fixture
def mock_client(self, config_manager):
"""创建 Mock 客户端."""
client = GraphitiClient(config_manager)
# Mock driver 和 session
mock_driver = MagicMock()
mock_session = MagicMock()
mock_driver.session.return_value.__enter__.return_value = mock_session
client.driver = mock_driver
client._connected = True
return client, mock_session
def test_search_relationships_dict_conversion(self, mock_client):
"""测试搜索关系 dict 转换(覆盖行371)."""
client, mock_session = mock_client
mock_record = {
"from_props": {"name": "NodeA", "type": "Technology"},
"from_labels": ["Concept"],
"rel_type": "RELATES_TO",
"to_props": {"name": "NodeB", "type": "Framework"},
"to_labels": ["Concept"]
}
mock_session.run.return_value = [mock_record]
result = client.search_relationships(query="test", limit=10)
assert result is not None
assert result["success"] is True
assert result["results"][0]["relationship"] == "RELATES_TO"