*** Settings ***
Documentation Notification de la présence des annexes PEC lors d'une notification d'un demandeur
# On inclut les mots-clefs
Resource resources/resources.robot
Test Teardown Run Keyword If Test Failed Capture Page Screenshot
# On ouvre et on ferme le navigateur respectivement au début et à la fin
# du Test Suite.
Suite Setup Run Keywords
... For Suite Setup
... AND Activation des options des task
Suite Teardown Run Keywords
... Desactivation des options des task
... AND For Suite Teardown
*** Test Cases ***
Constitution du jeu de données
[Documentation] L'objet de ce 'Test Case' est de constituer le jeu de données
# En tant qu'admin
Depuis la page d'accueil admin admin
# isole le contexte du test (création d'une collectivité)
&{librecom_annexe_pec_1_values} = Create Dictionary
... om_collectivite_libelle=LIBRECOM_WS_NOTIF_ANNEXE_PEC
... departement=022
... commune=220
... insee=22001
... direction_code=EFG
... direction_libelle=Direction de LIBRECOM_WS_NOTIF_ANNEXE_PEC
... direction_chef=Chef
... division_code=EFG
... division_libelle=Division EFG
... division_chef=Chef
... guichet_om_utilisateur_nom=Guy Pottier
... guichet_om_utilisateur_email=gpottier@openads-test.fr
... guichet_om_utilisateur_login=gpottier
... guichet_om_utilisateur_pwd=gpottier
... instr_om_utilisateur_nom=Yug Reittop
... instr_om_utilisateur_email=yreittop@openads-test.fr
... instr_om_utilisateur_login=yreittop
... instr_om_utilisateur_pwd=yreittop
... code_entite=LBCOM_26
... acteur=LIBRECOM-ACT-026
Isolation d'un contexte ${librecom_annexe_pec_1_values}
${code_service_pec_annexe} = Set Variable 308
${libelle_service_pec_annexe} = Set Variable TEST308PECANNEXE01
Set Global Variable ${code_service_pec_annexe}
Set Global Variable ${libelle_service_pec_annexe}
&{args_service} = Create Dictionary
... abrege=${code_service_pec_annexe}
... libelle=${libelle_service_pec_annexe}
... edition=Consultation - Demande d'avis
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
... service_type=Plat'AU
... generate_edition=true
# Ajouter le service depuis le listing ${args_service}
Gerer le service par WS ${args_service}
# lettretype
&{args_lettretype} = Create Dictionary
... id=TEST_NOTIF_PEC_ANNEXE
... libelle=Test
... sql=Aucune REQUÊTE (aucune)
... titre=&idx, &destinataire, aujourdhui&aujourdhui, datecourrier&datecourrier, &departement
... corps=Ceci est un document
... actif=true
... collectivite=agglo
Ajouter la lettre-type depuis le menu &{args_lettretype}
# Ajout d'un événement pour tester un cas de notification
@{etat_source} = Create List delai de notification envoye
@{type_di} = Create List PCI - P - Initial
&{args_evenement1} = Create Dictionary
... libelle=TEST_NOTIF_PEC_ANNEXE
... etats_depuis_lequel_l_evenement_est_disponible=${etat_source}
... dossier_instruction_type=${type_di}
... lettretype=TEST_NOTIF_PEC_ANNEXE Test
... redirection_ajout=Modification de l'instruction
... notification=Notification manuelle avec annexe et avec signature requise
Gerer l'événement par WS ${args_evenement1}
# Création de deux services d'instruction notifiable et d'un non notifiable
&{service} = Create Dictionary
... abrege=00.00
... libelle=ServiceNotifiablePecAnnexe
... edition=Consultation - Demande d'avis
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
... service_type=openADS
... generate_edition=true
... accepte_notification_email=true
... email=notifiable1@ok.fr
Gerer le service par WS ${service}
# Construction du paramétrage spé PEC ANNEXE
&{om_param} = Create Dictionary
... libelle=parametre_courriel_type_titre
... valeur=[openADS] Notification concernant votre dossier [DOSSIER]
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
Gerer le paramètre par WS ${om_param}
&{om_param} = Create Dictionary
... libelle=parametre_courriel_service_type_titre
... valeur=[openADS] Notification pour les services concernant le dossier [DOSSIER]
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
Gerer le paramètre par WS ${om_param}
&{om_param} = Create Dictionary
... libelle=parametre_courriel_type_message
... valeur=Bonjour, veuillez prendre connaissance du(des) document(s) suivant(s) :
[LIEN_TELECHARGEMENT_DOCUMENT]
[LIEN_TELECHARGEMENT_ANNEXE]
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
Gerer le paramètre par WS ${om_param}
&{om_param} = Create Dictionary
... libelle=parametre_courriel_service_type_message
... valeur=Bonjour les services, veuillez prendre connaissance du(des) document(s) suivant(s) :
[LIEN_TELECHARGEMENT_DOCUMENT]
[LIEN_TELECHARGEMENT_ANNEXE]
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
Gerer le paramètre par WS ${om_param}
&{om_param} = Create Dictionary
... libelle=parametre_notification_url_acces
... valeur=http://localhost/openads/
... om_collectivite=agglo
Gerer le paramètre par WS ${om_param}
${now_yyyymmdd} = Date du jour au format yyyymmdd
Set Suite Variable ${now_yyyymmdd}
Activation de la notification par mail
[Documentation] Active la notification par mail des demandeurs
&{om_param} = Create Dictionary
... libelle=option_notification
... valeur=mail
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
Gerer le paramètre par WS ${om_param}
&{om_param} = Create Dictionary
... libelle=option_notification_piece_numerisee
... valeur=true
... om_collectivite=agglo
Gerer le paramètre par WS ${om_param}
Démarrer maildump
Vérification de la présence des annexes PEC lors d'une notification d'un demandeur
[Documentation] Vérifie la présence des annexes PEC lors d'une notification d'un demandeur
Depuis la page d'accueil admin admin
&{args_petitionnaire_principal} = Create Dictionary
... particulier_nom=DeGrasse
... particulier_prenom=Charlot
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
... courriel=dcharlot@notif.fr
... notification=t
&{args_demande} = Create Dictionary
... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
... demande_type=Dépôt Initial
... om_collectivite=LIBRECOM_WS_NOTIF_ANNEXE_PEC
... depot_electronique=true
${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire_principal}
Set Suite Variable ${di}
${di_se} = Sans espace ${di}
${da} = Replace String Using Regexp ${di_se} [A-Z][0-9]+$ ${EMPTY}
# finalisation et ajout d'une date de retour signature sur une instruction du di
# pour pouvoir la choisir comme annexe
Depuis l'instruction du dossier d'instruction ${di} Notification du delai legal maison individuelle
${date_retour_sign} = Convert Date ${DATE_FORMAT_YYYY-MM-DD} result_format=%d/%m/%Y
Click On SubForm Portlet Action instruction modifier_suivi
Input Datepicker date_retour_signature ${date_retour_sign}
Click On Submit Button In Subform
Ajouter une consultation depuis un dossier ${di} ${code_service_pec_annexe} - ${libelle_service_pec_annexe}
Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#sousform-consultation #service
${consultation_id} = Get Value css=#sousform-consultation #consultation
Set Suite Variable ${consultation_id}
&{args_avis_consultation} = Create Dictionary
... avis_consultation=Favorable
... motivation=Pas de réserves
... fichier_upload=testImportManuel.pdf
#Rendre l'avis sur la consultation du dossier ${di} ${args_avis_consultation}
Depuis l'onglet instruction du dossier d'instruction ${di}
${instr_qualif} = Get Text css=td.col-0 a.lienTable
# Vérification status des tâches, les tâche doivent être en draft
&{args_dossier} = Create Dictionary
... terrain_adresse_localite=308_002TESTLocalite
Modifier le dossier d'instruction ${di} ${args_dossier}
Depuis le contexte du dossier d'instruction ${di}
Click On Form Portlet Action dossier_instruction modifier
Open Fieldset dossier_instruction demandeur
Click Element Until New Element css=.button-edit css=.ui-widget-overlay
Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Input Text css=#localite Plop
Click Element Until No More Element css=#sformulaire div.formControls input[value="Modifier le demandeur"]
Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain liste_demandeur Plop
# On rend le dossier transmissible
&{donnees_techniques_values} = Create Dictionary
... enga_decla_lieu=TEST308_002_engadelalieu
... enga_decla_date=${DATE_DDMMYYYY}
Saisir les données techniques du DI ${di} ${donnees_techniques_values}
# On ajoute un architecte à partir des données techniques sans mettre de ville (requis pour transmission à Plat'AU)
&{args_architecte} = Create Dictionary
... nom=TESTDECLENCHEURNOM
... prenom=TESTDECLENCHEURPRENOM
... adresse1=5 Bis rue du test
... adresse2=
... cp=13200
... pays=France
... telephone=0235645201
... email=declencheur@test.com
${id_architecte} = Ajouter l'architecte ${di} ${args_architecte}
# On ajoute la ville à l'architecte
&{args_architecte} = Create Dictionary
... ville=ville test
Modifier l'architecte ${di} ${args_architecte}
&{task_values} = Create Dictionary
... type=creation_consultation
... dossier=${di_se}
... state=new
... object_id=${consultation_id}
... link_dossier=${di_se}
... stream=output
Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values}
# Traitement des tâches précédentes pour ne pas impacter la tâche de pec
${msg} = Déclencher le traitement des tâches par WS
# Préparation et traitement de la tache de retour d'avis de la consultation
# Récupération de l'external uid du dossier si il existe. Sinon on le créé
${external_uid_di} = Set Variable 308_003_EXT_UID_DOS
&{external_uid_values} = Create Dictionary
... object=dossier
... object_id=${di_se}
... external_uid=${external_uid_di}
... dossier=${di_se}
... category=platau
${status} = Run Keyword And Return Status Récupérer un external UID ${di_se} dossier
Run Keyword If ${status} == False Ajouter un external UID ${external_uid_values}
# Récupération de l'external uid de la consultation si elle existe. Sinon on la créé
${external_uid_consult} = Set Variable 308_003_EXT_UID_CSL
&{external_uid_values} = Create Dictionary
... object=consultation
... object_id=${consultation_id}
... external_uid=${external_uid_consult}
... dossier=${di_se}
... category=platau
${status} = Run Keyword And Return Status Récupérer un external UID ${consultation_id} consultation
Run Keyword If ${status} == False Ajouter un external UID ${external_uid_values}
# Simulation retour PEC négative avec liste des pièces manquantes
# Création des types de pièces spécifiques pour la vérification
${dnt_code_1} = Set Variable DNTPEC1_003
${dnt_libelle_1} = Set Variable TEST308_003_PECNEGPMANQUANTES001
&{dnt_values} = Create Dictionary
... code=${dnt_code_1}
... libelle=${dnt_libelle_1}
... document_numerise_type_categorie=Autre
Ajouter le type de pièces ${dnt_values}
Valid Message Should Contain Vos modifications ont bien été enregistrées.
${dnt_code_2} = Set Variable DNTPEC2_003
${dnt_libelle_2} = Set Variable TEST308_003_PECNEGPMANQUANTES002
&{dnt_values} = Create Dictionary
... code=${dnt_code_2}
... libelle=${dnt_libelle_2}
... document_numerise_type_categorie=Autre
Ajouter le type de pièces ${dnt_values}
${nomenclature_code} = Set Variable CODECERFA1
&{nomenclature_values} = Create Dictionary
... document_numerise_type=${dnt_code_2} - ${dnt_libelle_2}
... dossier_instruction_type=PCI Initial
... code=${nomenclature_code}
Ajouter une nomenclature de piece ${nomenclature_values}
Valid Message Should Contain Vos modifications ont bien été enregistrées.
${emetteur_code} = Set Variable 308_003_EMETTEUR_CODE
# Ajout d'une tache de prise en compte (PeC) avec document
${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_pec_metier_consultation_input.json
${json_payload} = Replace String ${json_payload} AAA-BBB-CCC ${external_uid_consult}
${json_payload} = Replace String ${json_payload} RRR-SSS-TTT ${external_uid_di}
${json_payload} = Replace String ${json_payload} OOO-PPP-QQQ 308_003_EXT-UID-PEC
${json_payload} = Replace String ${json_payload} XXX ${dnt_code_1}
${json_payload} = Replace String ${json_payload} YYY ${dnt_code_2}
${json_payload} = Replace String ${json_payload} UUU-VVV-WWW ${emetteur_code}
${task_values} = Create Dictionary
... type=pec_metier_consultation
... json_payload=${json_payload}
${task_id} = Ajouter la tâche par WS ${task_values} application
# Traitement de la tâches pec_metier_consultation
${msg} = Déclencher le traitement des tâches par WS
# Simulation du retour d'avis via platau
&{external_uids_consultation} = Create Dictionary
... avis=EXT-UID-AVI
... consultation=${external_uid_consult}
... dossier=${external_uid_di}
&{data_avis_consultation} = Create Dictionary
... avis_consultation=3
... date_avis=2022-05-05
... date_emission=2022-05-05
... nom_auteur=Charlebois
... prenom_auteur=Slainie
... qualite_auteur=adjoint de quelqu'un
... texte_avis=Avis favorable au titre du plop, sous réserve d'autres plop.
... texte_fondement_avis=Construction en continuité du bâti existant.
Rendre un avis par WS ${external_uids_consultation} ${data_avis_consultation}
Depuis la page d'accueil admin admin
Depuis l'onglet instruction du dossier d'instruction ${di}
#
Ajouter une instruction au DI et la finaliser ${di} TEST_NOTIF_PEC_ANNEXE
&{args_instruction} = Create Dictionary
... date_retour_signature=${DATE_FORMAT_DD/MM/YYYY}
Modifier le suivi des dates ${di} TEST_NOTIF_PEC_ANNEXE ${args_instruction}
# TEST CASE 1 - La notification contient les annexes Avis et PEC
Depuis la page d'accueil yreittop yreittop
Depuis l'instruction du dossier d'instruction ${di} TEST_NOTIF_PEC_ANNEXE
Portlet Action Should Be In SubForm instruction overlay_notification_manuelle
Click On SubForm Portlet Action instruction overlay_notification_manuelle modale
Wait Until Page Contains Element css=div#sousform-instruction_notification_manuelle
Element Should Contain css=div#sousform-instruction_notification_manuelle DeGrasse Charlot | dcharlot@notif.fr | pétitionnaire principal
Select Checkbox css=input[type="checkbox"]
${date_avis_formatted} = Convert Date ${data_avis_consultation.date_avis} result_format=%d/%m/%Y
@{liste_documents} Create List PEC - ${libelle_service_pec_annexe} - Consultation n°${consultation_id}
... Avis - ${libelle_service_pec_annexe} - ${date_avis_formatted}
Select From Multiple Chosen List annexes_documents ${liste_documents}
Click Element css=div#sousform-instruction_notification_manuelle input[type="submit"]
Wait Until Element Contains
... css=.message.ui-state-valid
... La notification a été générée.\nLes pièces et documents suivants seront envoyés :\nTEST_NOTIF_PEC_ANNEXE\nAvis - ${libelle_service_pec_annexe} - ${date_avis_formatted}\nPEC - ${libelle_service_pec_annexe} - Consultation n°${consultation_id}
# Affichage de la liste des annexes dans le tableau de suivi
Depuis l'instruction du dossier d'instruction ${di} TEST_NOTIF_PEC_ANNEXE
Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Element xpath=(//td[@data-column-id='annexes'])[1]
Element Text Should Be xpath=(//td[@data-column-id='annexes'])[1] Annexe\nAnnexe
# Test de l'accès aux différents types de pièce et document
Verifier que le mail a bien été envoyé au destinataire dcharlot@notif.fr
Vérifier le contenu du mail dcharlot@notif.fr /web/notification.php?key=
${keys} = Recuperer les cles dans le mail de notification
${key}= Get From List ${keys} 0
Verifier que le lien de notification contiens ${key} Ceci est un document dcharlot@notif.fr
${key}= Get From List ${keys} 1
Verifier que le lien de notification contiens ${key} PERMIS DE CONSTRUIRE PERMIS DE CONSTRUIRE EP dcharlot@notif.fr
${key}= Get From List ${keys} 2
Verifier que le lien de notification contiens ${key} DUPONT JACQUES dcharlot@notif.fr
# TEST CASE 2 - La notification contient uniquement l'annexe PEC
Depuis l'instruction du dossier d'instruction ${di} TEST_NOTIF_PEC_ANNEXE
Click On SubForm Portlet Action instruction overlay_notification_manuelle modale
Wait Until Page Contains Element css=div#sousform-instruction_notification_manuelle
Element Should Contain css=div#sousform-instruction_notification_manuelle DeGrasse Charlot | dcharlot@notif.fr | pétitionnaire principal
Select Checkbox css=input[type="checkbox"]
@{liste_documents} Create List PEC - ${libelle_service_pec_annexe} - Consultation n°${consultation_id}
Select From Multiple Chosen List annexes_documents ${liste_documents}
Click Element css=div#sousform-instruction_notification_manuelle input[type="submit"]
Wait Until Element Contains
... css=.message.ui-state-valid
... La notification a été générée.\nLes pièces et documents suivants seront envoyés :\nTEST_NOTIF_PEC_ANNEXE\nPEC - ${libelle_service_pec_annexe} - Consultation n°${consultation_id}
# Affichage de la liste des annexes dans le tableau de suivi
Depuis l'instruction du dossier d'instruction ${di} TEST_NOTIF_PEC_ANNEXE
Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Element xpath=(//td[@data-column-id='annexes'])[2]
Element Text Should Be xpath=(//td[@data-column-id='annexes'])[2] Annexe
# Test de l'accès aux différents types de pièce et document
Verifier que le mail a bien été envoyé au destinataire dcharlot@notif.fr
Vérifier le contenu du mail dcharlot@notif.fr /web/notification.php?key=
${keys} = Recuperer les cles dans le mail de notification
${key}= Get From List ${keys} 0
Verifier que le lien de notification contiens ${key} Ceci est un document dcharlot@notif.fr
${key}= Get From List ${keys} 1
Verifier que le lien de notification contiens ${key} DUPONT JACQUES dcharlot@notif.fr
# TEST CASE 3 - La notification contient uniquement l'annexe Avis
Depuis l'instruction du dossier d'instruction ${di} TEST_NOTIF_PEC_ANNEXE
Click On SubForm Portlet Action instruction overlay_notification_manuelle modale
Wait Until Page Contains Element css=div#sousform-instruction_notification_manuelle
Element Should Contain css=div#sousform-instruction_notification_manuelle DeGrasse Charlot | dcharlot@notif.fr | pétitionnaire principal
Select Checkbox css=input[type="checkbox"]
@{liste_documents} Create List Avis - ${libelle_service_pec_annexe} - ${date_avis_formatted}
Select From Multiple Chosen List annexes_documents ${liste_documents}
Click Element css=div#sousform-instruction_notification_manuelle input[type="submit"]
Wait Until Element Contains
... css=.message.ui-state-valid
... La notification a été générée.\nLes pièces et documents suivants seront envoyés :\nTEST_NOTIF_PEC_ANNEXE\nAvis - ${libelle_service_pec_annexe} - ${date_avis_formatted}
# Affichage de la liste des annexes dans le tableau de suivi
Depuis l'instruction du dossier d'instruction ${di} TEST_NOTIF_PEC_ANNEXE
Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Element xpath=(//td[@data-column-id='annexes'])[3]
Element Text Should Be xpath=(//td[@data-column-id='annexes'])[3] Annexe
# Test de l'accès aux différents types de pièce et document
Verifier que le mail a bien été envoyé au destinataire dcharlot@notif.fr
Vérifier le contenu du mail dcharlot@notif.fr /web/notification.php?key=
${keys} = Recuperer les cles dans le mail de notification
${key}= Get From List ${keys} 0
Verifier que le lien de notification contiens ${key} Ceci est un document dcharlot@notif.fr
${key}= Get From List ${keys} 1
Verifier que le lien de notification contiens ${key} PERMIS DE CONSTRUIRE PERMIS DE CONSTRUIRE EP dcharlot@notif.fr