def test_create_refund(): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 1: create payment # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ payment_id = do_payment(payments, CARD_NON3DS_CONFIRMED, amount=300) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 2: create refund # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # merchant order data merchantOrderId = randomString(20) merchantDescription = fake.sentence() amount = generateAmount(max=100) currency = TERMINAL_CURRENCY # prepare refund request data request = RefundRequest(request=ApiClient.uuid_request(), merchant_order=RefundRequestMerchantOrder( id=merchantOrderId, description=merchantDescription), payment_data=RefundRequestPaymentData(payment_id), refund_data=RefundRequestRefundData( amount=amount, currency=currency)) logger.info(request) # perform create refund response = refunds.create_refund(request) assert response is not None data = response.refund_data assert data is not None assert data.Status.COMPLETED == data.status
def test_refund_list_information(): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 1: create payment # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ payment_id = do_payment(payments, CARD_NON3DS_CONFIRMED, amount=300) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 2: create postponed refund # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ids = { do_refund(refunds, payment_id, generateAmount(min=1, max=10)) for _ in range(0, 3) } # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 3: fetch refunds # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # prepare request data currency = TERMINAL_CURRENCY maxCount = 50 # perform getting refunds list information response = refunds.get_refunds(request_id=str(uuid.uuid4()), currency=currency, max_count=maxCount) # explore response result assert ids.issubset({p.refund_data.id for p in response.data})
def test_change_refund_status(): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 1: create payment # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ payment_id = do_payment(payments, CARD_NON3DS_CONFIRMED, amount=300) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 2: create postponed refund # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ refund_id = do_refund(refunds, payment_id, generateAmount(max=100)) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 3: change refund status # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # prepare request data request = RefundUpdateRequest( request=ApiClient.uuid_request(), refund_data=RequestUpdatedTransactionData( status_to=RequestUpdatedTransactionData.StatusTo.REVERSE)) # perform change refund status response = refunds.update_refund(refund_id, request) assert response is not None # explore response result data = response.refund_data assert data is not None assert data.Status.VOIDED == data.status
def test_get_payments_list_information(): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Generate payments # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # prepare payments ids = {do_payment(payments, CARD_NON3DS_CONFIRMED) for _ in range(0, 3)} # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Fetch payments # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ currency = TERMINAL_CURRENCY maxCount = 50 # perform api call response = payments.get_payments( request_id=str(uuid.uuid4()), currency=currency, max_count=maxCount ) data = {p.payment_data.id for p in response.data} for p in response.data: logger.info("%s %f %s" % (p.payment_data.id, p.payment_data.amount, p.payment_data.currency)) assert ids.issubset(data)
def test_get_payment_information(): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 1: create payment # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # prepare payment in PENDING status payment_id = do_payment(payments, CARD_NON3DS_CONFIRMED, preauth=True) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 2: get payment information # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # perform getting payment information response = payments.get_payment(payment_id) # explore response result assert response is not None assert response.payment_data.id == payment_id logger.info(response)
def test_payment_change_status(): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 1: create payment # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # prepare payment in PENDING status payment_id = do_payment(payments, CARD_NON3DS_CONFIRMED, preauth=True) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 2: update status to COMPLETE for exists payment # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ request = PaymentPatchRequest( request=ApiClient.uuid_request(), operation=PaymentPatchRequest.Operation.CHANGE_STATUS, payment_data=PaymentUpdateTransactionData( status_to=PaymentUpdateTransactionData.StatusTo.COMPLETE)) logger.info(request) response = payments.update_payment(payment_id, request) logger.info(response)
def test_refund_information(): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 1: create payment # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ payment_id = do_payment(payments, CARD_NON3DS_CONFIRMED, amount=300) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 2: create postponed refund # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ refund_id = do_refund(refunds, payment_id, generateAmount(max=100)) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Phase 3: get refund information # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # perform getting refund information response = refunds.get_refund(refund_id) # explore response result assert response is not None assert refund_id == response.refund_data.id