Skip to content

Commit 936f8c0

Browse files
committed
✅ [#93] Test retrying deletion
1 parent cd10e50 commit 936f8c0

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

backend/src/openarchiefbeheer/destruction/models.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,7 @@ def process_deletion(self) -> None:
274274
store = ResultStore(store=self)
275275
store.clear_traceback()
276276

277-
delete_zaak_and_related_objects(
278-
zaak=zaak, result_store=store
279-
)
277+
delete_zaak_and_related_objects(zaak=zaak, result_store=store)
280278

281279
zaak.delete()
282280

backend/src/openarchiefbeheer/destruction/tests/test_tasks.py

+33
Original file line numberDiff line numberDiff line change
@@ -302,3 +302,36 @@ def test_item_skipped_if_already_succeeded(self, logs):
302302
),
303303
logs[0],
304304
)
305+
306+
@override_settings(CELERY_TASK_ALWAYS_EAGER=True)
307+
def test_processing_list_with_failed_item(self):
308+
destruction_list = DestructionListFactory.create(
309+
status=ListStatus.ready_to_delete, processing_status=InternalStatus.failed
310+
)
311+
zaak = ZaakFactory.create()
312+
DestructionListItemFactory.create(
313+
zaak=zaak.url,
314+
destruction_list=destruction_list,
315+
processing_status=InternalStatus.failed,
316+
internal_results={"traceback": "Some traceback"},
317+
)
318+
319+
with (
320+
patch(
321+
"openarchiefbeheer.destruction.models.delete_zaak_and_related_objects",
322+
),
323+
):
324+
delete_destruction_list(destruction_list)
325+
326+
destruction_list.refresh_from_db()
327+
328+
self.assertEqual(destruction_list.processing_status, InternalStatus.succeeded)
329+
self.assertEqual(destruction_list.status, ListStatus.deleted)
330+
331+
item = destruction_list.items.first()
332+
333+
self.assertEqual(item.processing_status, InternalStatus.succeeded)
334+
self.assertEqual(
335+
item.internal_results,
336+
{"deleted_resources": {}, "resources_to_delete": {}, "traceback": ""},
337+
)

backend/src/openarchiefbeheer/zaken/utils.py

+1
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ def delete_object_and_store_result(
152152
response.raise_for_status()
153153
except HTTPError as exc:
154154
if not http_error_handler:
155+
store.add_traceback(traceback.format_exc())
155156
raise exc
156157
return http_error_handler(exc)
157158
except Exception as exc:

0 commit comments

Comments
 (0)