*** Settings *** Documentation Test de task. # 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 *** Créer une consultation avec un statut PeC métier [Documentation] Allége le traitement de l'ajout de consultations ... avec un statut PeC métier défini en argument. ... Ce keyword est prévu à l'usage du test case : ... 'Correspondances entre status PeC métiers et avis' [Arguments] ${di} ${code_service1} ${libelle_service1} ${pec_statut} ${lien_dossier_existant}=True ${di_se} = Sans espace ${di} Ajouter une consultation depuis un dossier ${di} ${code_service1} - ${libelle_service1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#sousform-consultation #service ${consultation_id} = Get Value css=#sousform-consultation #consultation ${external_uid_di} = Set Variable EXT_UID_DOS_${di_se} &{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 and ${lien_dossier_existant} != True Ajouter un external UID ${external_uid_values} ${external_uid_consult} = Set Variable EXT_UID_CSL_${consultation_id} &{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} ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_pec_metier_consultation_input.json ${json_payload} = Replace String ${json_payload} "statut_pec_metier": "2" "statut_pec_metier": "${pec_statut}" ${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 EXT-UID-PEC_${consultation_id} ${task_values} = Create Dictionary ... type=pec_metier_consultation ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} application Déclencher le traitement des tâches par WS [Return] ${consultation_id} Vérifier le motif et l'avis d'une consultation [Arguments] ${motif_attendu} ${avis_attendu} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-sousform-consultation-prise-en-compte .fieldsetContent .form-content span#motif_pec ${motif_attendu} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-sousform-consultation-retour-d_avis .fieldsetContent .form-content span#avis_consultation ${avis_attendu} *** Test Cases *** Activation de l'option 'option_notification_piece_numerisee' [Documentation] Il est nécessaire de faire cette manipulation pour éviter le ... FAIL: Element with locator 'dossier_message_id' not found. &{om_param} = Create Dictionary ... libelle=option_notification_piece_numerisee ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Depuis la page d'accueil admin admin Rendre les types de dossier d'autorisation détaillés utilisés transmissible à Plat'AU PCI Rendre les types de dossier d'autorisation détaillés utilisés transmissible à Plat'AU DP Constitution du jeu de données [Documentation] L'objet de ce 'Test Case' est de constituer le jeu de données # Permet le même comportement du test qu'il soit exécuté en runone ou runall &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${param_saisie_complete} # Active le mode service consulté &{param_division} = Create Dictionary ... libelle=option_mode_service_consulte ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} # isole le contexte du test (création d'une collectivité) &{librecom_multi_1_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS_CONTROLE_DONNEE_MULTI_1 ... departement=019 ... commune=100 ... insee=19100 ... direction_code=BCD ... direction_libelle=Direction de LIBRECOM_WS_CONTROLE_DONNEE_MULTI_1 ... direction_chef=Chef ... division_code=BCD ... division_libelle=Division BCD ... division_chef=Chef ... guichet_om_utilisateur_nom=Pacquenett Lerrault ... guichet_om_utilisateur_email=plerrault@openads-test.fr ... guichet_om_utilisateur_login=plerrault ... guichet_om_utilisateur_pwd=plerrault ... instr_om_utilisateur_nom=Molaine Trimard ... instr_om_utilisateur_email=mtrimard@openads-test.fr ... instr_om_utilisateur_login=mtrimard ... instr_om_utilisateur_pwd=mtrimard ... code_entite=LBCOM_24 ... acteur=LIBRECOM-ACT-024 Isolation d'un contexte ${librecom_multi_1_values} ${code_service1} = Set Variable 308 ${libelle_service1} = Set Variable TEST308SERVIC01 Set Suite Variable ${code_service1} Set Suite Variable ${libelle_service1} # En tant qu'admin Depuis la page d'accueil admin admin &{args_service} = Create Dictionary ... abrege=${code_service1} ... libelle=${libelle_service1} ... edition=Consultation - Demande d'avis ... om_collectivite=LIBRECOM_WS_CONTROLE_DONNEE_MULTI_1 ... service_type=Plat'AU ... generate_edition=true Ajouter le service depuis le listing ${args_service} Vérification du contrôle de données et déclencheur + vérification d'un retour d'avis de consultation [Documentation] Vérifie le bon fonctionnement du contrôle de saisi des champs requis Plat'AU ... et de la mise à jour des tâches en fonction de ce qui a été saisi dans le dossier. ... La deuxième partie du test case permet de vérifier qu'un retour d'avis de consultation ... réalisé par un tier est bien considéré comme non lu pour l'instructeur. ... Test également : ... - la présence de l'action de suppression de la consultation selon l'état de la tâche. ... - l'état de la tâche si la consultation liée est supprimée. # Ajout d'un dossier &{args_dossier} = Create Dictionary ... om_collectivite=LIBRECOM_WS_CONTROLE_DONNEE_MULTI_1 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASKNOM01 ... particulier_prenom=TEST300TASKPRENOM01 ... om_collectivite=LIBRECOM_WS_CONTROLE_DONNEE_MULTI_1 ${di} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1} ${di_se} = Sans espace ${di} ${da} = Replace String Using Regexp ${di_se} [A-Z][0-9]+$ ${EMPTY} Ajouter une consultation depuis un dossier ${di} ${code_service1} - ${libelle_service1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#sousform-consultation #service ${consultation_id} = Get Value css=#sousform-consultation #consultation # On vérifie le message concernant les champs requis Depuis l'onglet instruction du dossier d'instruction ${di} ${instr_qualif} = Get Text css=td.col-0 a.lienTable # Ajout d'une pièce pour avoir un message de notication de l'instructeur &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=Test type document numerise de catégorie PLATAU Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} Click On Back Button In Subform Click Link Test type document numerise de catégorie PLATAU # Form Value Should Contain css=#sousform-document_numerise #document_numerise 4 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#sousform-document_numerise #uid ${document_numerise_id} = Get Value css=#sousform-document_numerise #document_numerise Depuis le contexte du dossier d'instruction ${di} Element Should Contain css=div.panel_information.ui-state-demat-color p span.text La transmission à Plat'AU n'est pas possible car certains champs requis ne sont pas saisis. Click Element css=#fieldset-message-tab_demat-color legend Wait Until Element Is Visible css=#fieldset-message-tab-content # On vérifie la liste des champs à saisir Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-message-tab-content Dans le formulaire données techniques le champ : date de signature Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-message-tab-content Dans le formulaire données techniques le champ : lieu de signature Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-message-tab-content Dans le formulaire dossier le champ : Localité Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#fieldset-message-tab-content Dans le formulaire demandeur le champ : localité pour ${args_petitionnaire1.particulier_nom} ${args_petitionnaire1.particulier_prenom} # Vérification status des tâches, les tâche doivent être en draft &{task_values} = Create Dictionary ... type=creation_DA ... dossier=${da} ... state=draft ... object_id=${da} ... link_dossier=${da} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Vérifier que la tâche à une payload fonctionnelle ${task_values} &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_se} ... state=draft ... object_id=${di_se} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Vérifier que la tâche à une payload fonctionnelle ${task_values} &{task_values} = Create Dictionary ... type=depot_DI ... dossier=${di_se} ... state=draft ... object_id=${di_se} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Vérifier que la tâche à une payload fonctionnelle ${task_values} &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di_se} ... state=draft ... object_id=${instr_qualif} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Vérifier que la tâche à une payload fonctionnelle ${task_values} &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di_se} ... state=draft ... object_id=${document_numerise_id} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Vérifier que la tâche à une payload fonctionnelle ${task_values} &{task_values} = Create Dictionary ... type=creation_consultation ... dossier=${di_se} ... state=draft ... 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} Vérifier que la tâche à une payload fonctionnelle ${task_values} &{args_dossier} = Create Dictionary ... terrain_adresse_localite=300TESTLocalite 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=TEST300engadelalieu ... enga_decla_date=${date_ddmmyyyy} Saisir les données techniques du DI ${di} ${donnees_techniques_values} # On vérifie qu'il n'y a plus de message concernant les champs requis # et que le formulaire du di est bien mis à jour lors du clic sur le bouton retour # de l'overlay Click On Back Button In Subform Element Should Not Be Visible css=div.panel_information.ui-state-demat-color p span.text # Vérification status des tâches, les tâches doivent être en new car le dossier est transmissible &{task_values} = Create Dictionary ... type=creation_DA ... dossier=${da} ... state=new ... object_id=${da} ... link_dossier=${da} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_creation_DA} = Get Text css=#task &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_se} ... state=new ... object_id=${di_se} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_creation_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=depot_DI ... dossier=${di_se} ... state=new ... object_id=${di_se} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_depot_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di_se} ... state=new ... object_id=${instr_qualif} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_qualification_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di_se} ... state=new ... object_id=${document_numerise_id} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{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} # TNR : on vérifie que si la tâche creation_consultation est à l'état new # elle peut être supprimée Depuis le contexte de la consultation ${di} ${consultation_id} Portlet Action Should Be In SubForm consultation supprimer # On met les tâche à done pour dire qu'elles sont été transmisent à Plat'AU &{task_values_modif} = Create Dictionary ... state=terminé Modifier la task ${id_creation_DA} ${task_values_modif} &{task_values_modif} = Create Dictionary ... state=terminé Modifier la task ${id_creation_DI} ${task_values_modif} &{task_values_modif} = Create Dictionary ... state=terminé Modifier la task ${id_depot_DI} ${task_values_modif} &{args_dossier} = Create Dictionary ... date_affichage=${date_ddmmyyyy} Modifier le dossier d'instruction ${di} ${args_dossier} # Vérification status des tâches # &{task_values} = Create Dictionary # ... type=modification_DA # ... dossier=${da} # ... state=new # ... object_id=${da} # ... link_dossier=${da} # ... stream=output # Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # ${id_modification_DA} = Get Text css=#task &{task_values} = Create Dictionary ... type=modification_DI ... dossier=${di_se} ... state=new ... object_id=${di_se} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Vérifier que la tâche à une payload fonctionnelle ${task_values} ${id_modification_DI} = Get Text css=#task # 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 vérifie que le message est modifié Depuis le contexte du dossier d'instruction ${di} Element Should Contain css=div.panel_information.ui-state-demat-color p span.text La transmission des modifications à Plat'AU n'est pas possible car certains champs requis ne sont pas saisis. Click Element css=#fieldset-message-tab_demat-color legend Wait Until Element Is Visible css=#fieldset-message-tab-content Element Should Contain css=#fieldset-message-tab-content Dans le formulaire architecte le champ : ville # Vérification status des tâches, il faut qu'elles soient en draft # &{task_values} = Create Dictionary # ... type=modification_DA # ... dossier=${da} # ... state=draft # ... object_id=${da} # ... link_dossier=${da} # ... stream=output # Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{task_values} = Create Dictionary ... type=modification_DI ... dossier=${di_se} ... state=draft ... object_id=${di_se} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di_se} ... state=draft ... object_id=${instr_qualif} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_qualification_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di_se} ... state=draft ... object_id=${document_numerise_id} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{task_values} = Create Dictionary ... type=creation_consultation ... dossier=${di_se} ... state=draft ... 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} # TNR : on vérifie que si la tâche creation_consultation n'est pas à l'état new # elle ne peut pas être supprimée Depuis le contexte de la consultation ${di} ${consultation_id} Portlet Action Should Not Be In SubForm consultation supprimer # On ajoute la ville à l'architecte &{args_architecte} = Create Dictionary ... ville=ville test Modifier l'architecte ${di} ${args_architecte} # On vérifie qu'il n'y a plus de message concernant les champs requis Depuis le contexte du dossier d'instruction ${di} Element Should Not Be Visible css=div.panel_information.ui-state-demat-color p span.text &{task_values} = Create Dictionary ... type=modification_DI ... dossier=${di_se} ... state=new ... object_id=${di_se} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di_se} ... state=new ... object_id=${instr_qualif} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_qualification_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di_se} ... state=new ... object_id=${document_numerise_id} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{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 # # Vérifie que le retour d'avis de consultation depuis Plat'AU soit considéré comme non lu. # # 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 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 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 ${dnt_libelle_1} = Set Variable TEST300PECNEGPMANQUANTES001 &{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 ${dnt_libelle_2} = Set Variable TEST300PECNEGPMANQUANTES002 &{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_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. ${dnt_code_3} = Set Variable DNTPEC3 ${dnt_libelle_3} = Set Variable TEST300PECNEGPMANQUANTES003 &{dnt_values} = Create Dictionary ... code=${dnt_code_3} ... libelle=${dnt_libelle_3} ... document_numerise_type_categorie=Autre Ajouter le type de pièces ${dnt_values} # 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 EXT-UID-PEC ${json_payload} = Replace String ${json_payload} XXX ${dnt_code_1} ${json_payload} = Replace String ${json_payload} YYY ${dnt_code_2} ${task_values} = Create Dictionary ... type=pec_metier_consultation ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} application # Vérification que la tâche a bien été ajoutée ${task_to_find} = Create Dictionary ... type=pec_metier_consultation ... state=new ... stream=input ... task=${task_id} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_to_find} # Traitement de la tâches pec_metier_consultation ${msg} = Déclencher le traitement des tâches par WS # On vérifie que la motivation de la consultation liste les pièces manquantes Depuis le contexte de la consultation ${di} ${consultation_id} Element Should Contain css=#motif_pec ${dnt_libelle_1} Element Should Contain css=#motif_pec ${nomenclature_code} | ${dnt_libelle_2} # # Ajout d'une tache de prise en compte (PeC) sans document # # L'ajout et le traitement d'une PeC métier sans document après celui d'une PeC avec document # dois modifier la PeC sur la consultation. # /!\ - Actuellement le document associé à la précédente PeC n'est pas supprimé lors du traitement de # la PeC sans document. Ce comportement est normal. Le cas d'une PeC avec doc suivi d'une PeC # sans doc n'existe pas pour le moment. # Le statut PeC métier utilisé pour ce test est le 8 : idenqtique aux 2 concernant les pièces # manquantes mais ne modifie pas l'avis. ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_pec_metier_consultation_sans_document_input.json ${json_payload} = Replace String ${json_payload} "statut_pec_metier": "2" "statut_pec_metier": "8" ${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 EXT-UID-PEC ${json_payload} = Replace String ${json_payload} XXX ${dnt_code_3} ${json_payload} = Replace String ${json_payload} YYY ${dnt_code_2} # Création de la tâches pec_metier_consultation ${task_values} = Create Dictionary ... type=pec_metier_consultation ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} application # Vérification que la tâche a bien été ajoutée ${task_to_find} = Create Dictionary ... type=pec_metier_consultation ... state=new ... stream=input ... task=${task_id} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_to_find} # Traitement de la tâches pec_metier_consultation ${msg} = Déclencher le traitement des tâches par WS # On vérifie que la motivation de la consultation liste les pièces manquantes Depuis le contexte de la consultation ${di} ${consultation_id} Element Should Contain css=#motif_pec ${dnt_libelle_3} Element Should Contain css=#motif_pec ${nomenclature_code} | ${dnt_libelle_2} # La pec contient aussi un fichier qui est ajouté à la consultation # On vérifie ici que le champ fichier_pec a bien été mis à jour Element Should Contain css=#fichier_pec consultation_pec_${consultation_id}.pdf # On vérifie que le document de la pec est présent dans le sous onglet téléchargement. Depuis le contexte du dossier d'instruction ${di} # On vérifie que le retour d'avis est présent On clique sur l'onglet document_numerise Pièces & Documents Click Element css=div.switcher__label[data-view="document_numerise_telechargement"] Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain consultation_pec_${consultation_id} # # Ajout d'une tache de prise en compte (PeC) pour tester les autres cas # # Actuellement il à 3 cas spécifique de traitement de la réception d'une PeC : # Avec le statut_pec_metier 2 : # - modifie la valeur de date_retour # - gère types_pieces_manquantes si définit # - modifie la valeur de motif_pec avec le libellé de la PeC, le texte # d'observation et les pièces manquantes # - modifier avis_consultation pour mettre 1 (défavorable) # statut_pec_metier 8 : identique au point 2 sans la modification d'avis # statut_pec_metier 3, 4, 5 et 6 : # - modifie la valeur de date_retour # - modifie la valeur de motif_pec avec le libellé de la PeC et le texte # d'observation # - modifier avis_consultation pour mettre 5 (autre) # # Sachant que les cas 2 et 8 sont déjà testé en amont de ce testcase, le but # est donc de tester un des autres cas. ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_pec_metier_consultation_sans_document_input.json ${json_payload} = Replace String ${json_payload} "statut_pec_metier": "2" "statut_pec_metier": "3" ${json_payload} = Replace String ${json_payload} "texte_observations": "il manque des pieces... Mais c'est pas pareil" "texte_observations": "TEST DES AUTRES CAS" ${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 EXT-UID-PEC ${json_payload} = Replace String ${json_payload} XXX ${dnt_code_3} ${json_payload} = Replace String ${json_payload} YYY ${dnt_code_2} # Création de la tâches pec_metier_consultation ${task_values} = Create Dictionary ... type=pec_metier_consultation ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} application # Vérification que la tâche a bien été ajoutée ${task_to_find} = Create Dictionary ... type=pec_metier_consultation ... state=new ... stream=input ... task=${task_id} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_to_find} # Traitement de la tâches pec_metier_consultation ${msg} = Déclencher le traitement des tâches par WS # On vérifie les données Depuis le contexte de la consultation ${di} ${consultation_id} # Libellé de la pec_metier 3 Element Should Contain css=#motif_pec Refusé (autre motif) Element Should Contain css=#motif_pec TEST DES AUTRES CAS # 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} # On vérifie que la consultation est bien marquée comme non lu Depuis le contexte de la consultation ${di} ${consultation_id} Element Should Contain css=#lu Non # On vérifie que l'avis a bien été mis à jour Element Should Contain css=#avis_consultation Favorable avec Reserve Element Should Contain css=#date_retour 05/05/2022 Element Should Contain css=#nom_auteur Charlebois Element Should Contain css=#prenom_auteur Slainie Element Should Contain css=#qualite_auteur adjoint de quelqu'un Element Should Contain css=#texte_avis Avis favorable au titre du plop, sous réserve d'autres plop. Element Should Contain css=#texte_fondement_avis Construction en continuité du bâti existant. # On vérifie que le fichier possède bien l'extension ".pdf" Element Should Contain css=#fichier .pdf # TNR : vérifie que la suppression de la tâche création_consultation entraine son annulation # si la tâche associé n'a pas été traité. # Note : Les consultations ne peuvent être supprimé que si la tâche associée est "à traité". # La suppression d'une consultation transmise pour vérifier sa non annulation ne peut donc pas être testé. Ajouter une consultation depuis un dossier ${di} ${code_service1} - ${libelle_service1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#sousform-consultation #service ${consultation_id} = Get Value css=#sousform-consultation #consultation Supprimer la consultation depuis le contexte du dossier d'instruction ${di} ${consultation_id} # La tâche lié à la consultation dois être annulé ${task_to_find} = Create Dictionary ... type=creation_consultation ... dossier=${di_se} ... object_id=${consultation_id} ... state=canceled ... stream=output ... link_dossier=${di_se} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_to_find} # Vérification du contrôle de données et déclencheur pour les DOC et DAACT # (champs spécifique requis pour la transmission) # Clotûre le dernier DI du DA pour permettre l'ajout d'un nouveau dossier Ajouter une instruction au DI et la finaliser ${di} accepter un dossier sans réserve # Ajout d'une DOC &{args_demande} = Create Dictionary ... demande_type=Demande d'ouverture de chantier ... dossier_instruction=${di} ${di_doc} = Ajouter la demande par WS ${args_demande} ${di_doc_se} = Sans espace ${di_doc} Depuis l'onglet instruction du dossier d'instruction ${di_doc} ${instr_qualif} = Get Text css=td.col-0 a.lienTable &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_doc_se} ... state=draft ... object_id=${di_doc_se} ... link_dossier=${di_doc_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_creation_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=depot_DI ... dossier=${di_doc_se} ... state=draft ... object_id=${di_doc_se} ... link_dossier=${di_doc_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_depot_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di_doc_se} ... state=draft ... object_id=${instr_qualif} ... link_dossier=${di_doc_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_qualification_DI} = Get Text css=#task # On rend le dossier transmissible &{donnees_techniques_values} = Create Dictionary ... enga_decla_lieu=TEST300engadelalieu ... enga_decla_date=${date_ddmmyyyy} ... doc_date=${date_ddmmyyyy} ... doc_surf=123 Saisir les données techniques du DI ${di_doc} ${donnees_techniques_values} &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_doc_se} ... state=new ... object_id=${di_doc_se} ... link_dossier=${di_doc_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_creation_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=depot_DI ... dossier=${di_doc_se} ... state=new ... object_id=${di_doc_se} ... link_dossier=${di_doc_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_depot_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di_doc_se} ... state=new ... object_id=${instr_qualif} ... link_dossier=${di_doc_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_qualification_DI} = Get Text css=#task # Vérification de la nonexistance de la tâches de création de DI Depuis le menu Moniteur Plat'AU ${passed} = Run Keyword And Return Status Element Should Not Contain css=div#adv-search-adv-fields select#type Création demande Run Keyword If ${passed}==False Select From List By Label css=select#type Création demande Run Keyword If ${passed}==False Input Text css=div#adv-search-adv-fields input#dossier ${di_doc_se} # Clotûre le dernier DI du DA pour permettre l'ajout d'un nouveau dossier ${id_instr} = Ajouter une instruction au DI et la finaliser ${di_doc} accepter un dossier sans réserve # Ajout d'une DAACT &{args_demande} = Create Dictionary ... demande_type=Déclaration attestant l'achèvement et la conformité des travaux ... dossier_instruction=${di} ${di_daact} = Ajouter la demande par WS ${args_demande} ${di_daact_se} = Sans espace ${di_daact} Depuis l'onglet instruction du dossier d'instruction ${di_daact} ${instr_qualif} = Get Text css=td.col-0 a.lienTable &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_daact_se} ... state=draft ... object_id=${di_daact_se} ... link_dossier=${di_daact_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_creation_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=depot_DI ... dossier=${di_daact_se} ... state=draft ... object_id=${di_daact_se} ... link_dossier=${di_daact_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_depot_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di_daact_se} ... state=draft ... object_id=${instr_qualif} ... link_dossier=${di_daact_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_qualification_DI} = Get Text css=#task # On rend le dossier transmissible &{donnees_techniques_values} = Create Dictionary ... enga_decla_lieu=TEST300engadelalieu ... enga_decla_date=${date_ddmmyyyy} ... daact_date=${date_ddmmyyyy} Saisir les données techniques du DI ${di_daact} ${donnees_techniques_values} &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_daact_se} ... state=new ... object_id=${di_daact_se} ... link_dossier=${di_daact_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_creation_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=depot_DI ... dossier=${di_daact_se} ... state=new ... object_id=${di_daact_se} ... link_dossier=${di_daact_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_depot_DI} = Get Text css=#task &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di_daact_se} ... state=new ... object_id=${instr_qualif} ... link_dossier=${di_daact_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_qualification_DI} = Get Text css=#task # Vérification de la nonexistance de la tâches de création de DI Depuis le menu Moniteur Plat'AU ${passed} = Run Keyword And Return Status Element Should Not Contain css=div#adv-search-adv-fields select#type Création demande Run Keyword If ${passed}==False Select From List By Label css=select#type Création demande Run Keyword If ${passed}==False Input Text css=div#adv-search-adv-fields input#dossier ${di_daact_se} # Clotûre le dernier DI du DA pour permettre l'ajout d'un nouveau dossier Ajouter une instruction au DI et la finaliser ${di_daact} accepter un dossier sans réserve # Vérification du fonctionnement de la gestion des consultations et des tâches pec_metier_consultation # en input lorsqu'un dossier et sa consultation ont été supprimé directement depuis openads # On active l'option de suppression &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Depuis l'instruction du dossier d'instruction ${di_daact} accepter un dossier sans réserve Click On SubForm Portlet Action instruction definaliser Supprimer l'instruction ${di_daact} accepter un dossier sans réserve Supprimer le dossier d'instruction ${di_daact} Depuis l'instruction du dossier d'instruction ${di_doc} accepter un dossier sans réserve Click On SubForm Portlet Action instruction definaliser Supprimer l'instruction ${di_doc} accepter un dossier sans réserve Supprimer le dossier d'instruction ${di_doc} Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve Click On SubForm Portlet Action instruction definaliser Supprimer l'instruction ${di} accepter un dossier sans réserve # Ajout d'une consultation vers un service plat'au Ajouter une consultation depuis un dossier ${di} ${code_service1} - ${libelle_service1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#sousform-consultation #service ${consultation_id2} = Get Value css=#sousform-consultation #consultation # Création dans la table de lien id_interne_uid_externe d'un nouveau lien entre id openads etid plat'au ${external_uid_consult2} = Set Variable EXT_UID_CSL2 &{external_uid_values2} = Create Dictionary ... object=consultation ... object_id=${consultation_id2} ... external_uid=${external_uid_consult2} ... dossier=${di_se} ... category=platau ${status} = Run Keyword And Return Status Récupérer un external UID ${consultation_id2} consultation Run Keyword If ${status} == False Ajouter un external UID ${external_uid_values2} # Modification de la json payload pour changer l'uid de la consultation ${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_consult2} ${json_payload} = Replace String ${json_payload} RRR-SSS-TTT ${external_uid_di} ${json_payload} = Replace String ${json_payload} OOO-PPP-QQQ EXT-UID-PEC2 ${json_payload} = Replace String ${json_payload} XXX ${dnt_code_1} ${json_payload2} = Replace String ${json_payload} YYY ${dnt_code_2} # Création de la tâches pec_metier_consultation ${task_values} = Create Dictionary ... type=pec_metier_consultation ... json_payload=${json_payload2} ... state=new ... stream=input ${task_id} = Ajouter la tâche par WS ${task_values} Supprimer la consultation depuis le contexte du dossier d'instruction ${di} ${consultation_id2} Supprimer le dossier d'instruction ${di} # Ces vérifications doivent généré un log "Le dossier XXX n'existe pas" sur la tâche pec_metier_consultation ${msg} = Déclencher le traitement des tâches par WS false Should Match Regexp ${msg} pec_metier_consultation : InvalidArgumentException : Le dossier EXT_UID_DOS n'existe pas. Correspondances entre status PeC métier et avis [Documentation] Les PeC métier induisent des motifs et avis par défaut, ... ceux-ci sont ordonnancés suivant les identifiants des PeC métier visées. # Ajout d'un dossier &{args_dossier} = Create Dictionary ... om_collectivite=LIBRECOM_WS_CONTROLE_DONNEE_MULTI_1 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASK_PEC_AVIS_NOM01 ... particulier_prenom=TEST300TASK_PEC_AVIS_PRENOM01 ... om_collectivite=LIBRECOM_WS_CONTROLE_DONNEE_MULTI_1 ${di} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1} ${di_se} = Sans espace ${di} # Création de consultations avec chaque PeC métier disponible ${consultation_id_2} = Créer une consultation avec un statut PeC métier ${di} ${code_service1} ${libelle_service1} 2 False ${consultation_id_3} = Créer une consultation avec un statut PeC métier ${di} ${code_service1} ${libelle_service1} 3 ${consultation_id_4} = Créer une consultation avec un statut PeC métier ${di} ${code_service1} ${libelle_service1} 4 ${consultation_id_5} = Créer une consultation avec un statut PeC métier ${di} ${code_service1} ${libelle_service1} 5 ${consultation_id_6} = Créer une consultation avec un statut PeC métier ${di} ${code_service1} ${libelle_service1} 6 # Vérification des attendus de motifs et d'avis Depuis le contexte de la consultation ${di} ${consultation_id_2} Vérifier le motif et l'avis d'une consultation ... Refusé (pièce(s) manquante(s) ou inexploitable(s)) ... Pas d'avis suite à déclaration d'incomplétude Depuis le contexte de la consultation ${di} ${consultation_id_3} Vérifier le motif et l'avis d'une consultation ... Refusé (autre motif) ... Autre Depuis le contexte de la consultation ${di} ${consultation_id_4} Vérifier le motif et l'avis d'une consultation ... ${EMPTY} ... Autre Depuis le contexte de la consultation ${di} ${consultation_id_5} Vérifier le motif et l'avis d'une consultation ... ${EMPTY} ... Pas d'avis suite à déclaration d'incomplétude Depuis le contexte de la consultation ${di} ${consultation_id_6} Vérifier le motif et l'avis d'une consultation ... ${EMPTY} ... Autre Rendre les types de dossier d'autorisation détaillés utilisés non transmissible à Plat'AU [Documentation] Il est nécessaire de faire cette manipulation pour revenir à un état normal Depuis la page d'accueil admin admin &{args_type_DA_detaille_modification} = Create Dictionary ... dossier_platau=false Modifier type de dossier d'autorisation détaillé PCI ${args_type_DA_detaille_modification} Modifier type de dossier d'autorisation détaillé DP ${args_type_DA_detaille_modification} Désactivation de l'option 'option_notification_piece_numerisee' [Documentation] Il est nécessaire de faire cette manipulation pour éviter le ... FAIL: Element with locator 'dossier_message_id' not found. &{om_param} = Create Dictionary ... libelle=option_notification_piece_numerisee ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${om_param}