Stripe: Event-independent webhooks

This commit is contained in:
Raphael Michel
2017-07-23 12:22:48 +02:00
parent 7c91bc2f37
commit 5f529817ef
7 changed files with 116 additions and 24 deletions

View File

@@ -8,6 +8,7 @@ from django.utils.timezone import now
from pretix.base.models import (
Event, Order, Organizer, RequiredAction, Team, User,
)
from pretix.plugins.stripe.models import ReferencedStripeObject
@pytest.fixture
@@ -215,3 +216,38 @@ def test_webhook_partial_refund(env, client, monkeypatch):
order = env[1]
order.refresh_from_db()
assert order.status == Order.STATUS_REFUNDED
@pytest.mark.django_db
def test_webhook_organizer_level(env, client, monkeypatch):
order = env[1]
order.status = Order.STATUS_PENDING
order.save()
charge = get_test_charge(env[1])
monkeypatch.setattr("stripe.Charge.retrieve", lambda *args: charge)
ReferencedStripeObject.objects.create(order=order, reference="ch_18TY6GGGWE2Ias8TZHanef25")
client.post('/_stripe/webhook/', json.dumps(
{
"id": "evt_18otImGGWE2Ias8TUyVRDB1G",
"object": "event",
"api_version": "2016-03-07",
"created": 1472729052,
"data": {
"object": {
"id": "ch_18TY6GGGWE2Ias8TZHanef25",
"object": "charge",
# Rest of object is ignored anway
}
},
"livemode": True,
"pending_webhooks": 1,
"request": "req_977XOWC8zk51Z9",
"type": "charge.succeeded"
}
), content_type='application_json')
order.refresh_from_db()
assert order.status == Order.STATUS_PAID