diff --git a/src/pretix/base/datasync/datasync.py b/src/pretix/base/datasync/datasync.py index 1af534bd31..be4004c8bd 100644 --- a/src/pretix/base/datasync/datasync.py +++ b/src/pretix/base/datasync/datasync.py @@ -391,7 +391,7 @@ class OutboundSyncProvider: def sync_order(self, order): if not self.should_sync_order(order): logger.debug("Skipping order %r", order) - return + return {} logger.debug("Syncing order %r", order) positions = list( diff --git a/src/tests/base/test_datasync.py b/src/tests/base/test_datasync.py index 1d2f35d0b8..a45db70e66 100644 --- a/src/tests/base/test_datasync.py +++ b/src/tests/base/test_datasync.py @@ -327,6 +327,26 @@ def test_enqueue_order_twice(event): SimpleOrderSync.enqueue_order(order, 'testcase_2nd') +class DoNothingSync(SimpleOrderSync): + + def should_sync_order(self, order): + return False + + +@pytest.mark.django_db +def test_should_not_sync(event): + _register_with_fake_plugin_name(datasync_providers, DoNothingSync, 'testplugin') + + DoNothingSync.fake_api_client = FakeSyncAPI() + + for order in event.orders.order_by("code").all(): + DoNothingSync.enqueue_order(order, 'testcase') + + sync_all() + + assert DoNothingSync.fake_api_client.fake_database == {} + + StaticMappingWithAssociations = namedtuple('StaticMappingWithAssociations', ( 'id', 'pretix_model', 'external_object_type', 'pretix_id_field', 'external_id_field', 'property_mappings', 'association_mappings' ))