58 lines
1.6 KiB
Python
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"]) |