diff --git a/lsfx-mock-server/tests/__init__.py b/lsfx-mock-server/tests/__init__.py new file mode 100644 index 0000000..d4839a6 --- /dev/null +++ b/lsfx-mock-server/tests/__init__.py @@ -0,0 +1 @@ +# Tests package diff --git a/lsfx-mock-server/tests/conftest.py b/lsfx-mock-server/tests/conftest.py new file mode 100644 index 0000000..37c764b --- /dev/null +++ b/lsfx-mock-server/tests/conftest.py @@ -0,0 +1,30 @@ +""" +Pytest 配置和共享 fixtures +""" +import pytest +from fastapi.testclient import TestClient +import sys +import os + +# 添加项目根目录到 sys.path +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from main import app + + +@pytest.fixture +def client(): + """创建测试客户端""" + return TestClient(app) + + +@pytest.fixture +def sample_token_request(): + """示例 Token 请求""" + return { + "projectNo": "test_project_001", + "entityName": "测试企业", + "userId": "902001", + "userName": "902001", + "orgCode": "902000", + } diff --git a/lsfx-mock-server/tests/test_api.py b/lsfx-mock-server/tests/test_api.py new file mode 100644 index 0000000..c4283d0 --- /dev/null +++ b/lsfx-mock-server/tests/test_api.py @@ -0,0 +1,46 @@ +""" +API 端点测试 +""" + + +def test_root_endpoint(client): + """测试根路径""" + response = client.get("/") + assert response.status_code == 200 + data = response.json() + assert data["status"] == "running" + assert "swagger_docs" in data + + +def test_health_check(client): + """测试健康检查端点""" + response = client.get("/health") + assert response.status_code == 200 + data = response.json() + assert data["status"] == "healthy" + + +def test_get_token_success(client, sample_token_request): + """测试获取 Token - 成功场景""" + response = client.post("/account/common/getToken", json=sample_token_request) + assert response.status_code == 200 + data = response.json() + assert data["code"] == "200" + assert "token" in data["data"] + assert "projectId" in data["data"] + + +def test_get_token_error_40101(client): + """测试获取 Token - 错误场景 40101""" + request_data = { + "projectNo": "test_error_40101", + "entityName": "测试企业", + "userId": "902001", + "userName": "902001", + "orgCode": "902000", + } + response = client.post("/account/common/getToken", json=request_data) + assert response.status_code == 200 + data = response.json() + assert data["code"] == "40101" + assert data["successResponse"] == False