""" StatementService 主绑定注入测试 """ from services.file_service import FileService from services.statement_service import StatementService def test_get_bank_statement_uses_primary_binding_from_file_service(monkeypatch): """同一 logId 的流水记录必须复用 FileService 中的主体与账号绑定。""" file_service = FileService() statement_service = StatementService(file_service=file_service) monkeypatch.setattr( file_service, "_generate_primary_binding", lambda: ("绑定主体", "6222000011112222"), ) response = file_service.fetch_inner_flow( { "groupId": 1001, "customerNo": "customer_001", "dataChannelCode": "test", "requestDateId": 20240101, "dataStartDateId": 20240101, "dataEndDateId": 20240131, "uploadUserId": 902001, } ) log_id = response["data"][0] record = file_service.file_records[log_id] statement_response = statement_service.get_bank_statement( { "groupId": 1001, "logId": log_id, "pageNow": 1, "pageSize": 5, } ) statements = statement_response["data"]["bankStatementList"] assert statements assert all(item["leName"] == record.primary_enterprise_name for item in statements) assert all(item["accountMaskNo"] == record.primary_account_no for item in statements)