def test_get_payment_gateway(settings): gateway_name = list(settings.PAYMENT_GATEWAYS.keys())[0] gateway = settings.PAYMENT_GATEWAYS[gateway_name] gateway_module, gateway_config = get_payment_gateway(gateway_name) assert gateway_module.__name__ == gateway["module"] assert gateway_config.connection_params == gateway["config"]["connection_params"] assert gateway_config.auto_capture == gateway["config"]["auto_capture"]
def test_payment_gateway_form_exists(gateway_name, payment_dummy): """Test if for each payment gateway there's a corresponding form for the old checkout. An error will be raised if it's missing. """ payment_gateway, gateway_params = get_payment_gateway(gateway_name) payment_gateway.get_form_class()
def test_payment_gateway_form_exists(gateway_name, payment_dummy): """Test if for each payment gateway there's a corresponding form for the old checkout. An error will be raised if it's missing. """ payment_gateway, gateway_params = get_payment_gateway(gateway_name) payment_info = create_payment_information(payment_dummy) payment_gateway.create_form(None, payment_info, gateway_params)
def test_braintree_payment_form(settings, payment_dummy): payment = payment_dummy payment.gateway = settings.BRAINTREE data = {'amount': payment.total, 'payment_method_nonce': 'fake-nonce'} payment_gateway, gateway_params = get_payment_gateway(payment.gateway) form = BraintreePaymentForm(data=data, payment=payment, gateway=payment_gateway, gateway_params=gateway_params) assert form.is_valid()
def test_dummy_payment_form(kind, charge_status, settings, payment_dummy): payment = payment_dummy data = {'charge_status': charge_status} payment_gateway, gateway_params = get_payment_gateway(payment.gateway) form = DummyPaymentForm( data=data, payment=payment, gateway=payment_gateway, gateway_params=gateway_params) assert form.is_valid() form.process_payment() payment.refresh_from_db() assert payment.transactions.last().kind == kind
def test_braintree_payment_form_incorrect_amount(payment_dummy): amount = Decimal('0.01') data = {'amount': amount, 'payment_method_nonce': 'fake-nonce'} assert amount != payment_dummy.total payment_gateway, gateway_params = get_payment_gateway( payment_dummy.gateway) form = BraintreePaymentForm(data=data, payment=payment_dummy, gateway=payment_gateway, gateway_params=gateway_params) assert not form.is_valid() assert form.non_field_errors
def test_dummy_payment_form(kind, charge_status, payment_dummy): payment = payment_dummy data = {'charge_status': charge_status} payment_gateway, gateway_params = get_payment_gateway(payment.gateway) payment_info = create_payment_information(payment) form = payment_gateway.create_form( data=data, payment_information=payment_info, connection_params=gateway_params) assert form.is_valid() gateway_process_payment( payment=payment, payment_token=form.get_payment_token()) payment.refresh_from_db() assert payment.transactions.last().kind == kind
def test_dummy_payment_form(kind, charge_status, settings, payment_dummy): payment = payment_dummy data = {'charge_status': charge_status} payment_gateway, gateway_params = get_payment_gateway(payment.gateway) payment_info = create_payment_information(payment) form = payment_gateway.create_form(data=data, payment_information=payment_info, connection_params=gateway_params) assert form.is_valid() gateway_process_payment(payment=payment, payment_token=form.get_payment_token()) payment.refresh_from_db() assert payment.transactions.last().kind == kind
def test_get_payment_gateway_non_existing_name(settings): gateway = "example-gateway" settings.CHECKOUT_PAYMENT_GATEWAYS = {gateway: "Example gateway"} with pytest.raises(ImproperlyConfigured): get_payment_gateway(gateway)
def test_get_payment_gateway_not_allowed_checkout_choice(settings): gateway = "example-gateway" settings.CHECKOUT_PAYMENT_GATEWAYS = {} with pytest.raises(ValueError): get_payment_gateway(gateway)
def test_get_payment_gateway(settings): gateway_name = list(settings.PAYMENT_GATEWAYS.keys())[0] gateway = settings.PAYMENT_GATEWAYS[gateway_name] gateway_module, gateway_params = get_payment_gateway(gateway_name) assert gateway_module.__name__ == gateway['module'] assert gateway_params == gateway['connection_params']
def test_get_form_class(settings): payment_gateway, gateway_params = get_payment_gateway(settings.BRAINTREE) assert payment_gateway.get_form_class() == BraintreePaymentForm
def test_get_form_class(settings): payment_gateway, gateway_params = get_payment_gateway(settings.DUMMY) assert payment_gateway.get_form_class() == DummyPaymentForm