mirror of
https://github.com/pretix/pretix.git
synced 2026-05-18 17:24:03 +00:00
improve tests mixing ops from different organizers
This commit is contained in:
@@ -356,7 +356,7 @@ def test_medium_create(token_client, organizer, giftcard):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_medium_create_linked_orderposition(token_client, organizer, organizer2, event, medium):
|
def test_medium_create_linked_orderposition(token_client, organizer, event, org2_event, medium):
|
||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
o = Order.objects.create(
|
o = Order.objects.create(
|
||||||
code='FOO', event=event, email='dummy@dummy.test',
|
code='FOO', event=event, email='dummy@dummy.test',
|
||||||
@@ -369,15 +369,26 @@ def test_medium_create_linked_orderposition(token_client, organizer, organizer2,
|
|||||||
op = o.positions.create(item=ticket, price=Decimal("14"))
|
op = o.positions.create(item=ticket, price=Decimal("14"))
|
||||||
op2 = o.positions.create(item=ticket, price=Decimal("14"))
|
op2 = o.positions.create(item=ticket, price=Decimal("14"))
|
||||||
|
|
||||||
|
org2_o = Order.objects.create(
|
||||||
|
code='FOO', event=org2_event, email='dummy@dummy.test',
|
||||||
|
status=Order.STATUS_PENDING, datetime=now(), expires=now() + timedelta(days=10),
|
||||||
|
sales_channel=org2_event.organizer.sales_channels.get(identifier="web"),
|
||||||
|
total=14, locale='en'
|
||||||
|
)
|
||||||
|
org2_ticket = org2_event.items.create(name='Early-bird ticket', category=None, default_price=23, admission=True,
|
||||||
|
personalized=True)
|
||||||
|
org2_op = org2_o.positions.create(item=org2_ticket, price=Decimal("14"))
|
||||||
|
|
||||||
payload = dict(TEST_MEDIUM_CREATE_PAYLOAD)
|
payload = dict(TEST_MEDIUM_CREATE_PAYLOAD)
|
||||||
|
|
||||||
# wrong organizer for orderposition
|
# wrong orderposition for organizer
|
||||||
|
payload['linked_orderposition'] = org2_op.pk
|
||||||
resp = token_client.post(
|
resp = token_client.post(
|
||||||
'/api/v1/organizers/{}/reusablemedia/'.format(organizer2.slug),
|
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
|
||||||
payload,
|
payload,
|
||||||
format='json'
|
format='json'
|
||||||
)
|
)
|
||||||
assert resp.status_code == 403
|
assert resp.status_code == 400
|
||||||
|
|
||||||
# unkown orderposition
|
# unkown orderposition
|
||||||
payload['linked_orderposition'] = "unknown"
|
payload['linked_orderposition'] = "unknown"
|
||||||
@@ -410,7 +421,7 @@ def test_medium_create_linked_orderposition(token_client, organizer, organizer2,
|
|||||||
|
|
||||||
# create with linked_orderposition and linked_orderpositions (not allowed)
|
# create with linked_orderposition and linked_orderpositions (not allowed)
|
||||||
payload['identifier'] = "FOOBAZ"
|
payload['identifier'] = "FOOBAZ"
|
||||||
payload['linked_orderpositions'] = [op.pk, op2.pk]
|
payload['linked_orderpositions'] = [op.pk, org2_op.pk]
|
||||||
resp = token_client.post(
|
resp = token_client.post(
|
||||||
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
|
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
|
||||||
payload,
|
payload,
|
||||||
@@ -418,13 +429,22 @@ def test_medium_create_linked_orderposition(token_client, organizer, organizer2,
|
|||||||
)
|
)
|
||||||
assert resp.status_code == 400
|
assert resp.status_code == 400
|
||||||
|
|
||||||
# multiple linked_orderpositions
|
# multiple linked_orderpositions, but from different organizers
|
||||||
del payload['linked_orderposition']
|
del payload['linked_orderposition']
|
||||||
resp = token_client.post(
|
resp = token_client.post(
|
||||||
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
|
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
|
||||||
payload,
|
payload,
|
||||||
format='json'
|
format='json'
|
||||||
)
|
)
|
||||||
|
assert resp.status_code == 400
|
||||||
|
|
||||||
|
# multiple linked_orderpositions from same organizer
|
||||||
|
payload['linked_orderpositions'] = [op.pk, op2.pk]
|
||||||
|
resp = token_client.post(
|
||||||
|
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
|
||||||
|
payload,
|
||||||
|
format='json'
|
||||||
|
)
|
||||||
assert resp.status_code == 201
|
assert resp.status_code == 201
|
||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
m = ReusableMedium.objects.get(pk=resp.data['id'])
|
m = ReusableMedium.objects.get(pk=resp.data['id'])
|
||||||
|
|||||||
Reference in New Issue
Block a user