From c9839eafaa7eb51f8d7d41974a5376608e21b0a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Freitag?= Date: Wed, 11 Sep 2024 12:21:26 +0200 Subject: [PATCH] Fix exporting job applications without eligibility diag https://itou.sentry.io/issues/5830657683/ --- itou/job_applications/export.py | 1 + .../__snapshots__/test_list_for_siae.ambr | 232 ++++++++++++++++++ tests/www/apply/test_list_for_siae.py | 11 +- 3 files changed, 242 insertions(+), 2 deletions(-) diff --git a/itou/job_applications/export.py b/itou/job_applications/export.py index 4f1d0424f5..8532c33f59 100644 --- a/itou/job_applications/export.py +++ b/itou/job_applications/export.py @@ -76,6 +76,7 @@ def _eligible_to_siae_evaluations(job_application): job_application.approval_id is not None and job_application.to_company.kind in evaluation_enums.EvaluationSiaesKind.Evaluable and job_application.state == JobApplicationState.ACCEPTED + and job_application.eligibility_diagnosis and job_application.eligibility_diagnosis.author_kind == UserKind.EMPLOYER and job_application.eligibility_diagnosis.author_siae_id == job_application.to_company_id and job_application.approval.start_at == job_application.hiring_start_at diff --git a/tests/www/apply/__snapshots__/test_list_for_siae.ambr b/tests/www/apply/__snapshots__/test_list_for_siae.ambr index 82aed4b4e1..9ef579633e 100644 --- a/tests/www/apply/__snapshots__/test_list_for_siae.ambr +++ b/tests/www/apply/__snapshots__/test_list_for_siae.ambr @@ -71,6 +71,238 @@ ]), ]) # --- +# name: test_list_for_siae_exports_download[for_snapshot] + list([ + list([ + 'Civilité candidat', + 'Nom candidat', + 'Prénom candidat', + 'Email candidat', + 'Téléphone candidat', + 'Date de naissance candidat', + 'Ville candidat', + 'Département candidat', + 'Nom structure employeur', + 'Type employeur', + 'Métiers', + 'Source de la candidature', + 'Nom organisation prescripteur', + 'Nom utilisateur prescripteur', + 'Date de la candidature', + 'Statut de la candidature', + 'Dates de début d’embauche', + 'Dates de fin d’embauche', + 'Motifs de refus', + 'Éligibilité IAE validée', + 'Eligible au contrôle', + 'Numéro PASS IAE', + 'Début PASS IAE', + 'Fin PASS IAE', + 'Statut PASS IAE', + ]), + list([ + 'MME', + 'Doe', + 'Jane', + 'jane.doe@test.local', + '0612345678', + '01/01/1990', + 'Rennes', + '35000', + 'Acme inc.', + 'EI', + 'Candidature spontanée', + 'Orienteur', + '', + 'Pierre DUPONT', + '18/08/2024', + 'Nouvelle candidature', + '18/08/2024', + '18/08/2026', + '', + 'oui', + 'non', + '', + '', + '', + '', + ]), + ]) +# --- +# name: test_list_for_siae_exports_download[job_app_kwargs0] + list([ + list([ + 'Civilité candidat', + 'Nom candidat', + 'Prénom candidat', + 'Email candidat', + 'Téléphone candidat', + 'Date de naissance candidat', + 'Ville candidat', + 'Département candidat', + 'Nom structure employeur', + 'Type employeur', + 'Métiers', + 'Source de la candidature', + 'Nom organisation prescripteur', + 'Nom utilisateur prescripteur', + 'Date de la candidature', + 'Statut de la candidature', + 'Dates de début d’embauche', + 'Dates de fin d’embauche', + 'Motifs de refus', + 'Éligibilité IAE validée', + 'Eligible au contrôle', + 'Numéro PASS IAE', + 'Début PASS IAE', + 'Fin PASS IAE', + 'Statut PASS IAE', + ]), + list([ + 'MME', + 'Doe', + 'Jane', + 'jane.doe@test.local', + '0612345678', + '01/01/1990', + 'Rennes', + '35000', + 'Acme inc.', + 'EI', + 'Candidature spontanée', + 'Orienteur', + '', + 'Pierre DUPONT', + '18/08/2024', + 'Nouvelle candidature', + '18/08/2024', + '18/08/2026', + '', + 'oui', + 'non', + '', + '', + '', + '', + ]), + ]) +# --- +# name: test_list_for_siae_exports_download[job_app_kwargs1] + list([ + list([ + 'Civilité candidat', + 'Nom candidat', + 'Prénom candidat', + 'Email candidat', + 'Téléphone candidat', + 'Date de naissance candidat', + 'Ville candidat', + 'Département candidat', + 'Nom structure employeur', + 'Type employeur', + 'Métiers', + 'Source de la candidature', + 'Nom organisation prescripteur', + 'Nom utilisateur prescripteur', + 'Date de la candidature', + 'Statut de la candidature', + 'Dates de début d’embauche', + 'Dates de fin d’embauche', + 'Motifs de refus', + 'Éligibilité IAE validée', + 'Eligible au contrôle', + 'Numéro PASS IAE', + 'Début PASS IAE', + 'Fin PASS IAE', + 'Statut PASS IAE', + ]), + list([ + 'MME', + 'Doe', + 'Jane', + 'jane.doe@test.local', + '0612345678', + '01/01/1990', + 'Rennes', + '35000', + 'Acme inc.', + 'EI', + 'Candidature spontanée', + 'Orienteur', + '', + 'Pierre DUPONT', + '18/08/2024', + 'Nouvelle candidature', + '18/08/2024', + '18/08/2026', + '', + 'non', + 'non', + '', + '', + '', + '', + ]), + ]) +# --- +# name: test_list_for_siae_exports_download[no_eligibility_diag] + list([ + list([ + 'Civilité candidat', + 'Nom candidat', + 'Prénom candidat', + 'Email candidat', + 'Téléphone candidat', + 'Date de naissance candidat', + 'Ville candidat', + 'Département candidat', + 'Nom structure employeur', + 'Type employeur', + 'Métiers', + 'Source de la candidature', + 'Nom organisation prescripteur', + 'Nom utilisateur prescripteur', + 'Date de la candidature', + 'Statut de la candidature', + 'Dates de début d’embauche', + 'Dates de fin d’embauche', + 'Motifs de refus', + 'Éligibilité IAE validée', + 'Eligible au contrôle', + 'Numéro PASS IAE', + 'Début PASS IAE', + 'Fin PASS IAE', + 'Statut PASS IAE', + ]), + list([ + 'MME', + 'Doe', + 'Jane', + 'jane.doe@test.local', + '0612345678', + '01/01/1990', + 'Rennes', + '35000', + 'Acme inc.', + 'EI', + 'Candidature spontanée', + 'Orienteur', + '', + 'Pierre DUPONT', + '18/08/2024', + 'Nouvelle candidature', + '18/08/2024', + '18/08/2026', + '', + 'non', + 'non', + '', + '', + '', + '', + ]), + ]) +# --- # name: test_list_for_siae_filter_for_different_kind[geiq] '''
diff --git a/tests/www/apply/test_list_for_siae.py b/tests/www/apply/test_list_for_siae.py index 9eff6653b4..8b21737771 100644 --- a/tests/www/apply/test_list_for_siae.py +++ b/tests/www/apply/test_list_for_siae.py @@ -779,9 +779,16 @@ def test_list_for_siae_exports_back_to_list(client): assert_previous_step(response, reverse("apply:list_for_siae"), back_to_list=True) +@pytest.mark.parametrize( + "job_app_kwargs", + [ + pytest.param({"for_snapshot": True}, id="for_snapshot"), + pytest.param({"for_snapshot": True, "eligibility_diagnosis": None}, id="no_eligibility_diag"), + ], +) @freeze_time("2024-08-18") -def test_list_for_siae_exports_download(client, snapshot): - job_application = JobApplicationFactory(for_snapshot=True) +def test_list_for_siae_exports_download(client, job_app_kwargs, snapshot): + job_application = JobApplicationFactory(**job_app_kwargs) client.force_login(job_application.to_company.members.get()) # Download all job applications