mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Order creation API: Allow to create orders without payment provider
This commit is contained in:
@@ -2495,21 +2495,6 @@ def test_order_create_free(token_client, organizer, event, item, quota, question
|
||||
assert p.state == "confirmed"
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_create_require_payment_provider(token_client, organizer, event, item, quota, question):
|
||||
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
|
||||
del res['payment_provider']
|
||||
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 == 400
|
||||
assert resp.data == {'payment_provider': ['This field is required.']}
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_create_invalid_payment_provider(token_client, organizer, event, item, quota, question):
|
||||
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
|
||||
@@ -2853,6 +2838,35 @@ def test_order_create_send_emails_paid(token_client, organizer, event, item, quo
|
||||
assert djmail.outbox[1].subject == "Payment received for your order: {}".format(resp.data['code'])
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_paid_require_payment_method(token_client, organizer, event, item, quota, question):
|
||||
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
|
||||
res['positions'][0]['item'] = item.pk
|
||||
res['positions'][0]['answers'][0]['question'] = question.pk
|
||||
del res['payment_provider']
|
||||
res['status'] = 'p'
|
||||
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 == [
|
||||
'You cannot create a paid order without a payment provider.'
|
||||
]
|
||||
|
||||
res['status'] = "n"
|
||||
resp = token_client.post(
|
||||
'/api/v1/organizers/{}/events/{}/orders/'.format(
|
||||
organizer.slug, event.slug
|
||||
), format='json', data=res
|
||||
)
|
||||
assert resp.status_code == 201
|
||||
with scopes_disabled():
|
||||
o = Order.objects.get(code=resp.data['code'])
|
||||
assert not o.payments.exists()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_create_auto_pricing(token_client, organizer, event, item, quota, question):
|
||||
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
|
||||
|
||||
Reference in New Issue
Block a user