Skip to content

Commit b6f972c

Browse files
committed
✅ [#504] Add tests general info table
1 parent ca5ed02 commit b6f972c

File tree

2 files changed

+235
-14
lines changed

2 files changed

+235
-14
lines changed

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

+181-7
Original file line numberDiff line numberDiff line change
@@ -299,9 +299,20 @@ def test_has_short_review_process(self):
299299
self.assertTrue(has_short_review_process)
300300

301301
def test_generate_destruction_report(self):
302-
destruction_list = DestructionListFactory.create(status=ListStatus.deleted)
302+
record_manager = UserFactory.create(
303+
first_name="John",
304+
last_name="Doe",
305+
username="jdoe1",
306+
post__can_start_destruction=True,
307+
)
308+
destruction_list = DestructionListFactory.create(
309+
status=ListStatus.deleted,
310+
end=datetime(2024, 12, 2, 12, tzinfo=timezone.get_default_timezone()),
311+
)
312+
logevent.destruction_list_deletion_triggered(destruction_list, record_manager)
303313
DestructionListItemFactory.create(
304314
processing_status=InternalStatus.succeeded,
315+
status=ListItemStatus.suggested,
305316
destruction_list=destruction_list,
306317
extra_zaak_data={
307318
"url": "http://zaken.nl/api/v1/zaken/111-111-111",
@@ -328,6 +339,7 @@ def test_generate_destruction_report(self):
328339
)
329340
DestructionListItemFactory.create(
330341
processing_status=InternalStatus.succeeded,
342+
status=ListItemStatus.suggested,
331343
destruction_list=destruction_list,
332344
extra_zaak_data={
333345
"url": "http://zaken.nl/api/v1/zaken/111-111-222",
@@ -381,9 +393,27 @@ def test_generate_destruction_report(self):
381393
sheet_deleted_zaken = wb[gettext("Deleted zaken")]
382394
rows = list(sheet_deleted_zaken.iter_rows(values_only=True))
383395

384-
self.assertEqual(len(rows), 4)
396+
self.assertEqual(len(rows), 7)
397+
self.assertEqual(
398+
rows[0][:4],
399+
(
400+
gettext("Date/Time of deletion"),
401+
gettext("User who started the deletion"),
402+
gettext("Groups"),
403+
gettext("Number of deleted cases"),
404+
),
405+
)
406+
self.assertEqual(
407+
rows[1][:4],
408+
(
409+
"2024-12-02 12:00+01:00",
410+
"John Doe (jdoe1)",
411+
None,
412+
3,
413+
),
414+
)
385415
self.assertEqual(
386-
rows[0],
416+
rows[3],
387417
(
388418
"Zaaktype UUID",
389419
"Zaaktype Omschrijving",
@@ -396,7 +426,7 @@ def test_generate_destruction_report(self):
396426
),
397427
)
398428
self.assertEqual(
399-
rows[1],
429+
rows[4],
400430
(
401431
"111-111-111",
402432
"Tralala zaaktype",
@@ -409,7 +439,7 @@ def test_generate_destruction_report(self):
409439
),
410440
)
411441
self.assertEqual(
412-
rows[2],
442+
rows[5],
413443
(
414444
"111-111-111",
415445
"Tralala zaaktype",
@@ -422,7 +452,7 @@ def test_generate_destruction_report(self):
422452
),
423453
)
424454
self.assertEqual(
425-
rows[3],
455+
rows[6],
426456
(
427457
"111-111-222",
428458
"Tralala zaaktype",
@@ -435,6 +465,148 @@ def test_generate_destruction_report(self):
435465
),
436466
)
437467

468+
def test_generate_destruction_report_with_cases_excluded_from_list(self):
469+
destruction_list = DestructionListFactory.create(
470+
status=ListStatus.deleted,
471+
end=datetime(2024, 12, 2, 12, tzinfo=timezone.get_default_timezone()),
472+
)
473+
DestructionListItemFactory.create(
474+
processing_status=InternalStatus.succeeded,
475+
status=ListItemStatus.suggested,
476+
destruction_list=destruction_list,
477+
extra_zaak_data={
478+
"url": "http://zaken.nl/api/v1/zaken/111-111-111",
479+
"omschrijving": "Test description 3",
480+
"identificatie": "ZAAK-01",
481+
"startdatum": "2020-01-03",
482+
"einddatum": "2022-01-03",
483+
"resultaat": None,
484+
"zaaktype": {
485+
"url": "http://catalogi.nl/api/v1/zaaktypen/111-111-222",
486+
"omschrijving": "Tralala zaaktype",
487+
"selectielijst_procestype": {
488+
"naam": "Instellen en inrichten organisatie",
489+
},
490+
},
491+
},
492+
)
493+
DestructionListItemFactory.create(
494+
processing_status=InternalStatus.new,
495+
status=ListItemStatus.removed, # Case no longer in destruction list
496+
destruction_list=destruction_list,
497+
extra_zaak_data={
498+
"url": "http://zaken.nl/api/v1/zaken/222-222-222",
499+
"omschrijving": "Test description 3",
500+
"identificatie": "ZAAK-02",
501+
"startdatum": "2020-01-03",
502+
"einddatum": "2022-01-03",
503+
"resultaat": None,
504+
"zaaktype": {
505+
"url": "http://catalogi.nl/api/v1/zaaktypen/111-111-222",
506+
"omschrijving": "Tralala zaaktype",
507+
"selectielijst_procestype": {
508+
"naam": "Instellen en inrichten organisatie",
509+
},
510+
},
511+
},
512+
)
513+
DestructionListItemFactory.create(
514+
processing_status=InternalStatus.succeeded,
515+
destruction_list=destruction_list,
516+
status=ListItemStatus.suggested,
517+
extra_zaak_data={
518+
"url": "http://zaken.nl/api/v1/zaken/333-333-333",
519+
"omschrijving": "Test description 3",
520+
"identificatie": "ZAAK-03",
521+
"startdatum": "2020-01-03",
522+
"einddatum": "2022-01-03",
523+
"resultaat": None,
524+
"zaaktype": {
525+
"url": "http://catalogi.nl/api/v1/zaaktypen/111-111-222",
526+
"omschrijving": "Tralala zaaktype",
527+
"selectielijst_procestype": {
528+
"naam": "Instellen en inrichten organisatie",
529+
},
530+
},
531+
},
532+
)
533+
534+
destruction_list.generate_destruction_report()
535+
536+
destruction_list.refresh_from_db()
537+
538+
wb = load_workbook(filename=destruction_list.destruction_report.path)
539+
sheet_deleted_zaken = wb[gettext("Deleted zaken")]
540+
rows = list(sheet_deleted_zaken.iter_rows(values_only=True))
541+
542+
self.assertEqual(len(rows), 6)
543+
self.assertEqual(
544+
rows[3],
545+
(
546+
"Zaaktype UUID",
547+
"Zaaktype Omschrijving",
548+
"Zaaktype Identificatie",
549+
"Zaak Identificatie",
550+
"Zaak Startdatum",
551+
"Zaak Einddatum",
552+
"Selectielijst Procestype",
553+
"Resultaat",
554+
),
555+
)
556+
deleted_zaken_ids = sorted([rows[4][3], rows[5][3]])
557+
self.assertEqual(
558+
deleted_zaken_ids,
559+
["ZAAK-01", "ZAAK-03"],
560+
)
561+
562+
def test_generate_destruction_report_with_multiple_logs(self):
563+
record_manager1 = UserFactory.create(
564+
first_name="John",
565+
last_name="Doe",
566+
username="jdoe1",
567+
post__can_start_destruction=True,
568+
)
569+
record_manager2 = UserFactory.create(
570+
first_name="Jane",
571+
last_name="Doe",
572+
username="jdoe2",
573+
post__can_start_destruction=True,
574+
)
575+
destruction_list = DestructionListFactory.create(
576+
status=ListStatus.deleted,
577+
end=datetime(2024, 12, 2, 12, tzinfo=timezone.get_default_timezone()),
578+
)
579+
logevent.destruction_list_deletion_triggered(destruction_list, record_manager1)
580+
logevent.destruction_list_deletion_triggered(destruction_list, record_manager2)
581+
582+
destruction_list.generate_destruction_report()
583+
584+
destruction_list.refresh_from_db()
585+
586+
wb = load_workbook(filename=destruction_list.destruction_report.path)
587+
sheet_deleted_zaken = wb[gettext("Deleted zaken")]
588+
rows = list(sheet_deleted_zaken.iter_rows(values_only=True))
589+
590+
self.assertEqual(len(rows), 4)
591+
self.assertEqual(
592+
rows[0][:4],
593+
(
594+
gettext("Date/Time of deletion"),
595+
gettext("User who started the deletion"),
596+
gettext("Groups"),
597+
gettext("Number of deleted cases"),
598+
),
599+
)
600+
self.assertEqual(
601+
rows[1][:4],
602+
(
603+
"2024-12-02 12:00+01:00",
604+
"Jane Doe (jdoe2)",
605+
None,
606+
0,
607+
),
608+
)
609+
438610
def test_generate_destruction_report_review_process(self):
439611
author = UserFactory.create(post__can_start_destruction=True)
440612
reviewer = UserFactory.create(
@@ -455,7 +627,9 @@ def test_generate_destruction_report_review_process(self):
455627
archivist.groups.add(archivist_group)
456628

457629
destruction_list = DestructionListFactory.create(
458-
status=ListStatus.deleted, author=author
630+
status=ListStatus.deleted,
631+
author=author,
632+
end=datetime(2024, 12, 2, 12, tzinfo=timezone.get_default_timezone()),
459633
)
460634

461635
review_reviewer_rejected = DestructionListReviewFactory.create(

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

+54-7
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
from openarchiefbeheer.accounts.tests.factories import UserFactory
2121
from openarchiefbeheer.emails.models import EmailConfig
22+
from openarchiefbeheer.logging import logevent
2223
from openarchiefbeheer.selection.models import SelectionItem
2324
from openarchiefbeheer.zaken.models import Zaak
2425
from openarchiefbeheer.zaken.tests.factories import ZaakFactory
@@ -358,9 +359,16 @@ def test_aborts_if_not_ready_to_delete(self, logs):
358359

359360
@override_settings(CELERY_TASK_ALWAYS_EAGER=True)
360361
def test_process_list(self):
362+
record_manager = UserFactory.create(
363+
first_name="John",
364+
last_name="Doe",
365+
username="jdoe1",
366+
post__can_start_destruction=True,
367+
)
361368
destruction_list = DestructionListFactory.create(
362-
status=ListStatus.ready_to_delete
369+
status=ListStatus.ready_to_delete, author=record_manager
363370
)
371+
logevent.destruction_list_deletion_triggered(destruction_list, record_manager)
364372

365373
item1 = DestructionListItemFactory.create(
366374
with_zaak=True,
@@ -371,6 +379,7 @@ def test_process_list(self):
371379
zaak__einddatum=date(2022, 1, 1),
372380
zaak__resultaat="http://zaken.nl/api/v1/resultaten/111-111-111",
373381
destruction_list=destruction_list,
382+
status=ListItemStatus.suggested,
374383
)
375384
item2 = DestructionListItemFactory.create(
376385
with_zaak=True,
@@ -381,6 +390,7 @@ def test_process_list(self):
381390
zaak__einddatum=date(2022, 1, 2),
382391
zaak__resultaat="http://zaken.nl/api/v1/resultaten/111-111-222",
383392
destruction_list=destruction_list,
393+
status=ListItemStatus.suggested,
384394
)
385395

386396
with (
@@ -394,6 +404,7 @@ def test_process_list(self):
394404
"openarchiefbeheer.destruction.utils.create_eio_destruction_report"
395405
) as m_eio,
396406
patch("openarchiefbeheer.destruction.utils.attach_report_to_zaak") as m_zio,
407+
freeze_time("2024-12-02T12:00:00+01:00"),
397408
):
398409
delete_destruction_list(destruction_list)
399410

@@ -445,9 +456,28 @@ def test_process_list(self):
445456
sheet_deleted_zaken = wb[_("Deleted zaken")]
446457
rows = list(sheet_deleted_zaken.iter_rows(values_only=True))
447458

448-
self.assertEqual(len(rows), 3)
459+
self.assertEqual(len(rows), 6)
460+
self.assertEqual(
461+
rows[0][:4],
462+
(
463+
_("Date/Time of deletion"),
464+
_("User who started the deletion"),
465+
_("Groups"),
466+
_("Number of deleted cases"),
467+
),
468+
)
469+
self.assertEqual(
470+
rows[1][:4],
471+
(
472+
"2024-12-02 12:00+01:00",
473+
"John Doe (jdoe1)",
474+
None,
475+
2,
476+
),
477+
)
478+
449479
self.assertEqual(
450-
rows[1],
480+
rows[4],
451481
(
452482
"111-111-111",
453483
"Aangifte behandelen",
@@ -460,7 +490,7 @@ def test_process_list(self):
460490
),
461491
)
462492
self.assertEqual(
463-
rows[2],
493+
rows[5],
464494
(
465495
"111-111-111",
466496
"Aangifte behandelen",
@@ -547,10 +577,17 @@ def test_processing_list_with_failed_item(self):
547577
m_zio.assert_called()
548578

549579
def test_complete_and_notify(self):
580+
record_manager = UserFactory.create(
581+
first_name="John",
582+
last_name="Doe",
583+
username="jdoe1",
584+
post__can_start_destruction=True,
585+
)
550586
destruction_list = DestructionListFactory.create(
551587
name="Some destruction list",
552588
processing_status=InternalStatus.processing,
553589
status=ListStatus.ready_to_delete,
590+
author=record_manager,
554591
)
555592
DestructionListItemFactory.create(
556593
processing_status=InternalStatus.succeeded,
@@ -585,6 +622,7 @@ def test_complete_and_notify(self):
585622
)
586623

587624
self.assertIsNone(destruction_list.destruction_report.name)
625+
logevent.destruction_list_deletion_triggered(destruction_list, record_manager)
588626

589627
with (
590628
patch(
@@ -627,9 +665,18 @@ def test_complete_and_notify(self):
627665
sheet_deleted_zaken = wb[_("Deleted zaken")]
628666
rows = list(sheet_deleted_zaken.iter_rows(values_only=True))
629667

630-
self.assertEqual(len(rows), 2)
668+
self.assertEqual(len(rows), 5)
669+
self.assertEqual(
670+
rows[1][:4],
671+
(
672+
"2024-10-09 12:00+02:00",
673+
"John Doe (jdoe1)",
674+
None,
675+
1,
676+
),
677+
)
631678
self.assertEqual(
632-
rows[0],
679+
rows[3],
633680
(
634681
"Zaaktype UUID",
635682
"Zaaktype Omschrijving",
@@ -642,7 +689,7 @@ def test_complete_and_notify(self):
642689
),
643690
)
644691
self.assertEqual(
645-
rows[1],
692+
rows[4],
646693
(
647694
"111-111-111",
648695
"Tralala zaaktype",

0 commit comments

Comments
 (0)