114 lines
3.4 KiB
Python
114 lines
3.4 KiB
Python
"""
|
|
集成测试 - 完整的接口调用流程测试
|
|
"""
|
|
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
|