diff --git a/lsfx-mock-server/tests/integration/__init__.py b/lsfx-mock-server/tests/integration/__init__.py new file mode 100644 index 0000000..a265048 --- /dev/null +++ b/lsfx-mock-server/tests/integration/__init__.py @@ -0,0 +1 @@ +# Integration tests package diff --git a/lsfx-mock-server/tests/integration/test_full_workflow.py b/lsfx-mock-server/tests/integration/test_full_workflow.py new file mode 100644 index 0000000..02a9b3a --- /dev/null +++ b/lsfx-mock-server/tests/integration/test_full_workflow.py @@ -0,0 +1,113 @@ +""" +集成测试 - 完整的接口调用流程测试 +""" +import pytest +import time + + +def test_complete_workflow(client): + """测试完整的接口调用流程""" + # 1. 获取 Token + response = client.post( + "/account/common/getToken", + json={ + "projectNo": "integration_test_001", + "entityName": "集成测试企业", + "userId": "902001", + "userName": "902001", + "orgCode": "902000", + }, + ) + assert response.status_code == 200 + token_data = response.json() + assert token_data["code"] == "200" + project_id = token_data["data"]["projectId"] + token = token_data["data"]["token"] + assert token is not None + + # 2. 上传文件(模拟) + # 注意:在测试环境中,我们跳过实际的文件上传,直接测试其他接口 + + # 3. 检查解析状态 + response = client.post( + "/watson/api/project/upload/getpendings", + json={"groupId": project_id, "inprogressList": "10001"}, + ) + assert response.status_code == 200 + status_data = response.json() + assert "parsing" in status_data["data"] + + # 4. 获取银行流水 + response = client.post( + "/watson/api/project/getBSByLogId", + json={ + "groupId": project_id, + "logId": 10001, + "pageNow": 1, + "pageSize": 10, + }, + ) + assert response.status_code == 200 + statement_data = response.json() + assert statement_data["code"] == "200" + assert "bankStatementList" in statement_data["data"] + assert "totalCount" in statement_data["data"] + + +def test_all_error_codes(client): + """测试所有错误码""" + error_codes = ["40101", "40102", "40104", "40105", "40106", "40107", "40108"] + + for error_code in error_codes: + response = client.post( + "/account/common/getToken", + json={ + "projectNo": f"test_error_{error_code}", + "entityName": "测试企业", + "userId": "902001", + "userName": "902001", + "orgCode": "902000", + }, + ) + assert response.status_code == 200 + data = response.json() + assert data["code"] == error_code, f"错误码 {error_code} 未正确触发" + assert data["successResponse"] == False + + +def test_pagination(client): + """测试分页功能""" + # 获取 Token + response = client.post( + "/account/common/getToken", + json={ + "projectNo": "pagination_test", + "entityName": "分页测试", + "userId": "902001", + "userName": "902001", + "orgCode": "902000", + }, + ) + project_id = response.json()["data"]["projectId"] + + # 测试第一页 + response = client.post( + "/watson/api/project/getBSByLogId", + json={"groupId": project_id, "logId": 10001, "pageNow": 1, "pageSize": 1}, + ) + page1 = response.json() + + # 测试第二页 + response = client.post( + "/watson/api/project/getBSByLogId", + json={"groupId": project_id, "logId": 10001, "pageNow": 2, "pageSize": 1}, + ) + page2 = response.json() + + # 验证总记录数相同 + assert page1["data"]["totalCount"] == page2["data"]["totalCount"] + + # 验证页码不同 + if page1["data"]["totalCount"] > 1: + assert len(page1["data"]["bankStatementList"]) == 1 + assert len(page2["data"]["bankStatementList"]) >= 0