def create_payment(booking, offerer, amount, author='test author', reimbursement_rule='remboursement à 100%', reimbursement_rate=Decimal(0.5), payment_message=None, payment_message_name=None, transaction_end_to_end_id=None, transaction_label='pass Culture Pro - remboursement 2nde quinzaine 07-2018', status=TransactionStatus.PENDING, idx=None, iban='FR7630007000111234567890144', bic='BDFEFR2LCCB'): payment = Payment() payment.booking = booking payment.amount = amount payment.author = author payment.iban = iban payment.bic = bic payment.recipientName = offerer.name payment.recipientSiren = offerer.siren payment_status = PaymentStatus() payment_status.status = status payment_status.date = datetime.utcnow() payment.statuses = [payment_status] payment.reimbursementRule = reimbursement_rule payment.reimbursementRate = reimbursement_rate if payment_message_name: payment.paymentMessage = create_payment_message(payment_message_name) elif payment_message: payment.paymentMessage = payment_message payment.transactionEndToEndId = transaction_end_to_end_id payment.transactionLabel = transaction_label payment.id = idx return payment
def test_generate_payment_csv_raw_contains_human_readable_status_with_details(self, app): # given payment = Payment() user = create_user(email='*****@*****.**') offerer = create_offerer() venue = create_venue(offerer) stock = create_stock_with_thing_offer(offerer=offerer, venue=venue, price=10) booking = create_booking(user, stock, venue=venue, token='ABCDEF', is_used=True) payment.booking = booking payment.booking.stock = stock payment_status = PaymentStatus() payment.transactionLabel = 'pass Culture Pro - remboursement 1ère quinzaine 07-2019' payment.amount = 50 payment_status.status = TransactionStatus.ERROR payment_status.detail = 'Iban non fourni' payment_status.date = datetime.utcnow() payment.statuses = [payment_status] # when raw_csv = ReimbursementDetails(payment).as_csv_row() # then assert raw_csv[13] == 'Erreur d\'envoi du remboursement : Iban non fourni'