*** 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 Run Keywords ... For Suite Setup ... AND Activation des options des task ... AND Activation des platau_type_demande ... AND Rendre les types de dossier d'autorisation détaillés utilisés transmissible à Plat'AU DP Suite Teardown Run Keywords ... Desactivation des options des task ... AND Rendre Un Type De Dossier D'autorisation Detailles Non Transmissible A Plat'AU DP ... AND For Suite Teardown *** Test Cases *** Build Variables &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=true ... om_collectivite=agglo Set Suite Variable ${param_dossier_commune} &{param_numero_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=true ... om_collectivite=agglo Set Suite Variable ${param_numero_complete} Ajout d'une tâche de création de DI via WS, puis traitement + Vérification de la date de création et de la date de dernière modification sur le moniteur Plat'AU. [Documentation] Vérifie l'ajout de la tâche via WS et son traitement. ... Vérifie la date de création et la date de dernière modification sur le listing des tasks. Depuis la page d'accueil admin admin # isole le contexte du test (création d'une collectivité) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS ... departement=013 ... commune=095 ... insee=13095 ... direction_code=E ... direction_libelle=Direction de LIBRECOM_WS ... direction_chef=Chef ... division_code=E ... division_libelle=Division E ... division_chef=Chef ... guichet_om_utilisateur_nom=Thom Moht ... guichet_om_utilisateur_email=tmoth@openads-test.fr ... guichet_om_utilisateur_login=tmoth ... guichet_om_utilisateur_pwd=tmoth ... instr_om_utilisateur_nom=Qualdi Idlauq ... instr_om_utilisateur_email=qidlauq@openads-test.fr ... instr_om_utilisateur_login=qidlauq ... instr_om_utilisateur_pwd=qidlauq ... code_entite=LBCOM_13 ... acteur=LIBRECOM-ACT-013 Isolation d'un contexte ${librecom_values} Set Suite Variable ${librecom_values} # Récupère l'identifiant de la collectivité LIBRECOM_WS Depuis le contexte de la collectivité ${librecom_values["om_collectivite_libelle"]} ${librecom_ws_id} = Get Text css=#om_collectivite # récupération de l'identifiant de l'instructeur de la collectivité Depuis le contexte de l'instructeur ${librecom_values["instr_om_utilisateur_nom"]} ${librecom_instr_id} = Get Text css=span#instructeur # Récupère le template de payload JSON et le transforme en dictionnaire ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_ref.txt ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-AAA-01 ${json_payload} = Replace String ${json_payload} 3XY-DK4-7X AAA-000-01 ${json_payload} = Replace String ${json_payload} 13055 ${librecom_values["insee"]} ${json_payload} = Replace String ${json_payload} "om_collectivite": "2" "om_collectivite": "${librecom_ws_id}" ${json_payload} = Replace String ${json_payload} "instructeur": "1" "instructeur": "${librecom_instr_id}" ${payload_dict} = To Json ${json_payload} # sauvegarde le code d'acteur ${acteur_code} = Set Variable ${payload_dict["external_uids"]["acteur"]} Set Suite Variable ${acteur_code} # retire le paramètre 'acteur' de la payload JSON Remove From Dictionary ${payload_dict["external_uids"]} acteur # (re)Converti la payload JSON en string ${json_string}= evaluate json.dumps(${payload_dict}) json # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_string} ${task_id} = Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # # Vérification de la date de création et de la date de dernière modification # sur le moniteur Plat'AU. # ${date} = Convert Date ${DATE_FORMAT_YYYY-MM-DD} result_format=%d/%m/%Y # Utilisation de la recherche avancée sur le listing des tâches &{search_task_values} = Create Dictionary ... task=${task_id} ... creation_date_min=${date} ... creation_date_max=${date} Depuis le listing des tasks à partir de la recherche avancée ${search_task_values} # Vérification de l'existence des colonnes de la date de création et de la # date de dernière modification Element Should Contain css=.tab-tab date de création Element Should Contain css=.tab-tab date de dernière modification # Vérification de la valeur recherchée Element Should Contain css=.tab-tab ${task_id} # Utilisation de la recherche avancée sur le listing des tâches # Utilisation de la recherche avancée sur le listing des tâches &{search_task_values} = Create Dictionary ... task=${task_id} ... creation_date_min=21/04/2022 ... creation_date_max=21/04/2022 Depuis le listing des tasks à partir de la recherche avancée ${search_task_values} # Vérification de la valeur recherchée Element Should Not Contain css=.tab-tab ${task_id} # Utilisation de la recherche avancée sur le listing des tâches &{search_task_values} = Create Dictionary ... task=${task_id} ... last_modification_date_min=${date} ... last_modification_date_max=${date} Depuis le listing des tasks à partir de la recherche avancée ${search_task_values} # Vérification de la valeur recherchée Element Should Contain css=.tab-tab ${task_id} # Utilisation de la recherche avancée sur le listing des tâches &{search_task_values} = Create Dictionary ... task=${task_id} ... last_modification_date_min=21/04/2022 ... last_modification_date_max=21/04/2022 Depuis le listing des tasks à partir de la recherche avancée ${search_task_values} # Vérification de la valeur recherchée Element Should Not Contain css=.tab-tab ${task_id} # Vérification du bon format du timestamp_log &{search_task_values} = Create Dictionary ... task=${task_id} ... creation_date_min=${date} ... creation_date_max=${date} ... last_modification_date_min=${date} ... last_modification_date_max=${date} Depuis le contexte d'une task à partir de la recherche avancée ${search_task_values} Element Should Contain css=#timestamp_log_jsontotab ${DATE_FORMAT_YYYY-MM-DD} Element Should Contain css=#timestamp_log_jsontotab modification_date # Le libellé du DI créé ne correspondra pas au numéro renseigné # car l'option de saisie complète du numéro de dossier n'est pas activée # Il sera créé avec la séquence, débutant au numéro 1 ${di_lib_expected} = Replace String Using Regexp ${payload_dict["dossier"]["dossier_libelle"]} ... [^ ]{7}$ 00001P0 ${da_lib_expected} = Replace String Using Regexp ${payload_dict["dossier"]["dossier_autorisation_libelle"]} ... [^ ]{5}$ 00001 # Idem pour les numéros DI et DA ${di_expected} = Replace String Using Regexp ${payload_dict["dossier"]["dossier"]} ... [^ ]{7}$ 00001P0 ${da_expected} = Replace String Using Regexp ${payload_dict["dossier"]["dossier_autorisation"]} ... [^ ]{7}$ 00001P0 # Extraction du libellé du DI dans le message ${di_regex} = Catenate .*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '${di_lib_expected}' .*$ ${di_matches} = Get Regexp Matches ${msg} ${di_regex} ${di_matches_len} = Get Length ${di_matches} Should Be True "${di_matches_len}" > "0" # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib_expected} Depuis le contexte du dossier d'autorisation ${da_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_autorisation_libelle ${da_lib_expected} # Vérifie que les données techniques ont bien été modifiées Depuis le contexte du dossier d'instruction ${di_lib_expected} Click On Form Portlet Action dossier_instruction donnees_techniques modale Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Portlet Action Should Be In SubForm donnees_techniques modifier Open Fieldset In Subform donnees_techniques description-de-la-demande---du-projet Form Static Value Should Be ope_proj_desc Description test dossier parallele BIS # nouvelle itération mais avec la saisie complète des numéros de dossier # activer la complète des numéros de dossiers Set To Dictionary ${param_numero_complete} valeur=true Gerer le paramètre par WS ${param_numero_complete} # modification des externals uids Set To Dictionary ${payload_dict["external_uids"]} dossier=000-AAA-02 Set To Dictionary ${payload_dict["external_uids"]} consultation=AAA-000-02 # (re)Converti la payload JSON en string ${json_string}= evaluate json.dumps(${payload_dict}) json # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_string} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # Cette fois-ci aucun changement dans les valeurs du numéro de dossier, ou presque # le numéro n'est pas 'P0' mais 'P00' (je ne sais pas pourquoi) ${di_lib_expected} = Replace String Using Regexp ${payload_dict["dossier"]["dossier_libelle"]} ... P0$ P00 ${da_lib_expected} = Set Variable ${payload_dict["dossier"]["dossier_autorisation_libelle"]} # Idem pour les numéros DI et DA ${di_expected} = Replace String Using Regexp ${payload_dict["dossier"]["dossier"]} ... P0$ P00 ${da_expected} = Set Variable ${payload_dict["dossier"]["dossier_autorisation"]} # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '${di_lib_expected}' .*$ ${di_matches} = Get Regexp Matches ${msg} ${di_regex} ${di_matches_len} = Get Length ${di_matches} Should Be True "${di_matches_len}" > "0" # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib_expected} Depuis le contexte du dossier d'autorisation ${da_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_autorisation_libelle ${da_lib_expected} # nouvelle itération mais avec l'option commune et le rattachement via un numéro d'acteur # activer l'option dossier_commune Set To Dictionary ${param_dossier_commune} valeur=true Gerer le paramètre par WS ${param_dossier_commune} Depuis la page d'accueil admin admin #-- ajouter manuellement une commune en saisissant une date de validité dans le passé &{oldcom_values} = Create Dictionary ... typecom=COM ... com=45645 ... reg=45 ... dep=45 ... arr=645 ... tncc=0 ... ncc=LIBRECOM_OLD ... nccenr=LibreCom_old ... libelle=LIBRECOM_OLD ... can=45 ... comparent= ... om_validite_debut=01/11/2020 Ajouter commune avec dates validité ${oldcom_values} Set Suite Variable ${oldcom_values} # ajouter le paramètre 'acteur' à la collectivité/au service &{param_platau_acteur} = Create Dictionary ... libelle=platau_acteur_service_consulte ... valeur=${librecom_values["acteur"]} ... om_collectivite=${librecom_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_platau_acteur} # Change le numéro de dossier et le code commune dans la payload JSON ${json_payload} = Replace String ${json_payload} P0 P04 ${json_payload} = Replace String ${json_payload} ... ${librecom_values["insee"]} ${oldcom_values["com"]} ${json_payload} = Replace String ${json_payload} ${acteur_code} ${librecom_values["acteur"]} ${payload_dict} = To Json ${json_payload} # retire le paramètre 'om_collectivite' de la payload JSON Remove From Dictionary ${payload_dict["dossier"]} om_collectivite # modification des externals uids Set To Dictionary ${payload_dict["external_uids"]} dossier=000-AAA-03 Set To Dictionary ${payload_dict["external_uids"]} consultation=AAA-000-03 # (re)Converti la payload JSON en string ${json_string}= evaluate json.dumps(${payload_dict}) json # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_string} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # Cette fois-ci aucun changement dans les valeurs du numéro de dossier ${di_lib_expected} = Set Variable ${payload_dict["dossier"]["dossier_libelle"]} ${da_lib_expected} = Set Variable ${payload_dict["dossier"]["dossier_autorisation_libelle"]} ${di_expected} = Set Variable ${payload_dict["dossier"]["dossier"]} ${da_expected} = Set Variable ${payload_dict["dossier"]["dossier_autorisation"]} # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '${di_lib_expected}' .*$ ${di_matches} = Get Regexp Matches ${msg} ${di_regex} ${di_matches_len} = Get Length ${di_matches} Should Be True "${di_matches_len}" > "0" # En tant qu'instructeur de la collectivité/du service LIBRECOM Depuis la page d'accueil tmoth tmoth # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib_expected} Depuis le contexte du dossier d'autorisation ${da_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_autorisation_libelle ${da_lib_expected} # nouvelle itération avec le même DA pour être sûr qu'il est réutilisé avec succès Depuis la page d'accueil admin admin # Change le numéro de dossier et le code commune dans la payload JSON ${json_payload} = Replace String ${json_payload} P04 P03 ${payload_dict} = To Json ${json_payload} # retire le paramètre 'om_collectivite' de la payload JSON Remove From Dictionary ${payload_dict["dossier"]} om_collectivite # modification des externals uids Set To Dictionary ${payload_dict["external_uids"]} dossier=000-AAA-04 Set To Dictionary ${payload_dict["external_uids"]} consultation=AAA-000-04 # (re)Converti la payload JSON en string ${json_string}= evaluate json.dumps(${payload_dict}) json # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_string} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # Cette fois-ci aucun changement dans les valeurs du numéro de dossier ${di_lib_expected} = Set Variable ${payload_dict["dossier"]["dossier_libelle"]} ${da_lib_expected} = Set Variable ${payload_dict["dossier"]["dossier_autorisation_libelle"]} ${di_expected} = Set Variable ${payload_dict["dossier"]["dossier"]} ${da_expected} = Set Variable ${payload_dict["dossier"]["dossier_autorisation"]} # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '${di_lib_expected}' .*$ ${di_matches} = Get Regexp Matches ${msg} ${di_regex} ${di_matches_len} = Get Length ${di_matches} Should Be True "${di_matches_len}" > "0" # En tant qu'instructeur de la collectivité/du service LIBRECOM Depuis la page d'accueil tmoth tmoth # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib_expected} Depuis le contexte du dossier d'autorisation ${da_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_autorisation_libelle ${da_lib_expected} # nouvelle itération avec l'option des codes entités Depuis la page d'accueil admin admin # active l'option entité pour la collectivité/le service &{param_entite} = Create Dictionary ... libelle=option_om_collectivite_entity ... valeur=true ... om_collectivite=${librecom_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_entite} Set Suite Variable ${param_entite} # ajoute le paramètre 'code_entite' à la collectivité/le service &{param_code_entite} = Create Dictionary ... libelle=code_entite ... valeur=${librecom_values["code_entite"]} ... om_collectivite=${librecom_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_code_entite} # modification des externals uids Set To Dictionary ${payload_dict["external_uids"]} dossier=000-AAA-05 Set To Dictionary ${payload_dict["external_uids"]} consultation=AAA-000-05 # (re)Converti la payload JSON en string ${json_string}= evaluate json.dumps(${payload_dict}) json # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_string} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # Cette fois-ci aucun changement dans les valeurs du numéro de dossier ${di_lib_expected} = Catenate ${payload_dict["dossier"]["dossier_libelle"]} ... ${librecom_values["code_entite"]}01 ${da_lib_expected} = Set Variable ${payload_dict["dossier"]["dossier_autorisation_libelle"]} ${di_expected} = Catenate ${payload_dict["dossier"]["dossier"]} ... ${librecom_values["code_entite"]}01 ${da_expected} = Set Variable ${payload_dict["dossier"]["dossier_autorisation"]} # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '${di_lib_expected}' .*$ ${di_matches} = Get Regexp Matches ${msg} ${di_regex} ${di_matches_len} = Get Length ${di_matches} Should Be True "${di_matches_len}" > "0" # En tant qu'instructeur de la collectivité/du service LIBRECOM Depuis la page d'accueil tmoth tmoth # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib_expected} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib_expected} Depuis le contexte du dossier d'autorisation par la recherche ${da_lib_expected} # l'onglet du DA est vide dans le mode MC, mais le simple fait d'arriver à y accéder # montre qu'il existe Nouvelle itération avec une payload JSON minimale # Ajout du lien pour les suivis de demande &{param_args} = Create Dictionary ... libelle=portal_code_suivi_base_url ... valeur=LIEN_PORTAL/[PORTAL_CODE_SUIVI]/load ... om_collectivite=agglo Gerer le paramètre par WS ${param_args} # On désactive l'option de suppression &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} # nouvelle itération avec deux DI non-réglementaires # générant deux DA/DI différents à cause que l'option code entité Depuis la page d'accueil admin admin # # sans l'option de code entité # Set To Dictionary ${param_entite} valeur=false # Ajouter ou modifier le paramètre depuis le menu ${param_entite} # Récupère le template de payload JSON et le transforme en dictionnaire ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_min.txt # sauvegarde le code d'acteur ${payload_dict} = To Json ${json_payload} ${acteur_code} = Set Variable ${payload_dict["external_uids"]["acteur"]} Set Suite Variable ${acteur_code} # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} 7SZ-SX8-TR4 000-AAA-07 ${json_payload} = Replace String ${json_payload} 2SZ-SX8-AZ6 AAA-000-07 ${json_payload} = Replace String ${json_payload} 00009 7a9eeP0 ${json_payload} = Replace String ${json_payload} 13055 ${oldcom_values["com"]} ${json_payload} = Replace String ${json_payload} ${acteur_code} ${librecom_values["acteur"]} ${payload_dict} = To Json ${json_payload} # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_payload} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${msg} ${di_regex} \\1 Log ${di_lib} ${di_lib_no_space} = Sans espace ${di_lib} ${di_to_search} = Replace String ${di_lib_no_space} ${librecom_values["code_entite"]} ${SPACE}${librecom_values["code_entite"]} # En tant qu'instructeur de la collectivité/du service LIBRECOM Depuis la page d'accueil tmoth tmoth # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction par recherche ${di_to_search} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_to_search} # Commune Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#commune ${oldcom_values["libelle"]} # En tant qu'admin Depuis la page d'accueil admin admin # Remplace certaines valeurs #${json_payload} = Replace String ${json_payload} 000-AAA-07 000-AAA-08 ${json_payload} = Replace String ${json_payload} AAA-000-07 AAA-000-08 # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_payload} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${msg} ${di_regex} \\1 Log ${di_lib} ${di_lib_no_space} = Sans espace ${di_lib} ${di_to_search} = Replace String ${di_lib_no_space} ${librecom_values["code_entite"]} ${SPACE}${librecom_values["code_entite"]} # En tant qu'instructeur de la collectivité/du service LIBRECOM Depuis la page d'accueil tmoth tmoth # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction par recherche ${di_to_search} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_to_search} # nouvelle itération avec deux DI non-réglementaires sans l'option code entité # sans l'option de code entité Set To Dictionary ${param_entite} valeur=false Gerer le paramètre par WS ${param_entite} # Récupère le template de payload JSON et le transforme en dictionnaire ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_min.txt # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} 7SZ-SX8-TR4 000-AAA-09 ${json_payload} = Replace String ${json_payload} 2SZ-SX8-AZ6 AAA-000-09 ${json_payload} = Replace String ${json_payload} 00009 4d67qsP0 ${json_payload} = Replace String ${json_payload} 13055 ${oldcom_values["com"]} ${json_payload} = Replace String ${json_payload} ${acteur_code} ${librecom_values["acteur"]} ${payload_dict} = To Json ${json_payload} # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_payload} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${msg} ${di_regex} \\1 Log ${di_lib} ${di_lib_no_space} = Sans espace ${di_lib} # En tant qu'instructeur de la collectivité/du service LIBRECOM Depuis la page d'accueil tmoth tmoth # Vérifier que le dossier a bien été ajouté #Depuis le contexte du dossier d'instruction par recherche ${di_lib_no_space} Depuis le contexte du dossier d'instruction ${di_lib_no_space} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib_no_space} # Vérification liste des identifiants externe sur le DI # dossier_consultation Open Fieldset dossier_instruction plat_au---identifiants-techniques Wait Until Element Is Visible css=#fieldset-form-dossier_instruction-plat_au---identifiants-techniques Element Should Contain css=#fieldset-form-dossier_instruction-plat_au---identifiants-techniques ${payload_dict["external_uids"]["dossier"]} Element Should Contain css=#fieldset-form-dossier_instruction-plat_au---identifiants-techniques ${payload_dict["external_uids"]["dossier_consultation"]} # En tant qu'admin Depuis la page d'accueil admin admin # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} AAA-000-09 ZZZ-000-09 # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_payload} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${passed} = Run Keyword And Return Status Déclencher le traitement des tâches par WS Should Be Equal ${passed} ${FALSE} Set To Dictionary ${param_dossier_commune} valeur=false Gerer le paramètre par WS ${param_dossier_commune} # Vérification du bon fonctionnement de la RA pour l'input contenu_json # Permet de vérifier que l'on a bien un résultat lors de la recherche d'une occurence dans le json_payload des # tâches et de les afficher sur le listing des moniteurs plat'au et ide'au Depuis la page d'accueil admin admin Depuis le menu Moniteur Plat'AU Wait Until Element Is Visible css=div#adv-search-adv-fields input#contenu_json Input Text css=div#adv-search-adv-fields input#contenu_json *000-AAA-01* Click On Search Button Element Should Contain css=td.col-1 a.lienTable Création DI pour consultation Element Should Contain css=td.col-4 a.lienTable PC0130952007777P0 Input Text css=div#adv-search-adv-fields input#contenu_json *PC 045645 20 07777P04* Click On Search Button Element Should Contain css=td.col-1 a.lienTable Création DI pour consultation Element Should Contain css=td.col-4 a.lienTable PC0456452007777P04 Vérification de l'ajout (app) d'un dossier d'instruction sur existant + Vérification du filtre sur les types de dossier d'instruction [Documentation] Le but est de vérifier que l'ajout de la tâche creation_DI et creation_DA ... est bien effectué lors de l'ajout d'un dossier sur existant. ... Permet de vérifier que le paramètre *dit_code__to_transmit__platau* ... filtre bien la transmission Plat'AU d'un DI en fonction du type de DI. # Ajout d'un dossier initial et traitement de toutes les tâches de création de dossier. Depuis la page d'accueil admin admin &{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 ... terrain_adresse_localite=TEST300AdresseLocalite &{args_petitionnaire2} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASKNOMM ... particulier_prenom=TEST300TASKPRENOMM ... localite=TEST300Localite ... om_collectivite=MARSEILLE ${di2} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire2} &{donnees_techniques_values} = Create Dictionary ... enga_decla_lieu=TEST300engadelalieu ... enga_decla_date=${DATE_DDMMYYYY} Saisir les données techniques du DI ${di2} ${donnees_techniques_values} ${di2_sans_espace} = Sans espace ${di2} ${di2_da} = Replace String Using Regexp ${di2_sans_espace} [A-Z][0-9]+$ ${EMPTY} &{task_values} = Create Dictionary ... type=creation_DA ... dossier=${di2_da} ... state=new ... object_id=${di2_da} ... link_dossier=${di2_da} ... stream=output ${id_creation_DA} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di2_sans_espace} ... state=new ... object_id=${di2_sans_espace} ... link_dossier=${di2_sans_espace} ... stream=output ${id_creation_DI} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # On traite les tâches output pour qu'elles soient en 'terminé' &{task_values_modif} = Create Dictionary ... state=terminé Modifier la task ${id_creation_DI} ${task_values_modif} La page ne doit pas contenir d'erreur Modifier la task ${id_creation_DA} ${task_values_modif} La page ne doit pas contenir d'erreur Ajouter une instruction au DI et la finaliser ${di2} accepter un dossier sans réserve # Sans le paramètre *dit_code__to_transmit__platau* renseigné, tous les types de DI sont transmissibles # Ajout d'un dossier modificatif et vérification de la bonne création de la tâche creation_modif # liste des taches possible pour un modificatif &{args_demande} = Create Dictionary ... demande_type=Demande de modification ... dossier_instruction=${di2} ${di_modif} = Ajouter la demande par WS ${args_demande} ${di_modif_sans_espace} = Sans espace ${di_modif} ${di_modif_da} = Replace String Using Regexp ${di_modif_sans_espace} [A-Z][0-9]+$ ${EMPTY} # Si le dossier d'autorisation n'a pas de lien_id_interne_uid_externe # alors on ajoute une nouvelle tache creation_DA &{task_values} = Create Dictionary ... type=creation_DA ... dossier=${di2_da} ... state=new ... object_id=${di2_da} ... link_dossier=${di2_da} ... stream=output ${id_creation_da_modif} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_modif_sans_espace} ... state=new ... object_id=${di_modif_sans_espace} ... link_dossier=${di_modif_sans_espace} ... stream=output ${id_creation_di_modif} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{task_values} = Create Dictionary ... type=depot_DI ... dossier=${di_modif_sans_espace} ... state=new ... object_id=${di_modif_sans_espace} ... link_dossier=${di_modif_sans_espace} ... stream=output ${id_depot_modif} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Modifier la task ${id_creation_di_modif} ${task_values_modif} La page ne doit pas contenir d'erreur Modifier la task ${id_creation_da_modif} ${task_values_modif} La page ne doit pas contenir d'erreur Modifier la task ${id_depot_modif} ${task_values_modif} La page ne doit pas contenir d'erreur # Avec le paramètre *dit_code__to_transmit__platau* renseigné, seulement les types de DI # identifiés sont transmissibles # Autorise la transmission sur les modificatifs et transferts &{param_dit_filtre} = Create Dictionary ... libelle=dit_code__to_transmit__platau ... valeur=M;T ... om_collectivite=agglo Gerer le paramètre par WS ${param_dit_filtre} # Clotûre le dernier DI du DA pour permettre l'ajout d'un nouveau dossier Ajouter une instruction au DI et la finaliser ${di_modif} accepter un dossier sans réserve # Ajout d'un modificatif transmissible &{args_demande} = Create Dictionary ... demande_type=Demande de modification ... dossier_instruction=${di2} ${di_modif_2} = Ajouter la demande par WS ${args_demande} ${di_modif_2_sans_espace} = Sans espace ${di_modif_2} # Vérification de l'existance de la tâches de création de DI &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_modif_2_sans_espace} ... state=new ... object_id=${di_modif_2_sans_espace} ... link_dossier=${di_modif_2_sans_espace} ... stream=output ${id_depot_modif_2} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Modifier la task ${id_depot_modif_2} ${task_values_modif} La page ne doit pas contenir d'erreur # Modification du paramètre pour que les modificatifs ne soient plus transmissibles &{param_dit_filtre} = Create Dictionary ... libelle=dit_code__to_transmit__platau ... valeur=T ... om_collectivite=agglo Gerer le paramètre par WS ${param_dit_filtre} # Clotûre le dernier DI du DA pour permettre l'ajout d'un nouveau dossier Ajouter une instruction au DI et la finaliser ${di_modif_2} accepter un dossier sans réserve # Ajout d'un modificatif non transmissible &{args_demande} = Create Dictionary ... demande_type=Demande de modification ... dossier_instruction=${di2} ${di_modif_3} = Ajouter la demande par WS ${args_demande} ${di_modif_3_sans_espace} = Sans espace ${di_modif_3} # 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_modif_3_sans_espace} # Clotûre le dernier DI du DA pour permettre l'ajout d'un nouveau dossier Ajouter une instruction au DI et la finaliser ${di_modif_3} accepter un dossier sans réserve # Ajout d'un transfert transmissible &{args_demande} = Create Dictionary ... demande_type=Demande de transfert ... dossier_instruction=${di2} ${di_trsf} = Ajouter la demande par WS ${args_demande} ${di_trsf_sans_espace} = Sans espace ${di_trsf} # Vérification de l'existance de la tâches de création de DI &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di_trsf_sans_espace} ... state=new ... object_id=${di_trsf_sans_espace} ... link_dossier=${di_trsf_sans_espace} ... stream=output ${id_depot_trsf} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Modifier la task ${id_depot_trsf} ${task_values_modif} La page ne doit pas contenir d'erreur Reset Params - Vérification de l'ajout et du filtre sur les types de dossier d'instruction # Suppression du paramètre de filtre des types de DI &{param_args} = Create Dictionary ... delete=true ... libelle=dit_code__to_transmit__platau ... om_collectivite=agglo Gerer le paramètre par WS ${param_args} # désactiver la complète des numéros de dossiers Set To Dictionary ${param_numero_complete} valeur=false Gerer le paramètre par WS ${param_numero_complete} Vérification de la suppression d'un objet lié à une tâche non traitée [Documentation] XXX # Activer l'option de suppression des dossiers &{options} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${options} Depuis la page d'accueil admin admin # Ajouter un service de type plat'au &{service} = Create Dictionary ... abrege=DC300 ... libelle=Direction Circulation TEST300 ... edition=Consultation - Pour conformité ... type_consultation=Pour conformité ... om_collectivite=MARSEILLE ... service_type=Plat'AU ... generate_edition=true #Ajouter le service depuis le listing ${service} Gerer le service par WS ${service} # Ajouter un dossier : Création DA + Création demande + Dépôt DI &{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 ... terrain_adresse_localite=TEST300AdresseLocalite &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASKNOM05 ... particulier_prenom=TEST300TASKPRENOM05 ... localite=TEST300Localite ... om_collectivite=MARSEILLE ${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} &{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} # Ajouter une pièce numérisée : Ajout pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${DATE_DDMMYYYY} ... document_numerise_type=Test type document numerise de catégorie PLATAU Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} ${dn} = Get Value css=input#document_numerise # Ajouter une consultation : Création consultation Ajouter une consultation depuis un dossier ${di} ${service.abrege} - ${service.libelle} Depuis le contexte de la consultation ${di} ${service.abrege} - ${service.libelle} ${consultation} = Get Value css=#sousform-consultation #consultation # Ajouter une instruction de décision : Décision DI ${instr_dec} = Ajouter une instruction au DI ${di} accepter un dossier sans réserve # Vérification status des tâches &{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} &{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} &{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} &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di_se} ... state=new ... 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} ... link_dossier=${di_se} ... stream=output ${id_qualification_DI} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} &{task_values} = Create Dictionary ... type=decision_DI ... dossier=${di_se} ... state=new ... object_id=${instr_dec} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # Suppression de tous les objets Supprimer la consultation depuis le contexte du dossier d'instruction ${di} ${service.abrege} - ${service.libelle} Supprimer l'instruction ${di} accepter un dossier sans réserve Supprimer le dossier d'instruction ${di} # Vérification status des tâches &{task_values} = Create Dictionary ... type=creation_DA ... dossier=${da} ... state=canceled ... 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=creation_DI ... dossier=${di_se} ... state=canceled ... 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=depot_DI ... dossier=${di_se} ... state=canceled ... 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=ajout_piece ... dossier=${di_se} ... state=canceled ... 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=canceled ... object_id=${consultation} ... 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=decision_DI ... dossier=${di_se} ... state=canceled ... object_id=${instr_dec} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Reset Params - Vérification de la suppression d'un objet lié à une tâche non traitée # Désactiver l'option de suppression des dossiers &{options} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${options} # Création d'un nouveau dossier dont le numéro va reprendre celui du dossier # supprimer. Nécessaire pour éviter que dans les tests suivants des tâches existent # sur un dossier alors qu'il viens juste d'être ajouté &{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_petitionnaire1} = Create Dictionary ... particulier_nom=TEST300TASKNOM05 ... particulier_prenom=TEST300TASKPRENOM05 ... om_collectivite=MARSEILLE Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1} Vérification du flux contrôle de légalité [Documentation] Permet de vérifier le bon fonctionnement de l'action envoyer ... au contrôle de légalité qui crée une nouvelle tâche Envoi contrôle de légalité # En tant qu'admin Depuis la page d'accueil admin admin # Modification de l'événement pour transmission au CL par Plat'AU &{args_evenement} = Create Dictionary ... libelle=accepter un dossier sans réserve ... envoi_cl_platau=true Modifier l'événement ${args_evenement} &{args_evenement} = Create Dictionary ... libelle=accord tacite (sans arrete) ... envoi_cl_platau=true Modifier l'événement ${args_evenement} # isole le contexte du test (création d'une collectivité) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_CONTROLE_LEGALITE ... departement=025 ... commune=160 ... insee=25160 ... direction_code=GM ... direction_libelle=Direction de LIBRECOM_CONTROLE_LEGALITE ... direction_chef=Chef ... division_code=GM ... division_libelle=Division GM ... division_chef=Chef ... guichet_om_utilisateur_nom=Shalil Dibran ... guichet_om_utilisateur_email=sdibran@openads-test.fr ... guichet_om_utilisateur_login=sdibran ... guichet_om_utilisateur_pwd=sdibran ... instr_om_utilisateur_nom=Uomir Sambu ... instr_om_utilisateur_email=usambu@openads-test.fr ... instr_om_utilisateur_login=usambu ... instr_om_utilisateur_pwd=usambu ... code_entite=LBCOM_25 ... acteur=LIBRECOM-ACT-025 Isolation d'un contexte ${librecom_values} # Prépare le dossiers d'instruction &{args_dossier} = Create Dictionary ... om_collectivite=LIBRECOM_CONTROLE_LEGALITE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... terrain_adresse_localite=TEST300controlelegalite ... depot_electronique=true &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASKNOMCONTROLELEGALITE ... particulier_prenom=TEST300TASKPRENOMCONTROLELEGALITE ... localite=TEST300Localite ... om_collectivite=LIBRECOM_CONTROLE_LEGALITE ${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} &{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} Ajouter une instruction au DI et la finaliser ${di} accepter un dossier sans réserve Element Should Not Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite &{args_date} = Create Dictionary ... date_retour_signature=${DATE_DDMMYYYY} Modifier le suivi des dates ${di} accepter un dossier sans réserve ${args_date} # Tant qu'on n'a pas envoyé au cl, le champ envoi au controle de légalité est modifiable Click On SubForm Portlet Action instruction modifier_suivi Element Should Not Be Visible css=#date_envoi_controle_legalite[disabled="disabled"] Element Should Be Visible css=#date_envoi_controle_legalite Click On Back Button In Subform Element Should Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite Click On SubForm Portlet Action instruction envoyer_au_controle_de_legalite modale Cliquer sur le bouton de la fenêtre modale Confirmer Valid Message Should Contain In Subform Votre demande de transfert au contrôle de légalité à bien été prise en compte. Form Static Value Should Be css=#date_envoi_controle_legalite ${EMPTY} Portlet Action Should Not Be In SubForm instruction envoyer_au_controle_de_legalite Click On SubForm Portlet Action instruction modifier_suivi Element Should Be Visible css=#date_envoi_controle_legalite[disabled="disabled"] Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve ${id_instruction} = Get Value css=.form-content input#instruction Form Value Should Contain css=#date_envoi_controle_legalite En cours de traitement. # Ajout d'un external UID decision pour vérifier sa présence dans la payload envoi_CL Execute SQL INSERT INTO openads.lien_id_interne_uid_externe (lien_id_interne_uid_externe, object, object_id, external_uid, dossier, category) VALUES (nextval('openads.lien_id_interne_uid_externe_seq'), 'instruction', '${id_instruction}', '300_002_EXT_UID_DEC_CL', '${di_se}', 'platau') # Vérification status des tâches, il faut qu'elles soient en brouillon &{task_values} = Create Dictionary ... type=envoi_CL ... dossier=${di_se} ... state=new ... object_id=${id_instruction} ... link_dossier=${di_se} ... stream=output ${task_id} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # Vérification de la présence de l'external UID decision dans la payload ${envoi_cl_payload} = Vérifier que la tâche à une payload fonctionnelle ${task_values} Should Be Equal As Strings ${envoi_cl_payload['external_uids']['decision']} 300_002_EXT_UID_DEC_CL &{task_values_modif} = Create Dictionary ... state=terminé Modifier la task ${task_id} ${task_values_modif} La page ne doit pas contenir d'erreur Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve Form Static Value Should Be css=#date_envoi_controle_legalite ${DATE_DDMMYYYY} Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve Element Should Not Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite # Prépare le dossiers d'instruction &{args_dossier} = Create Dictionary ... om_collectivite=LIBRECOM_CONTROLE_LEGALITE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... terrain_adresse_localite=TEST300controlelegalitesansarrete ... depot_electronique=true &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASKNOMCONTROLELEGALITESANSARRETE ... particulier_prenom=TEST300TASKPRENOMCONTROLELEGALITESANSARRETE ... localite=TEST300Localite ... om_collectivite=LIBRECOM_CONTROLE_LEGALITE ${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} &{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} Ajouter une instruction au DI ${di} accord tacite (sans arrete) Click On Link accord tacite (sans arrete) Click On SubForm Portlet Action instruction envoyer_au_controle_de_legalite modale Cliquer sur le bouton de la fenêtre modale Confirmer Valid Message Should Contain In Subform Votre demande de transfert au contrôle de légalité à bien été prise en compte. Element Should Not Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite ${id_instruction_sans_arrete} = Get Value css=.form-content input#instruction Form Value Should Contain css=#date_envoi_controle_legalite En cours de traitement. # Vérification status des tâches, il faut qu'elles soient en brouillon &{task_values} = Create Dictionary ... type=envoi_CL ... dossier=${di_se} ... state=new ... object_id=${id_instruction_sans_arrete} ... link_dossier=${di_se} ... stream=output ${task_id} = 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_modif} = Create Dictionary ... state=terminé Modifier la task ${task_id} ${task_values_modif} La page ne doit pas contenir d'erreur Depuis l'instruction du dossier d'instruction ${di} accord tacite (sans arrete) Form Static Value Should Be css=#date_envoi_controle_legalite ${DATE_DDMMYYYY} Element Should Not Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite Vérification de l'annulation de l'envoi au contrôle de légalité [Documentation] Vérifie le bon fonctionnement de l'action annuler l'envoi ... au contrôle de légalité. Vérifie que l'action est disponible uniquement ... lorsque la tâche est dans un état annulable, que l'annulation remet le ... champ date d'envoi au contrôle de légalité en mode modifiable, et que ... l'action d'envoi redevient disponible après annulation. Depuis la page d'accueil admin admin # Modification de l'événement pour transmission au CL par Plat'AU &{args_evenement} = Create Dictionary ... libelle=accepter un dossier sans réserve ... envoi_cl_platau=true Modifier l'événement ${args_evenement} # Isole le contexte du test (création d'une collectivité) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_ANNUL_CL ... departement=025 ... commune=161 ... insee=25161 ... direction_code=AC ... direction_libelle=Direction de LIBRECOM_ANNUL_CL ... direction_chef=Chef ... division_code=AC ... division_libelle=Division AC ... division_chef=Chef ... guichet_om_utilisateur_nom=Fabien Rocard ... guichet_om_utilisateur_email=frocard@openads-test.fr ... guichet_om_utilisateur_login=frocard ... guichet_om_utilisateur_pwd=frocard ... instr_om_utilisateur_nom=Clara Deville ... instr_om_utilisateur_email=cdeville@openads-test.fr ... instr_om_utilisateur_login=cdeville ... instr_om_utilisateur_pwd=cdeville ... code_entite=LBCOM_AC ... acteur=LIBRECOM-ACT-AC Isolation d'un contexte ${librecom_values} # Prépare le dossier d'instruction &{args_dossier} = Create Dictionary ... om_collectivite=LIBRECOM_ANNUL_CL ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... terrain_adresse_localite=TEST300annulcl ... depot_electronique=true &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASKNOMANNULCL ... particulier_prenom=TEST300TASKPRENOMANNULCL ... localite=TEST300Localite ... om_collectivite=LIBRECOM_ANNUL_CL ${di} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1} ${di_se} = Sans espace ${di} &{donnees_techniques_values} = Create Dictionary ... enga_decla_lieu=TEST300engadeclalieu ... enga_decla_date=${DATE_DDMMYYYY} Saisir les données techniques du DI ${di} ${donnees_techniques_values} Ajouter une instruction au DI et la finaliser ${di} accepter un dossier sans réserve &{args_date} = Create Dictionary ... date_retour_signature=${DATE_DDMMYYYY} Modifier le suivi des dates ${di} accepter un dossier sans réserve ${args_date} # L'action d'annulation ne doit pas être visible avant l'envoi Portlet Action Should Not Be In SubForm instruction annuler_envoi_cl # Envoi au contrôle de légalité Click On SubForm Portlet Action instruction envoyer_au_controle_de_legalite modale Cliquer sur le bouton de la fenêtre modale Confirmer Valid Message Should Contain In Subform Votre demande de transfert au contrôle de légalité à bien été prise en compte. # Après l'envoi, l'action d'envoi ne doit plus être visible Portlet Action Should Not Be In SubForm instruction envoyer_au_controle_de_legalite # L'action d'annulation doit maintenant être visible (tâche en état new) Element Should Be Visible css=#action-sousform-instruction-annuler_envoi_cl # Récupération de l'identifiant de l'instruction et de la tâche Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve ${id_instruction} = Get Value css=.form-content input#instruction Form Value Should Contain css=#date_envoi_controle_legalite En cours de traitement. &{task_values} = Create Dictionary ... type=envoi_CL ... dossier=${di_se} ... state=new ... object_id=${id_instruction} ... link_dossier=${di_se} ... stream=output ${task_id} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # Le champ date d'envoi doit être désactivé dans le suivi des dates Click On SubForm Portlet Action instruction modifier_suivi Element Should Be Visible css=#date_envoi_controle_legalite[disabled="disabled"] Click On Back Button In Subform # Clic sur l'action d'annulation Click On SubForm Portlet Action instruction annuler_envoi_cl modale Cliquer sur le bouton de la fenêtre modale Confirmer Valid Message Should Contain In Subform L'envoi au contrôle de légalité a bien été annulé. # Après annulation : l'action d'envoi doit redevenir visible Element Should Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite # L'action d'annulation ne doit plus être visible Portlet Action Should Not Be In SubForm instruction annuler_envoi_cl # Vérification que la tâche est passée en état canceled &{task_values} = Create Dictionary ... type=envoi_CL ... dossier=${di_se} ... state=canceled ... object_id=${id_instruction} ... link_dossier=${di_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # Le champ date d'envoi doit être modifiable dans le suivi des dates Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve Click On SubForm Portlet Action instruction modifier_suivi Element Should Not Be Visible css=#date_envoi_controle_legalite[disabled="disabled"] Element Should Be Visible css=#date_envoi_controle_legalite Click On Back Button In Subform # # Cas 2 : vérification que l'annulation n'est plus possible après traitement # de la tâche (état done) # # Nouvel envoi au contrôle de légalité Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve Click On SubForm Portlet Action instruction envoyer_au_controle_de_legalite modale Cliquer sur le bouton de la fenêtre modale Confirmer Valid Message Should Contain In Subform Votre demande de transfert au contrôle de légalité à bien été prise en compte. # Récupération de la nouvelle tâche Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve &{task_values} = Create Dictionary ... type=envoi_CL ... dossier=${di_se} ... state=new ... object_id=${id_instruction} ... link_dossier=${di_se} ... stream=output ${task_id_2} = Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # Traitement de la tâche (passage en terminé) &{task_values_modif} = Create Dictionary ... state=terminé Modifier la task ${task_id_2} ${task_values_modif} La page ne doit pas contenir d'erreur # L'action d'annulation ne doit plus être visible car la tâche est traitée Depuis l'instruction du dossier d'instruction ${di} accepter un dossier sans réserve Form Static Value Should Be css=#date_envoi_controle_legalite ${DATE_DDMMYYYY} Portlet Action Should Not Be In SubForm instruction annuler_envoi_cl Element Should Not Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite Reset Params - Vérification du flux contrôle de légalité Depuis la page d'accueil admin admin &{args_evenement} = Create Dictionary ... libelle=accepter un dossier sans réserve ... envoi_cl_platau=false Modifier l'événement ${args_evenement}