mirror of
https://github.com/pretix/pretix.git
synced 2026-05-03 14:54:04 +00:00
Improve payment method tests
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user