aidress/tests/api/test_health.py
2025-03-21 22:49:03 +08:00

58 lines
1.6 KiB
Python

from fastapi.testclient import TestClient
import pytest
from app.main import app
client = TestClient(app)
def test_root_endpoint():
"""测试根端点"""
response = client.get("/")
assert response.status_code == 200
data = response.json()
assert data["success"] is True
assert data["code"] == 200
assert "服务运行中" in data["message"]
def test_health_endpoint():
"""测试健康检查端点"""
response = client.get("/health")
assert response.status_code == 200
data = response.json()
assert data["success"] is True
assert "checks" in data["data"]
assert "database" in data["data"]["checks"]
# 验证响应格式
assert isinstance(data, dict)
assert "success" in data
assert "code" in data
assert "message" in data
assert "data" in data
# 验证success字段为布尔类型
assert isinstance(data["success"], bool)
# 验证code字段为整数
assert isinstance(data["code"], int)
# 验证message字段为字符串
assert isinstance(data["message"], str)
def test_info_endpoint():
"""测试服务信息端点"""
response = client.get("/info")
assert response.status_code == 200
data = response.json()
assert data["success"] is True
assert data["code"] == 200
assert "服务信息获取成功" in data["message"]
# 验证响应的数据部分
assert "data" in data
assert "app_name" in data["data"]
assert "version" in data["data"]
assert "debug_mode" in data["data"]
if __name__ == "__main__":
pytest.main(["-v", "test_health.py"])