ForcePilot/backend/test/integration/api/test_system_router.py
Wenjie Zhang 4f6353d555 feat(test): 重组测试目录结构为 integration/unit/e2e 三层架构
- 将 api 测试重组为 integration 测试
- 新增 unit 和 e2e 测试目录分类
- 新增 testing-guidelines.md 测试指南文档
- 更新 pyproject.toml 和 run_tests.sh 以适配新结构

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 15:24:47 +08:00

41 lines
1.4 KiB
Python

"""
Integration tests for system router endpoints.
"""
from __future__ import annotations
import pytest
pytestmark = [pytest.mark.asyncio, pytest.mark.integration]
async def test_health_endpoint_is_public(test_client):
response = await test_client.get("/api/system/health")
assert response.status_code == 200
assert response.json()["status"] == "ok"
async def test_info_endpoint_is_public(test_client):
response = await test_client.get("/api/system/info")
assert response.status_code == 200
payload = response.json()
assert payload["success"] is True
assert "data" in payload
async def test_config_endpoints_require_admin(test_client, standard_user):
assert (await test_client.get("/api/system/config")).status_code == 401
assert (await test_client.get("/api/system/config", headers=standard_user["headers"])).status_code == 403
async def test_admin_can_fetch_config_and_reload_info(test_client, admin_headers):
config_response = await test_client.get("/api/system/config", headers=admin_headers)
assert config_response.status_code == 200, config_response.text
assert isinstance(config_response.json(), dict)
reload_response = await test_client.post("/api/system/info/reload", headers=admin_headers)
assert reload_response.status_code == 200, reload_response.text
reload_payload = reload_response.json()
assert reload_payload["success"] is True
assert "data" in reload_payload