improve tests mixing ops from different organizers

This commit is contained in:
Richard Schreiber
2026-04-28 15:55:11 +02:00
parent 6947f05ea1
commit 5585e8cc4f

View File

@@ -356,7 +356,7 @@ def test_medium_create(token_client, organizer, giftcard):
@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():
o = Order.objects.create(
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"))
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)
# wrong organizer for orderposition
# wrong orderposition for organizer
payload['linked_orderposition'] = org2_op.pk
resp = token_client.post(
'/api/v1/organizers/{}/reusablemedia/'.format(organizer2.slug),
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
payload,
format='json'
)
assert resp.status_code == 403
assert resp.status_code == 400
# unkown orderposition
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)
payload['identifier'] = "FOOBAZ"
payload['linked_orderpositions'] = [op.pk, op2.pk]
payload['linked_orderpositions'] = [op.pk, org2_op.pk]
resp = token_client.post(
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
payload,
@@ -418,13 +429,22 @@ def test_medium_create_linked_orderposition(token_client, organizer, organizer2,
)
assert resp.status_code == 400
# multiple linked_orderpositions
# multiple linked_orderpositions, but from different organizers
del payload['linked_orderposition']
resp = token_client.post(
'/api/v1/organizers/{}/reusablemedia/'.format(organizer.slug),
payload,
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
with scopes_disabled():
m = ReusableMedium.objects.get(pk=resp.data['id'])