def test_authorize_gateway_error(payment_dummy, monkeypatch): monkeypatch.setattr("saleor.payment.gateways.dummy.dummy_success", lambda: False) with pytest.raises(PaymentError): txn = gateway.authorize(payment=payment_dummy, token="Fake") assert txn.kind == TransactionKind.AUTH assert not txn.is_success assert txn.payment == payment_dummy
def test_authorize_success(payment_dummy): txn = gateway.authorize(payment=payment_dummy, token="Fake") assert txn.is_success assert txn.kind == TransactionKind.AUTH assert txn.payment == payment_dummy payment_dummy.refresh_from_db() assert payment_dummy.is_active
def test_gateway_charge_errors(payment_dummy, transaction_token, settings): payment = payment_dummy gateway.authorize(payment, transaction_token) with pytest.raises(PaymentError) as exc: gateway.capture(payment, Decimal("0")) assert exc.value.message == "Amount should be a positive number." payment.charge_status = ChargeStatus.FULLY_REFUNDED with pytest.raises(PaymentError) as exc: gateway.capture(payment, Decimal("10")) assert exc.value.message == "This payment cannot be captured." payment.charge_status = ChargeStatus.NOT_CHARGED with pytest.raises(PaymentError) as exc: gateway.capture(payment, Decimal("1000000")) assert exc.value.message == ("Unable to charge more than un-captured amount.")
def test_authorize_failed(is_active, charge_status, payment_dummy): payment = payment_dummy payment.is_active = is_active payment.charge_status = charge_status payment.save() with pytest.raises(PaymentError): txn = gateway.authorize(payment=payment, token="Fake") assert txn is None
def test_authorize_payment(mock_payment_interface, payment_dummy): PAYMENT_DATA = create_payment_information(payment=payment_dummy, payment_token=TOKEN) mock_payment_interface.authorize_payment.return_value = AUTHORIZE_RESPONSE transaction = gateway.authorize(payment=payment_dummy, token=TOKEN) mock_payment_interface.authorize_payment.assert_called_once_with( USED_GATEWAY, PAYMENT_DATA) assert transaction.amount == AUTHORIZE_RESPONSE.amount assert transaction.kind == TransactionKind.AUTH assert transaction.currency == "usd" assert transaction.gateway_response == RAW_RESPONSE