mirror of
https://github.com/pretix/pretix.git
synced 2026-10-01 19:14:43 +00:00
Fix test failures
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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),
|
||||
{
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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), {
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user