*** Settings *** Documentation Test sur les dossiers d'instruction. # On inclut les mots-clefs Resource resources/resources.robot # On ouvre/ferme le navigateur au début/à la fin du Test Suite. Suite Setup For Suite Setup Suite Teardown For Suite Teardown *** Keywords *** Générer le registre [Documentation] Regénère le registre Go To Submenu In Menu guichet_unique affichage_reglementaire_registre Click Element id=registre-form-submit Cliquer sur le bouton de la fenêtre modale Confirmer Vérifier la génération du registre [Documentation] Vérifie la génération du registre # Toutes les x secondes, on vérifie que la page ne contient pas d'erreur et que le message de succès est présent :FOR ${INDEX} IN RANGE 1 150 \ Sleep ${RETRY_INTERVAL} \ # si on a détecté une erreur, on sort de la boucle \ ${no_error} = Run Keyword And Return Status La page ne doit pas contenir d'erreur \ Run Keyword If ${no_error} == False Return From Keyword FAILED \ # si on a détecté une erreur, on sort de la boucle \ ${no_error} = Run Keyword And Return Status Element Should Not Contain css=div#tabs-1 -1 \ Run Keyword If ${no_error} == False Return From Keyword FAILED \ # si on a détecté un succès, on sort de la boucle \ ${success} = Run Keyword And Return Status Valid Message Should Contain Traitement terminé. Le registre a été généré. \ Run Keyword If ${success} == True Return From Keyword SUCCESS Run Keyword If ${INDEX} == ${TIMEOUT} FAILED Vérifier et réessayer la génération du registre [Documentation] Vérifie la génération du registre et réessaye si nécessaire ${status} ${result} = Run Keyword And Ignore Error Vérifier la génération du registre ${should_retry} = Evaluate '${status}' == 'FAIL' or '${result}' == 'FAILED' Run Keyword If ${should_retry} == False Return From Keyword La génération du registre a réussie Générer le registre ${status} ${result} = Run Keyword And Ignore Error Vérifier la génération du registre ${should_fail} = Evaluate '${status}' == 'FAIL' or '${result}' == 'FAILED' Run Keyword If ${should_fail} Fail La génération du registre a échoué après la tentative de régénération *** Test Cases *** Date d'affichage obligatoire [Documentation] Vérifie la gestion de la date d'affichage obligatoire Depuis la page d'accueil admin admin #-- ajout du paramétrage # action de mise à jour de la date d'affichage &{args_action} = Create Dictionary ... action=maj_date_affichage ... libelle=mise à jour de la date d'affichage ... regle_date_affichage=date_evenement Ajouter Action ${args_action} # évènement d'affichage obligatoire &{args_evenement} = Create Dictionary ... evenement=89 ... libelle=affichage_obligatoire ... action=mise à jour de la date d'affichage Modifier l'événement ${args_evenement} #-- jeu de données &{args_dossier} = Create Dictionary ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST035DATEAFF ... particulier_prenom=TEST035DATEAFF ... om_collectivite=MARSEILLE ${di} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire} #-- présence de la date d'Affichage obligatoire #-- absence de l'action de portlet d'Affichage obligatoire # avec un profil ayant l'autorisation Depuis la page d'accueil instrpoly instrpoly Depuis le contexte du dossier d'instruction ${di} Element Should Contain lib-date_affichage Date d'affichage Portlet Action Should Not Be In SubForm dossier_instruction date_affichage # avec un profil n'ayant pas l'autorisation Depuis la page d'accueil guichet guichet Depuis le contexte du dossier d'instruction ${di} Element Should Contain lib-date_affichage Date d'affichage Portlet Action Should Not Be In SubForm dossier_instruction date_affichage #-- modification manuelle de la date d'affichage # avec un profil ayant l'autorisation Depuis la page d'accueil instrpoly instrpoly Depuis le contexte du dossier d'instruction ${di} ${d_aff_1} = Get Text date_affichage Should Be Equal ${d_aff_1} Néant &{di_values} = Create Dictionary ... date_affichage=26/02/2019 Modifier le dossier d'instruction ${di} ${di_values} ${d_aff_2} = Get Text date_affichage Should Be Equal ${d_aff_2} 26/02/2019 Should Not Be Equal ${d_aff_1} ${d_aff_2} # avec un profil n'ayant pas l'autorisation Depuis la page d'accueil guichet guichet Depuis le contexte du dossier d'instruction ${di} Click On Form Portlet Action dossier_instruction modifier Page Should Not Contain css=input#date_affichage Click On Submit Button Until Message Vos modifications ont bien été enregistrées. #-- modification de la date d'affichage par le menu "Registre" # Le traitement de registre applique l'événement d'instruction identifié # comme attestation d'affichage et c'est celui-ci qui change la date # d'affichage Depuis la page d'accueil instrpoly instrpoly &{di_values} = Create Dictionary ... date_affichage=${EMPTY} # Supprime la date d'affichage pour l'événement puisse la mettre à jour Modifier le dossier d'instruction ${di} ${di_values} ${d_aff_3} = Get Text date_affichage Should Not Be Equal ${d_aff_3} ${d_aff_2} Should Be Equal ${d_aff_3} Néant Depuis la page d'accueil guichet guichet Générer le registre Vérifier et réessayer la génération du registre ${date_ddmmyyyy} = Date du jour FR Click Element id=registre-form-download Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Registre des dossiers en cours Close PDF Depuis la page d'accueil guichetsuivi guichetsuivi Depuis le contexte du dossier d'instruction ${di} Element Should Contain lib-date_affichage Date d'affichage ${d_aff_4} = Get Text date_affichage Should Not Be Equal ${d_aff_4} ${d_aff_3} Should Be Equal ${d_aff_4} ${date_ddmmyyyy} #-- vérification de l'action de portlet d'Affichage obligatoire # avec un profil n'ayant pas l'autorisation Depuis la page d'accueil guichet guichet Depuis le contexte du dossier d'instruction ${di} Portlet Action Should Not Be In Form dossier_instruction date_affichage # avec un profil ayant l'autorisation Depuis la page d'accueil instrpoly instrpoly Depuis le contexte du dossier d'instruction ${di} Portlet Action Should Be In Form dossier_instruction date_affichage #-- accéder à l'attestation d'affichage via l'action de portlet Click On Form Portlet Action dossier_instruction date_affichage new_window Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain ATTESTATION D'AFFICHAGE REGLEMENTAIRE Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain ${di} Close PDF #-- modification de la lettre type d'Affichage Règlementaire (inclusion complément dans corps) Depuis la page d'accueil admin admin Modifier la lettre-type attestation_affichage corps=[complement1_instruction] #-- définalisation de l'évènement d'instruction d'affichage obligatoire Depuis la page d'accueil instrpoly instrpoly Depuis l'onglet instruction du dossier d'instruction ${di} Click Element Until No More Element xpath=//a[text()[contains(.,"affichage_obligatoire")]] Click On SubForm Portlet Action instruction definaliser Depuis l'onglet instruction du dossier d'instruction ${di} Portlet Action Should Not Be In Form dossier_instruction date_affichage #-- ajout de la date d'affichage dans les compléments de l'édition Depuis l'onglet instruction du dossier d'instruction ${di} Click Element Until No More Element xpath=//a[text()[contains(.,"affichage_obligatoire")]] Click On SubForm Portlet Action instruction modifier Input HTML complement_om_html Date d'affichage: [date_affichage] Click On Submit Button In Subform Until Message Vos modifications ont bien été enregistrées. Click On SubForm Portlet Action instruction edition new_window Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain ATTESTATION D'AFFICHAGE REGLEMENTAIRE Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain ${di} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Date d'affichage: ${DATE_DDMMYYYY} Close PDF #-- suppression de l'instruction # supprimer l'instruction et vérifier que la valeur du dossier n'est pas # modifiée Depuis l'onglet instruction du dossier d'instruction ${di} Click Element Until No More Element xpath=//a[text()[contains(.,"affichage_obligatoire")]] Click On SubForm Portlet Action instruction supprimer Click On Submit Button In Subform Until Message La suppression a été correctement effectuée. css=div.soustab-message div.message Depuis le contexte du dossier d'instruction ${di} Portlet Action Should Not Be In Form dossier_instruction date_affichage Element Should Contain lib-date_affichage Date d'affichage ${d_aff_5} = Get Text date_affichage Should Be Equal ${d_aff_5} ${d_aff_4} Should Not Be Equal ${d_aff_5} Néant #-- la modification de la date d'affichage depuis l'événement ne doit pas # écraser la date déjà renseignée Depuis la page d'accueil instrpoly instrpoly Ajouter une instruction au DI ${di} affichage_obligatoire 27/02/2019 Depuis le contexte du dossier d'instruction ${di} ${d_aff_6} = Get Text date_affichage Should Not Be Equal ${d_aff_6} 27/02/2019 Should Be Equal ${d_aff_6} ${d_aff_5} # restauration de l'action de l'évènement Depuis la page d'accueil admin admin &{args_evenement} = Create Dictionary ... evenement=89 ... libelle=affichage_obligatoire ... action=action sans effet sur le dossier Modifier l'événement ${args_evenement}