diff --git a/src/tests/plugins/paypal/test_checkout.py b/src/tests/plugins/paypal/test_checkout.py index 9c651572ac..53c9923a41 100644 --- a/src/tests/plugins/paypal/test_checkout.py +++ b/src/tests/plugins/paypal/test_checkout.py @@ -34,7 +34,15 @@ def env(client): @pytest.mark.django_db -def test_payment(env): +def test_payment(env, monkeypatch): + def create_payment(self, request, payment): + assert payment['intent'] == 'sale' + assert payment['transactions'][0]['amount']['currency'] == 'EUR' + assert payment['transactions'][0]['amount']['total'] == '26.00' + create_payment.called = True + return 'https://approve.url' + monkeypatch.setattr("pretix.plugins.paypal.payment.Paypal._create_payment", create_payment) + client, ticket = env session_key = client.cookies.get(settings.SESSION_COOKIE_NAME).value CartPosition.objects.create( @@ -47,5 +55,5 @@ def test_payment(env): }, follow=True) response = client.post('/%s/%s/checkout/payment/' % (ticket.event.organizer.slug, ticket.event.slug), { 'payment': 'paypal' - }, follow=True) - assert response.status_code == 200 + }) + assert response['Location'] == 'https://approve.url' diff --git a/src/tests/plugins/paypal/test_settings.py b/src/tests/plugins/paypal/test_settings.py index 0ae1fe5dad..89706184e8 100644 --- a/src/tests/plugins/paypal/test_settings.py +++ b/src/tests/plugins/paypal/test_settings.py @@ -27,3 +27,4 @@ def test_settings(env): client, event = env response = client.get('/control/event/%s/%s/settings/payment' % (event.organizer.slug, event.slug), follow=True) assert response.status_code == 200 + assert 'paypal__enabled' in response.rendered_content diff --git a/src/tests/plugins/stripe/test_checkout.py b/src/tests/plugins/stripe/test_checkout.py index 262b48c2d3..0bbc91713a 100644 --- a/src/tests/plugins/stripe/test_checkout.py +++ b/src/tests/plugins/stripe/test_checkout.py @@ -47,6 +47,7 @@ def test_payment(env, monkeypatch): c = MockedCharge() c.status = 'succeeded' c.paid = True + charge_create.called = True return c monkeypatch.setattr("stripe.Charge.create", charge_create) @@ -54,13 +55,23 @@ def test_payment(env, monkeypatch): session_key = client.cookies.get(settings.SESSION_COOKIE_NAME).value CartPosition.objects.create( event=ticket.event, cart_id=session_key, item=ticket, - price=23, expires=now() + datetime.timedelta(minutes=10) + price=13.37, expires=now() + datetime.timedelta(minutes=10) ) client.get('/%s/%s/checkout/payment/' % (ticket.event.organizer.slug, ticket.event.slug), follow=True) client.post('/%s/%s/checkout/questions/' % (ticket.event.organizer.slug, ticket.event.slug), { 'email': 'admin@localhost' }, follow=True) + charge_create.called = False response = client.post('/%s/%s/checkout/payment/' % (ticket.event.organizer.slug, ticket.event.slug), { - 'payment': 'stripe' + 'payment': 'stripe', + 'stripe_token': 'tok_189fTT2eZvKYlo2CvJKzEzeu', + 'stripe_card_brand': 'visa', + 'stripe_card_last4': '1234' }, follow=True) + assert not charge_create.called + assert response.status_code == 200 + assert 'alert-danger' not in response.rendered_content + response = client.post('/%s/%s/checkout/confirm/' % (ticket.event.organizer.slug, ticket.event.slug), { + }, follow=True) + assert charge_create.called assert response.status_code == 200 diff --git a/src/tests/plugins/stripe/test_settings.py b/src/tests/plugins/stripe/test_settings.py index 59baec911d..1062815ac5 100644 --- a/src/tests/plugins/stripe/test_settings.py +++ b/src/tests/plugins/stripe/test_settings.py @@ -11,7 +11,7 @@ def env(client): event = Event.objects.create( organizer=orga, name='30C3', slug='30c3', date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc), - plugins='pretix.plugins.strip', + plugins='pretix.plugins.stripe', live=True ) event.settings.set('attendee_names_asked', False) @@ -27,3 +27,4 @@ def test_settings(env): client, event = env response = client.get('/control/event/%s/%s/settings/payment' % (event.organizer.slug, event.slug), follow=True) assert response.status_code == 200 + assert 'stripe__enabled' in response.rendered_content