"""配置管理器完整测试."""
import pytest
from pathlib import Path
from src.config_manager import ConfigManager
class TestConfigManagerComplete:
"""配置管理器完整测试类."""
@pytest.fixture
def config_manager(self, temp_config_dir):
"""创建配置管理器."""
return ConfigManager(config_path=temp_config_dir / ".graphitiace" / "config.json")
def test_configure_neo4j_complete_flow(self, config_manager):
"""测试配置 Neo4j 完整流程."""
# 1. 配置 Neo4j
result = config_manager.configure_neo4j(
uri="bolt://localhost:7687",
username="neo4j",
password="test_password",
database="neo4j"
)
assert result is not None
# 2. 验证配置已保存
neo4j_config = config_manager.get_neo4j_config()
assert neo4j_config is not None
assert neo4j_config.uri == "bolt://localhost:7687"
assert neo4j_config.username == "neo4j"
def test_configure_api_complete_flow(self, config_manager):
"""测试配置 API 完整流程."""
# 1. 配置 API
result = config_manager.configure_api(
provider="openai",
api_key="test_key",
model="gpt-4"
)
assert result is not None
# 2. 验证配置已保存
api_config = config_manager.get_api_config()
assert api_config is not None
assert api_config.provider == "openai"
# 验证 API key 是否存在(通过检查 api_key 属性或配置状态)
assert api_config.api_key == "test_key" or api_config.api_key is not None
def test_get_config_status_complete(self, config_manager):
"""测试获取配置状态完整流程."""
# 配置 Neo4j 和 API
config_manager.configure_neo4j(
uri="bolt://localhost:7687",
username="neo4j",
password="test"
)
config_manager.configure_api(
provider="openai",
api_key="test_key"
)
# 获取配置状态
status = config_manager.get_config_status()
assert status is not None
assert status.get("neo4j_configured") is True
assert status.get("api_configured") is True
def test_set_and_get_group_id_complete(self, config_manager):
"""测试设置和获取组 ID 完整流程."""
# 1. 获取默认组 ID
default_group_id = config_manager.get_group_id()
assert default_group_id is not None
# 2. 设置新组 ID
result = config_manager.set_group_id("test_group")
assert result is not None
# 3. 验证组 ID 已更新
new_group_id = config_manager.get_group_id()
assert new_group_id == "test_group"
def test_reset_config_complete_flow(self, config_manager):
"""测试重置配置完整流程."""
# 1. 先配置一些内容
config_manager.configure_neo4j(
uri="bolt://localhost:7687",
username="neo4j",
password="test"
)
config_manager.configure_api(
provider="openai",
api_key="test_key"
)
# 2. 验证配置存在
assert config_manager.get_neo4j_config() is not None
assert config_manager.get_api_config() is not None
# 3. 重置配置
result = config_manager.reset_config()
assert result is not None
# 4. 验证配置已重置
status = config_manager.get_config_status()
# 重置后配置应该为空或恢复默认值
assert status is not None