修复流水详情原始文件关联与Mock随机logId

This commit is contained in:
wkc
2026-03-20 16:25:22 +08:00
parent d7c9f0e5bf
commit 079b412d38
11 changed files with 427 additions and 15 deletions

View File

@@ -8,7 +8,7 @@ import io
from fastapi import BackgroundTasks
from fastapi.datastructures import UploadFile
from services.file_service import FileService
from services.file_service import FileRecord, FileService
class FakeStaffIdentityRepository:
@@ -139,7 +139,7 @@ def test_fetch_inner_flow_persists_primary_binding_record(monkeypatch):
response = service.fetch_inner_flow(request)
log_id = response["data"][0]
assert log_id == service.log_counter
assert 10000 <= log_id <= 99999
assert log_id in service.file_records
record = service.file_records[log_id]
@@ -156,6 +156,24 @@ def test_fetch_inner_flow_persists_primary_binding_record(monkeypatch):
assert record.total_records == 200
def test_generate_log_id_should_retry_when_random_value_conflicts(monkeypatch):
"""随机 logId 命中已存在记录时必须重试并返回未占用值。"""
service = FileService(staff_identity_repository=FakeStaffIdentityRepository())
service.file_records[34567] = FileRecord(
log_id=34567,
group_id=1001,
file_name="existing.csv",
)
candidate_values = iter([34567, 45678])
monkeypatch.setattr(
"services.file_service.random.randint",
lambda start, end: next(candidate_values),
)
assert service._generate_log_id() == 45678
def test_build_rule_hit_plan_should_be_deterministic_for_same_log_id():
service = FileService(staff_identity_repository=FakeStaffIdentityRepository())