mirror of
https://github.com/pretix/pretix.git
synced 2026-09-15 16:34:42 +00:00
API: Enforce that Item.default_price can't be null
This commit is contained in:
@@ -184,6 +184,8 @@ class ItemSerializer(I18nAwareModelSerializer):
|
|||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
self.fields['default_price'].allow_null = False
|
||||||
|
self.fields['default_price'].required = True
|
||||||
if not self.read_only:
|
if not self.read_only:
|
||||||
self.fields['require_membership_types'].queryset = self.context['event'].organizer.membership_types.all()
|
self.fields['require_membership_types'].queryset = self.context['event'].organizer.membership_types.all()
|
||||||
self.fields['grant_membership_type'].queryset = self.context['event'].organizer.membership_types.all()
|
self.fields['grant_membership_type'].queryset = self.context['event'].organizer.membership_types.all()
|
||||||
|
|||||||
@@ -476,6 +476,39 @@ def test_item_create(token_client, organizer, event, item, category, taxrule, me
|
|||||||
assert Item.objects.get(pk=resp.data['id']).require_membership_types.count() == 1
|
assert Item.objects.get(pk=resp.data['id']).require_membership_types.count() == 1
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_item_create_price_required(token_client, organizer, event, item, category, taxrule):
|
||||||
|
resp = token_client.post(
|
||||||
|
'/api/v1/organizers/{}/events/{}/items/'.format(organizer.slug, event.slug),
|
||||||
|
{
|
||||||
|
"category": category.pk,
|
||||||
|
"name": {
|
||||||
|
"en": "Ticket"
|
||||||
|
},
|
||||||
|
"active": True,
|
||||||
|
"description": None,
|
||||||
|
},
|
||||||
|
format='json'
|
||||||
|
)
|
||||||
|
assert resp.status_code == 400
|
||||||
|
assert resp.data == {"default_price": ["This field is required."]}
|
||||||
|
resp = token_client.post(
|
||||||
|
'/api/v1/organizers/{}/events/{}/items/'.format(organizer.slug, event.slug),
|
||||||
|
{
|
||||||
|
"category": category.pk,
|
||||||
|
"name": {
|
||||||
|
"en": "Ticket"
|
||||||
|
},
|
||||||
|
"active": True,
|
||||||
|
"description": None,
|
||||||
|
"default_price": None,
|
||||||
|
},
|
||||||
|
format='json'
|
||||||
|
)
|
||||||
|
assert resp.status_code == 400
|
||||||
|
assert resp.data == {"default_price": ["This field may not be null."]}
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_item_create_with_variation(token_client, organizer, event, item, category, taxrule):
|
def test_item_create_with_variation(token_client, organizer, event, item, category, taxrule):
|
||||||
resp = token_client.post(
|
resp = token_client.post(
|
||||||
|
|||||||
Reference in New Issue
Block a user