Payment/PayPal: Use case-insensitive business check

This commit is contained in:
Adrian Moennich 2021-05-28 19:52:43 +02:00
parent a5595615a4
commit 1032f41001
2 changed files with 6 additions and 5 deletions

View File

@ -73,10 +73,10 @@ class RHPaypalIPN(RH):
data=request.form)
def _verify_business(self):
expected = current_plugin.event_settings.get(self.registration.registration_form.event, 'business')
candidates = {request.form.get('business'),
request.form.get('receiver_id'),
request.form.get('receiver_email')}
expected = current_plugin.event_settings.get(self.registration.registration_form.event, 'business').lower()
candidates = {request.form.get('business', '').lower(),
request.form.get('receiver_id', '').lower(),
request.form.get('receiver_email', '').lower()}
if expected in candidates:
return True
current_plugin.logger.warning("Unexpected business: %s not in %r (request data: %r)", expected, candidates,

View File

@ -28,7 +28,7 @@ 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')
PaypalPaymentPlugin.event_settings.set(dummy_event, 'business', 'TeST')
request.form = formdata
with PaypalPaymentPlugin.instance.plugin_context():
assert rh._verify_business() == expected
@ -88,6 +88,7 @@ def test_ipn_process(mocker, fail):
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()