mirror of
https://github.com/pretix/pretix.git
synced 2026-05-03 14:54:04 +00:00
Enforce uniqueness of order codes and ticket secrets (#3988)
* Enforce uniqueness of order codes and ticket secrets * Fix test cases which created orders with identical codes --------- Co-authored-by: Mira Weller <weller@rami.io>
This commit is contained in:
@@ -279,6 +279,28 @@ def test_order_create(token_client, organizer, event, item, quota, question):
|
||||
assert o.transactions.count() == 2
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_create_duplicate_code(token_client, organizer, event, item, quota, question):
|
||||
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
|
||||
res['code'] = 'ABC12'
|
||||
res['positions'][0]['item'] = item.pk
|
||||
res['positions'][0]['answers'][0]['question'] = question.pk
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/'.format(
|
||||
organizer.slug, event.slug
|
||||
), format='json', data=res
|
||||
)
|
||||
assert resp.status_code == 201
|
||||
assert resp.data['code'] == 'ABC12'
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/'.format(
|
||||
organizer.slug, event.slug
|
||||
), format='json', data=res
|
||||
)
|
||||
assert resp.status_code == 400
|
||||
assert resp.data == {"code": ["This order code is already in use."]}
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_create_max_size(token_client, organizer, event, item, quota, question):
|
||||
quota.size = settings.PRETIX_MAX_ORDER_SIZE * 2
|
||||
|
||||
Reference in New Issue
Block a user