""" 集成测试 - 完整的接口调用流程测试 """ import pytest import time def test_complete_workflow(client): """测试完整的接口调用流程""" # 1. 获取 Token response = client.post( "/account/common/getToken", data={ "projectNo": "integration_test_001", "entityName": "集成测试企业", "userId": "902001", "userName": "902001", "appId": "remote_app", "appSecretCode": "test_secret_code_12345", "role": "VIEWER", "orgCode": "902000", "departmentCode": "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", data={"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", data={ "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", data={ "projectNo": f"test_error_{error_code}", "entityName": "测试企业", "userId": "902001", "userName": "902001", "appId": "remote_app", "appSecretCode": "test_secret_code_12345", "role": "VIEWER", "orgCode": "902000", "departmentCode": "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", data={ "projectNo": "pagination_test", "entityName": "分页测试", "userId": "902001", "userName": "902001", "appId": "remote_app", "appSecretCode": "test_secret_code_12345", "role": "VIEWER", "orgCode": "902000", "departmentCode": "902000", }, ) project_id = response.json()["data"]["projectId"] # 测试第一页 response = client.post( "/watson/api/project/getBSByLogId", data={"groupId": project_id, "logId": 10001, "pageNow": 1, "pageSize": 1}, ) page1 = response.json() # 测试第二页 response = client.post( "/watson/api/project/getBSByLogId", data={"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