From ecdd68f43b3bd29bc4805bb53c2e86b4bd896943 Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Wed, 7 Jan 2026 09:47:24 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(backend)=20delete=20file=20f?= =?UTF-8?q?or=20not=20ready=20items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The process_item_deletion task was deleting the file on storage only when the upload_state was ready. We have case, in the upload_ended viewset action where we want to delete it before changing the upload_state status. We decided to not check the status anymore. --- src/backend/core/tasks/item.py | 5 +---- .../core/tests/tasks/items/test_process_deletion.py | 12 ------------ 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/src/backend/core/tasks/item.py b/src/backend/core/tasks/item.py index d6c6d81d..1810b5c6 100644 --- a/src/backend/core/tasks/item.py +++ b/src/backend/core/tasks/item.py @@ -34,10 +34,7 @@ def process_item_deletion(item_id): logger.error("To process an item deletion, it must be hard deleted first.") return - if ( - item.type == ItemTypeChoices.FILE - and item.upload_state == ItemUploadStateChoices.READY - ): + if item.type == ItemTypeChoices.FILE: logger.info("Deleting file %s", item.file_key) default_storage.delete(item.file_key) diff --git a/src/backend/core/tests/tasks/items/test_process_deletion.py b/src/backend/core/tests/tasks/items/test_process_deletion.py index 09270979..b5768877 100644 --- a/src/backend/core/tests/tasks/items/test_process_deletion.py +++ b/src/backend/core/tests/tasks/items/test_process_deletion.py @@ -36,22 +36,10 @@ def test_process_item_deletion_item_does_not_exist(caplog): assert "Item 1 does not exist" in caplog.records[0].message -def test_process_item_deletion_item_file_is_not_ready(): - """Test the process deletion task when the item file is not ready.""" - item = factories.ItemFactory(type=models.ItemTypeChoices.FILE) - item.soft_delete() - item.hard_delete() - - process_item_deletion(item.id) - - assert not models.Item.objects.filter(id=item.id).exists() - - def test_process_item_deletion_item_file_is_ready(): """Test the process deletion task when the item file is ready.""" item = factories.ItemFactory( type=models.ItemTypeChoices.FILE, - update_upload_state=models.ItemUploadStateChoices.READY, filename="foo.txt", ) item.soft_delete()