diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py index 51ab85dd3f..3bd57af24e 100644 --- a/src/pretix/api/serializers/event.py +++ b/src/pretix/api/serializers/event.py @@ -31,10 +31,10 @@ class PluginsField(Field): def to_representation(self, obj): from pretix.base.plugins import get_all_plugins - return [ + return sorted([ p.module for p in get_all_plugins() if not p.name.startswith('.') and getattr(p, 'visible', True) and p.module in obj.get_plugins() - ] + ]) def to_internal_value(self, data): return { diff --git a/src/tests/api/test_events.py b/src/tests/api/test_events.py index 961b173cf6..be4e9d2919 100644 --- a/src/tests/api/test_events.py +++ b/src/tests/api/test_events.py @@ -89,10 +89,10 @@ TEST_EVENT_RES = { "slug": "dummy", "has_subevents": False, "meta_data": {"type": "Conference"}, - 'plugins': { + 'plugins': [ 'pretix.plugins.banktransfer', 'pretix.plugins.ticketoutputpdf' - } + ] } @@ -573,7 +573,7 @@ def test_event_update_plugins(token_client, organizer, event, free_item, free_qu format='json' ) assert resp.status_code == 200 - assert resp.data.get('plugins') == { + assert set(resp.data.get('plugins')) == { "pretix.plugins.ticketoutputpdf", "pretix.plugins.pretixdroid" } @@ -588,9 +588,9 @@ def test_event_update_plugins(token_client, organizer, event, free_item, free_qu format='json' ) assert resp.status_code == 200 - assert resp.data.get('plugins') == { + assert resp.data.get('plugins') == [ "pretix.plugins.banktransfer" - } + ] resp = token_client.patch( '/api/v1/organizers/{}/events/{}/'.format(organizer.slug, event.slug),