コード例 #1
0
def test_ipn_process(mocker, fail):
    rt = mocker.patch('indico_payment_paypal.controllers.register_transaction')
    post = mocker.patch('indico_payment_paypal.controllers.requests.post')
    mocker.patch(
        'indico_payment_paypal.controllers.notify_amount_inconsistency')
    post.return_value.text = 'INVALID' if fail == 'verify' else 'VERIFIED'
    rh = RHPaypalIPN()
    rh._verify_business = MagicMock()
    rh._is_transaction_duplicated = lambda: fail == 'dup_txn'
    rh.event = MagicMock(id=1)
    rh.registration = MagicMock()
    rh.registration.getTotal.return_value = 10.00
    payment_status = {
        'fail': 'Failed',
        'refund': 'Refunded',
        'status': 'Foobar'
    }.get(fail, 'Completed')
    amount = '-10.00' if fail == 'negative' else '10.00'
    request.view_args = {'event_id': rh.event.id}
    request.args = {'registrantId': '1'}
    request.form = {
        'payment_status': payment_status,
        'txn_id': '12345',
        'mc_gross': amount,
        'mc_currency': 'EUR',
        'business': '*****@*****.**'
    }
    with PaypalPaymentPlugin.instance.plugin_context():
        rh._process()
        assert post.called
        assert rt.called == (fail is None)
コード例 #2
0
def test_ipn_verify_business(formdata, expected, dummy_event):
    rh = RHPaypalIPN()
    rh.registration = MagicMock()
    rh.registration.registration_form.event = dummy_event
    PaypalPaymentPlugin.event_settings.set(dummy_event, 'business', 'test')
    request.form = formdata
    with PaypalPaymentPlugin.instance.plugin_context():
        assert rh._verify_business() == expected
コード例 #3
0
def test_ipn_verify_business(formdata, expected, dummy_event):
    rh = RHPaypalIPN()
    rh.registration = MagicMock()
    rh.registration.registration_form.event = dummy_event
    PaypalPaymentPlugin.event_settings.set(dummy_event, 'business', 'test')
    request.form = formdata
    with PaypalPaymentPlugin.instance.plugin_context():
        assert rh._verify_business() == expected