"""健康检查单元测试."""
import pytest
from unittest.mock import patch, Mock
from src.health_check import health_check
from src.config_manager import ConfigManager
class TestHealthCheck:
"""健康检查测试类."""
def test_health_check_no_config(self, config_manager):
"""测试未配置时的健康检查."""
# 传递 config_manager 避免读取用户真实配置
result = health_check(config_manager)
assert 'status' in result
assert 'checks' in result
assert result['status'] in ['healthy', 'degraded', 'unhealthy']
def test_health_check_with_config(self, config_manager, mock_neo4j_config):
"""测试配置后的健康检查."""
config_manager.configure_neo4j(**mock_neo4j_config)
# Mock GraphitiClient.connect 避免真实连接
with patch('src.health_check.GraphitiClient') as MockClient:
mock_client = Mock()
mock_client.connect.return_value = False
MockClient.return_value = mock_client
result = health_check(config_manager)
assert 'status' in result
assert 'checks' in result
assert 'configuration' in result['checks']
assert 'database' in result['checks']