Exemple #1
0
def test_premium_payment_gateway():
    try:
        msg = process_payment(
            501.0,
            CreditCard('5500000000000004', 'dummy user', datetime(2022, 1,
                                                                  31)))
        assert isinstance(msg, str)
    except Exception as ex:
        assert isinstance(ex, PaymentGatewayUnavailable)
Exemple #2
0
def api_process_payment():
    try:
        params = request.json
        amount = params.pop('Amount')
        payment_method = get_payment_method(**params)

        return jsonify({
            'message': process_payment(amount, payment_method)
        }), 200
    except AttributeError:
        raise ValueError('invalid content type: expected JSON')
    except KeyError as ex:
        raise ValueError(f'required field missing: {ex.args[0]}')
Exemple #3
0
def test_invalid_amount():
    with pytest.raises(InvalidAmount):
        process_payment(
            0.0,
            CreditCard('5500000000000004', 'dummy user', datetime(2022, 1,
                                                                  31)))
Exemple #4
0
def test_unsupported_payment_method():
    with pytest.raises(UnsupportedPaymentMethod):
        process_payment(100.0, OtherPaymentMethod())