调整lsfx mock上传流水条数范围
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# lsfx-mock-server 上传流水条数范围调整实施记录
|
||||
|
||||
## 修改目标
|
||||
|
||||
- 将 `lsfx-mock-server` 上传文件接口生成的 `totalRecords` 随机范围调整为 `150-200`
|
||||
- 保持改动只影响上传链路,不扩散到其他非上传接口
|
||||
|
||||
## 修改内容
|
||||
|
||||
- 修改 `lsfx-mock-server/services/file_service.py`
|
||||
- `upload_file()` 中创建 `FileRecord` 时的 `total_records` 生成逻辑
|
||||
- 由 `random.randint(100, 300)` 调整为 `random.randint(150, 200)`
|
||||
- 修改 `lsfx-mock-server/tests/test_file_service.py`
|
||||
- 新增上传文件 `totalRecords` 范围测试
|
||||
- 通过定向劫持旧区间 `random.randint(100, 300)` 返回 `300`,确保旧实现先失败,再验证新实现通过
|
||||
|
||||
## 验证记录
|
||||
|
||||
- 执行 `python3 -m pytest tests/test_file_service.py -k total_records_range -q`
|
||||
- 首次执行结果: 失败,旧实现返回 `300`
|
||||
- 修改后预期: 测试通过,上传文件返回的 `totalRecords` 落在 `150-200`
|
||||
|
||||
## 影响范围
|
||||
|
||||
- 影响接口: `POST /watson/api/project/remoteUploadSplitFile`
|
||||
- 关联链路:
|
||||
- 上传接口响应中的 `uploadLogList[].totalRecords`
|
||||
- 后续通过真实 `file_records` 读取上传状态时返回的 `logs[].totalRecords`
|
||||
- 不影响:
|
||||
- 行内流水拉取接口
|
||||
- 无真实记录时的 deterministic 回退数据
|
||||
@@ -189,7 +189,7 @@ class FileService:
|
||||
primary_enterprise_name=primary_enterprise_name,
|
||||
primary_account_no=primary_account_no,
|
||||
file_size=random.randint(10000, 100000),
|
||||
total_records=random.randint(100, 300),
|
||||
total_records=random.randint(150, 200),
|
||||
trx_date_start_id=trx_date_start_id,
|
||||
trx_date_end_id=trx_date_end_id,
|
||||
le_id=10000 + random.randint(0, 9999),
|
||||
|
||||
@@ -40,6 +40,33 @@ def test_upload_file_primary_binding_response(monkeypatch):
|
||||
assert record.account_no_list == ["6222021234567890"]
|
||||
|
||||
|
||||
def test_upload_file_total_records_range(monkeypatch):
|
||||
"""上传文件返回的流水条数必须限制在 150-200 条。"""
|
||||
service = FileService()
|
||||
|
||||
monkeypatch.setattr(
|
||||
service,
|
||||
"_generate_primary_binding",
|
||||
lambda: ("测试主体C", "6222000011112222"),
|
||||
)
|
||||
original_randint = __import__("services.file_service", fromlist=["random"]).random.randint
|
||||
|
||||
def fake_randint(start, end):
|
||||
if (start, end) == (100, 300):
|
||||
return 300
|
||||
return original_randint(start, end)
|
||||
|
||||
monkeypatch.setattr("services.file_service.random.randint", fake_randint)
|
||||
|
||||
background_tasks = BackgroundTasks()
|
||||
file = UploadFile(filename="测试文件.csv", file=io.BytesIO(b"mock"))
|
||||
|
||||
response = asyncio.run(service.upload_file(1001, file, background_tasks))
|
||||
|
||||
total_records = response["data"]["uploadLogList"][0]["totalRecords"]
|
||||
assert 150 <= total_records <= 200
|
||||
|
||||
|
||||
def test_upload_file_then_upload_status_reads_same_record(monkeypatch):
|
||||
"""上传后再查状态时,上传状态接口必须读取同一条真实记录。"""
|
||||
service = FileService()
|
||||
|
||||
Reference in New Issue
Block a user