Fix test failures

This commit is contained in:
Raphael Michel
2026-09-23 12:04:58 +02:00
parent 999754f541
commit 450ee7ef44
9 changed files with 22 additions and 58 deletions
-2
View File
@@ -889,7 +889,6 @@ class Item(LoggedModel):
check_quotas = set(getattr(
self, '_subevent_quotas', # Utilize cache in product list
self.quotas.filter(subevent=subevent).select_related('subevent')
if subevent else self.quotas.all()
))
if ignored_quotas:
check_quotas -= set(ignored_quotas)
@@ -1298,7 +1297,6 @@ class ItemVariation(models.Model):
check_quotas = set(getattr(
self, '_subevent_quotas', # Utilize cache in product list
self.quotas.filter(subevent=subevent).select_related('subevent')
if subevent else self.quotas.all()
))
if ignored_quotas:
check_quotas -= set(ignored_quotas)
-8
View File
@@ -293,14 +293,6 @@ def test_cartpos_cart_id_optional(token_client, organizer, event, item, quota, q
def test_cartpos_create_subevent_validation(token_client, organizer, event, item, subevent, subevent2, quota, question):
res = copy.deepcopy(CARTPOS_CREATE_PAYLOAD)
res['item'] = item.pk
resp = token_client.post(
'/api/v1/organizers/{}/events/{}/cartpositions/'.format(
organizer.slug, event.slug
), format='json', data=res
)
assert resp.status_code == 400
assert resp.data == {'subevent': ['You need to set a subevent.']}
res['subevent'] = subevent2.pk
resp = token_client.post(
'/api/v1/organizers/{}/events/{}/cartpositions/'.format(
-14
View File
@@ -2323,20 +2323,6 @@ def test_quota_create_with_subevent(token_client, organizer, event, event3, item
)
assert resp.status_code == 201
resp = token_client.post(
'/api/v1/organizers/{}/events/{}/quotas/'.format(organizer.slug, event.slug),
{
"name": "Ticket Quota",
"size": 200,
"items": [item.pk],
"variations": [variations[0].pk],
"subevent": None
},
format='json'
)
assert resp.status_code == 400
assert resp.content.decode() == '{"non_field_errors":["Subevent cannot be null for event series."]}'
resp = token_client.post(
'/api/v1/organizers/{}/events/{}/quotas/'.format(organizer.slug, event.slug),
{
-17
View File
@@ -1859,23 +1859,6 @@ def test_position_add_subevent(token_client, organizer, event, order, quota, ite
assert op.subevent == subevent
@pytest.mark.django_db
def test_position_add_subevent_required(token_client, organizer, event, order, quota, item, subevent):
with scopes_disabled():
assert order.positions.count() == 1
payload = {
'order': order.code,
'item': item.pk,
}
resp = token_client.post(
'/api/v1/organizers/{}/events/{}/orderpositions/'.format(
organizer.slug, event.slug,
), format='json', data=payload
)
assert resp.status_code == 400
assert 'subevent' in str(resp.data)
@pytest.mark.django_db
def test_position_add_quota_empty(token_client, organizer, event, order, quota, item):
with scopes_disabled():
-8
View File
@@ -1164,14 +1164,6 @@ def test_order_create_subevent_validation(token_client, organizer, event, item,
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
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 == {'positions': [{'subevent': ['You need to set a subevent.']}]}
res['positions'][0]['subevent'] = subevent2.pk
resp = token_client.post(
'/api/v1/organizers/{}/events/{}/orders/'.format(
+18 -2
View File
@@ -638,8 +638,10 @@ class QuotaTestCase(BaseQuotaTestCase):
self.event.save()
se1 = self.event.subevents.create(date_from=now(), name="SE 1")
se2 = self.event.subevents.create(date_from=now(), name="SE 2")
q0 = self.event.quotas.create(name="Q0", subevent=None, size=50)
q1 = self.event.quotas.create(name="Q1", subevent=se1, size=50)
q2 = self.event.quotas.create(name="Q2", subevent=se2, size=50)
q0.items.add(self.item1)
q1.items.add(self.item1)
q2.items.add(self.item1)
@@ -659,11 +661,17 @@ class QuotaTestCase(BaseQuotaTestCase):
OrderPosition.objects.create(order=order, item=self.item1, subevent=se1, price=2)
OrderPosition.objects.create(order=order, item=self.item1, subevent=se1, price=2)
OrderPosition.objects.create(order=order, item=self.item1, subevent=se2, price=2)
order = Order.objects.create(event=self.event, status=Order.STATUS_PENDING,
sales_channel=self.event.organizer.sales_channels.get(identifier="web"),
expires=now() + timedelta(days=3),
total=2)
OrderPosition.objects.create(order=order, item=self.item1, subevent=None, price=2)
Voucher.objects.create(item=self.item1, event=self.event, valid_until=now() + timedelta(days=5),
block_quota=True, max_usages=6, subevent=se1)
Voucher.objects.create(item=self.item1, event=self.event, valid_until=now() + timedelta(days=5),
block_quota=True, max_usages=4, subevent=se2)
# TODO how to deal with subevent=None?
for i in range(8):
CartPosition.objects.create(event=self.event, item=self.item1, price=2, subevent=se1,
@@ -673,6 +681,10 @@ class QuotaTestCase(BaseQuotaTestCase):
CartPosition.objects.create(event=self.event, item=self.item1, price=2, subevent=se2,
expires=now() + timedelta(days=3))
for i in range(2):
CartPosition.objects.create(event=self.event, item=self.item1, price=2, subevent=None,
expires=now() + timedelta(days=3))
for i in range(16):
WaitingListEntry.objects.create(
event=self.event, item=self.item1, email='foo@bar.com', subevent=se1
@@ -683,11 +695,15 @@ class QuotaTestCase(BaseQuotaTestCase):
event=self.event, item=self.item1, email='foo@bar.com', subevent=se2
)
with self.assertRaises(TypeError):
self.item1.check_quotas()
for i in range(6):
WaitingListEntry.objects.create(
event=self.event, item=self.item1, email='foo@bar.com', subevent=None
)
self.assertEqual(self.item1.check_quotas(subevent=se1), (Quota.AVAILABILITY_OK, 50 - 5 - 6 - 8 - 16))
self.assertEqual(self.item1.check_quotas(subevent=se2), (Quota.AVAILABILITY_OK, 50 - 2 - 4 - 5 - 13))
self.assertEqual(self.item1.check_quotas(subevent=None), (Quota.AVAILABILITY_OK, 50 - 1 - 2 - 6))
self.assertEqual(q0.availability(), (Quota.AVAILABILITY_OK, 50 - 1 - 2 - 6))
self.assertEqual(q1.availability(), (Quota.AVAILABILITY_OK, 50 - 5 - 6 - 8 - 16))
self.assertEqual(q2.availability(), (Quota.AVAILABILITY_OK, 50 - 2 - 4 - 5 - 13))
self.event.has_subevents = False
-7
View File
@@ -2466,13 +2466,6 @@ class OrderChangeManagerTests(BaseOrderChangeManagerTestCase, TestCase):
with self.assertRaises(OrderError):
self.ocm.add_position(self.shirt, None, Decimal('13.00'), None)
@classscope(attr='o')
def test_add_item_subevent_required(self):
self.event.has_subevents = True
self.event.save()
with self.assertRaises(OrderError):
self.ocm.add_position(self.ticket, None, None, None)
@classscope(attr='o')
def test_add_item_subevent_price(self):
self.event.has_subevents = True
+2
View File
@@ -323,6 +323,8 @@ class CartTest(CartTestMixin, TestCase):
se = self.event.subevents.create(name='Foo', date_from=now(), active=True)
self.quota_tickets.subevent = se
self.quota_tickets.save()
self.quota_all.subevent = se
self.quota_all.save()
q = se.quotas.create(name="foo", size=None, event=self.event)
q.items.add(self.ticket)
self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), {
+2
View File
@@ -1274,6 +1274,8 @@ class WaitingListTest(EventTestMixin, SoupTest):
self.event.save()
with scopes_disabled():
se1 = self.event.subevents.create(name="Foo", date_from=now(), active=False)
self.q.subevent = se1
self.q.save()
response = self.client.get(
'/%s/%s/waitinglist/?item=%d' % (self.orga.slug, self.event.slug, self.item.pk)
)