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)
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]}')
def test_invalid_amount(): with pytest.raises(InvalidAmount): process_payment( 0.0, CreditCard('5500000000000004', 'dummy user', datetime(2022, 1, 31)))
def test_unsupported_payment_method(): with pytest.raises(UnsupportedPaymentMethod): process_payment(100.0, OtherPaymentMethod())