Esempio n. 1
0
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 = get_cart_session_key(client, ticket.event)
    CartPosition.objects.create(event=ticket.event,
                                cart_id=session_key,
                                item=ticket,
                                price=23,
                                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)
    response = client.post(
        '/%s/%s/checkout/payment/' %
        (ticket.event.organizer.slug, ticket.event.slug),
        {'payment': 'paypal'})
    assert response['Location'] == 'https://approve.url'
Esempio n. 2
0
def test_payment(env, monkeypatch):
    def charge_create(**kwargs):
        assert kwargs['amount'] == 1337
        assert kwargs['currency'] == 'eur'
        assert kwargs['source'] == 'tok_189fTT2eZvKYlo2CvJKzEzeu'
        c = MockedCharge()
        c.status = 'succeeded'
        c.paid = True
        charge_create.called = True
        return c

    monkeypatch.setattr("stripe.Charge.create", charge_create)

    client, ticket = env
    session_key = get_cart_session_key(client, ticket.event)
    CartPosition.objects.create(event=ticket.event,
                                cart_id=session_key,
                                item=ticket,
                                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',
                               '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
Esempio n. 3
0
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 = get_cart_session_key(client, ticket.event)
    CartPosition.objects.create(
        event=ticket.event, cart_id=session_key, item=ticket,
        price=23, 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)
    response = client.post('/%s/%s/checkout/payment/' % (ticket.event.organizer.slug, ticket.event.slug), {
        'payment': 'paypal'
    })
    assert response['Location'] == 'https://approve.url'
Esempio n. 4
0
def test_payment(env, monkeypatch):
    def charge_create(**kwargs):
        assert kwargs['amount'] == 1337
        assert kwargs['currency'] == 'eur'
        assert kwargs['source'] == 'tok_189fTT2eZvKYlo2CvJKzEzeu'
        c = MockedCharge()
        c.status = 'succeeded'
        c.paid = True
        charge_create.called = True
        return c
    monkeypatch.setattr("stripe.Charge.create", charge_create)

    client, ticket = env
    session_key = get_cart_session_key(client, ticket.event)
    CartPosition.objects.create(
        event=ticket.event, cart_id=session_key, item=ticket,
        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',
        '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