Prevent events from being set to None through the API

This commit is contained in:
Raphael Michel
2019-02-13 17:28:00 +01:00
parent 72a2d0da35
commit abb770a8e7
2 changed files with 5 additions and 2 deletions

View File

@@ -1,3 +1,4 @@
from django.conf import settings
from django.core.exceptions import ValidationError
from django.db import transaction
from django.utils.functional import cached_property
@@ -108,7 +109,7 @@ class EventSerializer(I18nAwareModelSerializer):
@transaction.atomic
def create(self, validated_data):
meta_data = validated_data.pop('meta_data', None)
plugins = validated_data.pop('plugins', None)
plugins = validated_data.pop('plugins', settings.PRETIX_PLUGINS_DEFAULT.split(','))
event = super().create(validated_data)
# Meta data
@@ -122,6 +123,7 @@ class EventSerializer(I18nAwareModelSerializer):
# Plugins
if plugins is not None:
event.set_active_plugins(plugins)
event.save(update_fields=['plugins'])
return event

View File

@@ -3,6 +3,7 @@ from decimal import Decimal
from unittest import mock
import pytest
from django.conf import settings
from django_countries.fields import Country
from pytz import UTC
@@ -150,7 +151,6 @@ def test_event_list(token_client, organizer, event):
def test_event_get(token_client, organizer, event):
resp = token_client.get('/api/v1/organizers/{}/events/{}/'.format(organizer.slug, event.slug))
assert resp.status_code == 200
print(resp.data)
assert TEST_EVENT_RES == resp.data
@@ -183,6 +183,7 @@ def test_event_create(token_client, organizer, event, meta_prop):
assert organizer.events.get(slug="2030").meta_values.filter(
property__name=meta_prop.name, value="Conference"
).exists()
assert organizer.events.get(slug="2030").plugins == settings.PRETIX_PLUGINS_DEFAULT
resp = token_client.post(
'/api/v1/organizers/{}/events/'.format(organizer.slug),