API: Fix crash in order creation (PRETIXEU-9XS)

This commit is contained in:
Raphael Michel
2024-04-10 09:40:35 +02:00
parent 58add74b3a
commit ac02f3b417
3 changed files with 31 additions and 3 deletions

View File

@@ -2190,6 +2190,33 @@ def test_order_create_with_seat_consumed_from_cart(token_client, organizer, even
assert p.seat == seat
@pytest.mark.django_db
def test_order_create_with_voucher_and_price_set(token_client, organizer, event, item, quota, question):
with scopes_disabled():
voucher = event.vouchers.create(code="FOOBAR", item=item, price_mode="set", value=0, max_usages=3)
item.tax_rule = event.tax_rules.create(rate=19, price_includes_tax=False)
item.save()
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
res['positions'][0]['item'] = item.pk
res['positions'][0]['voucher'] = voucher.code
res['positions'][0]['price'] = '0.00'
res['positions'][0].pop("tax_rate", None)
res['positions'][0].pop("tax_rule", None)
res['positions'][0].pop("tax_value", None)
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
with scopes_disabled():
o = Order.objects.get(code=resp.data['code'])
p = o.positions.first()
assert p.voucher == voucher
assert p.price == Decimal("0.00")
@pytest.mark.django_db
def test_order_create_with_voucher_consumed_from_cart(token_client, organizer, event, item, quota, question):
with scopes_disabled():