"""GraphitiClient 导入异常测试."""
import pytest
from unittest.mock import Mock, MagicMock
from src.graphiti_client import GraphitiClient
from src.config_manager import ConfigManager
class TestGraphitiClientImportException:
"""GraphitiClient 导入异常测试类."""
@pytest.fixture
def config_manager(self, temp_config_dir):
"""创建配置管理器."""
return ConfigManager(config_path=temp_config_dir / "config.json")
@pytest.fixture
def mock_client(self, config_manager):
"""创建 Mock 客户端."""
client = GraphitiClient(config_manager)
# Mock driver 和 session
mock_driver = Mock()
mock_session = Mock()
mock_driver.session.return_value.__enter__ = Mock(return_value=mock_session)
mock_driver.session.return_value.__exit__ = Mock(return_value=None)
client.driver = mock_driver
client._connected = True
return client, mock_session
def test_import_graph_data_exception(self, mock_client):
"""测试导入图谱数据时发生异常."""
client, mock_session = mock_client
# Mock session.run 在导入节点时抛出异常
def run_side_effect(*args, **kwargs):
# 第一次调用(导入节点)抛出异常
if len([c for c in mock_session.run.call_args_list if c]) == 0:
raise Exception("Import error")
return Mock()
mock_session.run.side_effect = Exception("Import error")
result = client.import_graph_data(
data={"nodes": [{"name": "test"}], "relationships": []},
format="json"
)
assert result is not None
assert result['success'] is False
assert "导入失败" in result['message']