mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
New locking mechanism (#2408)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
This commit is contained in:
@@ -168,15 +168,14 @@ def order(event):
|
||||
def test_allow_retry_409(token_client, organizer, event, order):
|
||||
order.status = Order.STATUS_EXPIRED
|
||||
order.save()
|
||||
with event.lock():
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/{}/mark_paid/'.format(
|
||||
organizer.slug, event.slug, order.code
|
||||
), format='json', HTTP_X_IDEMPOTENCY_KEY='foo'
|
||||
)
|
||||
assert resp.status_code == 409
|
||||
order.refresh_from_db()
|
||||
assert order.status == Order.STATUS_EXPIRED
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/{}/mark_paid/?_debug_flag=fail-locking'.format(
|
||||
organizer.slug, event.slug, order.code
|
||||
), format='json', HTTP_X_IDEMPOTENCY_KEY='foo'
|
||||
)
|
||||
assert resp.status_code == 409
|
||||
order.refresh_from_db()
|
||||
assert order.status == Order.STATUS_EXPIRED
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/{}/mark_paid/'.format(
|
||||
organizer.slug, event.slug, order.code
|
||||
|
||||
@@ -1188,15 +1188,14 @@ def test_order_mark_paid_expired_quota_fill(token_client, organizer, event, orde
|
||||
def test_order_mark_paid_locked(token_client, organizer, event, order):
|
||||
order.status = Order.STATUS_EXPIRED
|
||||
order.save()
|
||||
with event.lock():
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/{}/mark_paid/'.format(
|
||||
organizer.slug, event.slug, order.code
|
||||
)
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/{}/mark_paid/?_debug_flag=fail-locking'.format(
|
||||
organizer.slug, event.slug, order.code
|
||||
)
|
||||
assert resp.status_code == 409
|
||||
order.refresh_from_db()
|
||||
assert order.status == Order.STATUS_EXPIRED
|
||||
)
|
||||
assert resp.status_code == 409
|
||||
order.refresh_from_db()
|
||||
assert order.status == Order.STATUS_EXPIRED
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
Reference in New Issue
Block a user