diff --git a/src/pretix/api/views/item.py b/src/pretix/api/views/item.py index fe31f3a93b..d9699a5b63 100644 --- a/src/pretix/api/views/item.py +++ b/src/pretix/api/views/item.py @@ -83,6 +83,7 @@ class ItemViewSet(ConditionalListView, viewsets.ModelViewSet): user=self.request.user, auth=self.request.auth, ) + self.get_object().cartposition_set.all().delete() super().perform_destroy(instance) diff --git a/src/tests/api/test_items.py b/src/tests/api/test_items.py index 6a382c1fd7..ab7a1aa7a8 100644 --- a/src/tests/api/test_items.py +++ b/src/tests/api/test_items.py @@ -736,10 +736,10 @@ def test_items_with_order_position_not_delete(token_client, organizer, event, it @pytest.mark.django_db -def test_items_with_cart_position_not_delete(token_client, organizer, event, item, cart_position): +def test_items_with_cart_position_delete(token_client, organizer, event, item, cart_position): resp = token_client.delete('/api/v1/organizers/{}/events/{}/items/{}/'.format(organizer.slug, event.slug, item.pk)) - assert resp.status_code == 403 - assert event.items.filter(pk=item.id).exists() + assert resp.status_code == 204 + assert not event.items.filter(pk=item.id).exists() @pytest.fixture