*** 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 *** Variables *** ${alternate_filestorage} filestorage_plop *** Test Cases *** Vérification de l'ajout des tasks creation_DA et creation_DI et depot_DI lors de l'ajout d'un dossier d'instruction. [Documentation] Permet de vérifier le bon fonctionnement de la création des tâches lié à la création d'un dossier d'instruction ... Vérifie aussi qu'il n'y a pas de création d'autre tâche non concerné 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 ... depot_electronique=true &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASKNOM01 ... particulier_prenom=TEST300TASKPRENOM01 ... om_collectivite=MARSEILLE ${di1} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1} Depuis le menu Moniteur Plat'AU ${di1_sans_espace} = Sans espace ${di1} ${di1_da} = Replace String Using Regexp ${di1_sans_espace} [A-Z][0-9]+$ ${EMPTY} Set Suite Variable ${di1} Set Suite Variable ${di1_sans_espace} Set Suite Variable ${di1_da} # On recherche l'enregistrement Click Element css=#toggle-advanced-display # Wait Until Element Is Visible css=div#adv-search-adv-fields input#dossier Wait Until Element Is Visible css=div#adv-search-adv-fields input#type # On remplit Input Text css=div#adv-search-adv-fields input#dossier ${di1_da} Input Text css=div#adv-search-adv-fields input#type creation_DA # On valide le formulaire de recherche Click On Search Button Element Should Contain css=td.col-1 a.lienTable creation_DA Element Should Contain css=td.col-4 a.lienTable ${di1_da} # On remplit Input Text css=div#adv-search-adv-fields input#dossier ${di1_da} Input Text css=div#adv-search-adv-fields input#type creation_DI # On valide le formulaire de recherche Click On Search Button Element Should Contain css=td.col-1 a.lienTable creation_DI Element Should Contain css=td.col-4 a.lienTable ${di1_da} # On remplit Input Text css=div#adv-search-adv-fields input#dossier ${di1_da} Input Text css=div#adv-search-adv-fields input#type depot_DI # On valide le formulaire de recherche Click On Search Button Element Should Contain css=td.col-1 a.lienTable depot_DI Element Should Contain css=td.col-4 a.lienTable ${di1_da} Click On Link ${di1_sans_espace} ${id_depot_DI} = Get Text css=#task ${id_next_task} = Evaluate ${id_depot_DI} + 1 Vérifier qu'il n'y a pas de création d'autre tâche non concerné ${id_next_task} ${di1_da} Vérification de la mise à jour de la task creation_DI lors de l'ajout des données techniques [Documentation] Permet de vérifier que la tâche creation_DI est mise à jour sur son state est à new lors de la modification du DI ... et qu'il n'y a pas de création de tache modification_DI, vérifie aussi que lors que la tache creation_DI n'est pas en state new ... il y a bien une création de la tâche modification_DI Depuis la page d'accueil admin admin &{task_values} = Create Dictionary ... type=creation_DI ... dossier=${di1_sans_espace} ... state=new ... object_id=${di1_sans_espace} ... link_dossier=${di1_sans_espace} ... 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 ${time_stamp_log} = Get Text css=#timestamp_log &{donnees_techniques_values} = Create Dictionary ... ope_proj_desc=Description test dossier parallele Saisir les données techniques du DI ${di1} ${donnees_techniques_values} Depuis le contexte d'une task à partir de la recherche avancée ${task_values} ${timestamp_log_changed} = Get Text css=#timestamp_log Should Not Be Equal As Strings ${time_stamp_log} ${timestamp_log_changed} Click On Back Button # On vérifie qu'il n'y pas de task modification_DI Input Text css=div#adv-search-adv-fields input#dossier ${di1_da} Input Text css=div#adv-search-adv-fields input#type modification_DI Click On Search Button Element Should Contain css=.tab-data Aucun enregistrement. &{task_values_modif} = Create Dictionary ... state=done Modifier la task ${id_creation_DI} ${task_values_modif} La page ne doit pas contenir d'erreur &{donnees_techniques_values} = Create Dictionary ... ope_proj_desc=Description test dossier parallele BIS Saisir les données techniques du DI ${di1} ${donnees_techniques_values} La page ne doit pas contenir d'erreur &{task_values} = Create Dictionary ... type=modification_DI ... dossier=${di1_sans_espace} Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Vérification de l'ajout de la task qualification lors du changement de qualification d'un dossier d'instruction [Documentation] Permet de vérifier que la tâche qualification_DI est bien ajoutée lors du changement de l'autorité compétente. ... Vérifie aussi qu'il n'y a pas de création d'autre tâche non concerné Depuis la page d'accueil admin admin Ajouter une instruction au DI ${di1} Changer l'autorité compétente 'commune état' &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di1_sans_espace} ... state=new ... object_id=${di1_sans_espace} ... link_dossier=${di1_sans_espace} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=fieldset#fieldset-form-task-json_payload>legend Element Should Contain css=#json_payload "autorite_competente_code": "ETATMAIRE" Supprimer l'instruction ${di1} Changer l'autorité compétente 'commune état' Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=fieldset#fieldset-form-task-json_payload>legend Element Should Not Contain css=#json_payload "autorite_competente_code": "ETATMAIRE" ${id_qualification_DI} = Get Text css=#task ${id_next_task} = Evaluate ${id_qualification_DI} + 1 Vérifier qu'il n'y a pas de création d'autre tâche non concerné ${id_next_task} ${di1_da} Vérification de l'ajout de la task ajout_piece lors de l'ajout d'une piece au dossier d'instruction [Documentation] Permet de vérifier que la tâche ajout_piece est bien ajouté lors de l'ajout du pièce au dossier d'instruction ... et que le contenu ajouté et téléchargé à partir de la tâche est identique. ... Vérifie aussi qu'il n'y a pas de création d'autre tâche non concerné Depuis la page d'accueil admin admin # On ajoute un document numérisé par DI &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date_ddmmyyyy} ... document_numerise_type=autres pièces composant le dossier (A0) Ajouter une pièce depuis le dossier d'instruction ${di1} ${document_numerise_values} &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} ${link_piece} = Set Variable ${json_payload_loaded['document_numerise']['path']} ${output_dir} ${output_name}= Télécharger un fichier ${SESSION_COOKIE} ${PROJECT_URL}${link_piece} ${EXECDIR}${/}binary_files${/} ${base64_file} = Run base64 ${output_dir}${output_name} ${base64_model} = Run base64 ${EXECDIR}${/}binary_files${/}testImportManuel.pdf Should Be Equal As Strings ${base64_file} ${base64_model} ${id_qualification_DI} = Get Text css=#task ${id_next_task} = Evaluate ${id_qualification_DI} + 1 Vérifier qu'il n'y a pas de création d'autre tâche non concerné ${id_next_task} ${di1_da} Vérification de l'ajout de la task decision lors de l'ajout d'une décision dans le di [Documentation] Permet de vérifier que la tâche decision_DI est bien ajoutée lors de l'ajout de la décision au dossier d'instruction ... et que le contenu généré et téléchargé à partir de la tâche est identique. ... Vérifie aussi qu'il n'y a pas de création d'autre tâche non concerné Depuis la page d'accueil admin admin Ajouter une instruction au DI et la finaliser ${di1} accepter un dossier sans réserve Click On SubForm Portlet Action instruction edition new_window Open PDF ${OM_PDF_TITLE} ${link_decision_portlet} = Get Location Close PDF ${output_dir_decision_portlet} ${output_name_decision_portlet}= Télécharger un fichier ${SESSION_COOKIE} ${link_decision_portlet} ${EXECDIR}${/}binary_files${/} &{task_values} = Create Dictionary ... type=decision_DI ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=fieldset#fieldset-form-task-json_payload>legend Element Should Contain css=#json_payload "avis_decision": "7", ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} ${link_decision} = Set Variable ${json_payload_loaded['instruction']['path']} ${output_dir_json_payload} ${output_name_json_payload}= Télécharger un fichier ${SESSION_COOKIE} ${PROJECT_URL}${link_decision} ${EXECDIR}${/}binary_files${/} ${base64_file_portlet} = Run base64 ${output_dir_decision_portlet}${output_name_decision_portlet} ${base64_json_payload} = Run base64 ${output_dir_json_payload}${output_name_json_payload} Should Be Equal As Strings ${base64_file_portlet} ${base64_json_payload} ${id_decision_DI} = Get Text css=#task ${id_next_task} = Evaluate ${id_decision_DI} + 1 Vérifier qu'il n'y a pas de création d'autre tâche non concerné ${id_next_task} ${di1_da} Vérification de l'ajout de la task decision lors de l'ajout d'une décision tacite dans le di [Documentation] Permet de vérifier que la tâche decision_DI est bien ajoutée lors de l'ajout de la décision tacite au dossier d'instruction ... et que la tâche ne contient pas de fichier à télécharger. ... Vérifie aussi qu'il n'y a pas de création d'autre tâche non concerné 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 ... depot_electronique=true &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST300TASKNOM02 ... particulier_prenom=TEST300TASKPRENOM02 ... om_collectivite=MARSEILLE ${di2} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1} ${di2_sans_espace} = Sans espace ${di2} ${di2_da} = Replace String Using Regexp ${di2_sans_espace} [A-Z][0-9]+$ ${EMPTY} Ajouter une instruction au DI ${di2} accord tacite (sans arrete) &{task_values} = Create Dictionary ... type=decision_DI ... dossier=${di2_sans_espace} Depuis le contexte d'une task à partir de la recherche avancée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Dictionary Should Not Contain Key ${json_payload_loaded['instruction']} path ${id_decision_DI} = Get Text css=#task ${id_next_task} = Evaluate ${id_decision_DI} + 1 Vérifier qu'il n'y a pas de création d'autre tâche non concerné ${id_next_task} ${di1_da} Vérification de l'ajout et de la consultation d'une tâche de type stream input [Documentation] Permet de vérifier que l'ajout de la tâche à partir du WS de test ... fonctionne correctement # 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-00 ${json_payload} = Replace String ${json_payload} 3XY-DK4-7X AAA-000-00 ${json_payload} = Replace String ${json_payload} 013055 20 013055 19 ${json_payload} = Replace String ${json_payload} 01305520 01305519 ${json_payload} = Replace String ${json_payload} 2020 2019 ${json_payload} = Replace String ${json_payload} 07777P0 01111P0 ${json_payload} = Replace String ${json_payload} "acteur": "EF-DSQ-4512", ${EMPTY} ${payload_dict} = To Json ${json_payload} # Les attributs state et stream ne sont pas nécessaires lors de l'ajout de la tache # Ici ces attributs sont utilisés lors de la vérification des données de la tâches en consultation ${task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${json_payload} Ajouter la tâche par WS ${task_values} # ajout manuellement les éléments qui ont du être défini par défaut Set To Dictionary ${task_values} dossier=${payload_dict["dossier"]["dossier"]} Set To Dictionary ${task_values} state=new Set To Dictionary ${task_values} stream=input Depuis la page d'accueil admin admin Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=fieldset#fieldset-form-task-json_payload>legend ${json_payload_to_compare} = Get Text css=#json_payload Should Be Equal As Strings ${json_payload} ${json_payload_to_compare} Ajout d'une tâche de création de DI via WS, puis traitement [Documentation] Vérifie l'ajout de la tâche via WS et son traitement # En tant qu'admin Depuis la page d'accueil admin admin # 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 Ajouter le paramètre depuis le menu (surcharge) ${param_division} # desactiver l'option dossier_commune et la saisie complète des numéros &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} # définir les paramètres de type de demande &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_PCI ... valeur=DI ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${platau_type_demande_initial} &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_DP ... valeur=DI ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${platau_type_demande_initial} &{param_type_demande_modificatif} = Create Dictionary ... libelle=param_type_demande_modificatif_PCI ... valeur=DM ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_type_demande_modificatif} &{param_type_demande_transfert} = Create Dictionary ... libelle=param_type_demande_transfert_PCI ... valeur=DT ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_type_demande_transfert} # 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} &{loincom_values} = Create Dictionary ... om_collectivite_libelle=LOINCOM_WS ... departement=796 ... commune=095 ... insee=79695 ... direction_code=F ... direction_libelle=Direction de LOINCOM_WS ... direction_chef=Chef ... division_code=F ... division_libelle=Division F ... division_chef=Chef ... guichet_om_utilisateur_nom=Somar Ramos ... guichet_om_utilisateur_email=sramos@openads-test.fr ... guichet_om_utilisateur_login=sramos ... guichet_om_utilisateur_pwd=sramos ... instr_om_utilisateur_nom=Bliguet Teugilb ... instr_om_utilisateur_email=bteugilb@openads-test.fr ... instr_om_utilisateur_login=bteugilb ... instr_om_utilisateur_pwd=bteugilb Isolation d'un contexte ${loincom_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è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}" ${payload_dict} = To Json ${json_payload} # sauvegarde le code d'acteur ${acteur_code} = Set Variable ${payload_dict["external_uids"]["acteur"]} # 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} Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS # 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_saisie_complete} valeur=true Ajouter ou modifier le paramètre depuis le menu ${param_saisie_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 'new', 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 Depuis la page d'accueil admin admin Set To Dictionary ${param_dossier_commune} valeur=true Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} #-- 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} # ajouter le paramètre 'acteur' à la collectivité/au service Ajouter le paramètre depuis le menu platau_acteur_service_consulte ... ${librecom_values["acteur"]} ${librecom_values["om_collectivite_libelle"]} # 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 'new', 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 'new', 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"]} Ajouter ou modifier le paramètre depuis le menu ${param_entite} # ajoute le paramètre 'code_entite' à la collectivité/le service Ajouter le paramètre depuis le menu code_entite ... ${librecom_values["code_entite"]} ${librecom_values["om_collectivite_libelle"]} # 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 'new', 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 Depuis la page d'accueil admin admin # 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-06 ${json_payload} = Replace String ${json_payload} 2SZ-SX8-AZ6 AAA-000-06 ${json_payload} = Replace String ${json_payload} 00009 00009P0 ${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} # 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 'new', 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 # 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} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib} # Commune Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#commune ${oldcom_values["libelle"]} # Code entité ${num_entite_value} = Get Value css=input#numerotation_entite Should Be Equal ${num_entite_value} ${librecom_values["code_entite"]} # Demandeur principale Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_petitionnaire Perry Katy # Date demande = date dépôt Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#date_depot 23/11/2020 # Autres demandeurs Open Fieldset dossier_instruction demandeur Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#liste_demandeur Madame Perry Katy Element Should Contain css=#liste_demandeur Métropole Construction SA Métropole Element Should Contain css=#liste_demandeur Monsieur Bloom Orlando Element Should Contain css=#liste_demandeur 67 rue de l'espérance # Dépôt électronique Element Should Be Visible css=span.om-icon.om-icon-16.om-icon-fix.depot-electronique-16 # 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 # 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 'new', 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 'new', 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é 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 # 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 'new', 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 lien_id_interne_uid_externe Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#fieldset-form-dossier_instruction-lien_id_interne_uid_externe ${payload_dict["external_uids"]["dossier"]} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#fieldset-form-dossier_instruction-lien_id_interne_uid_externe ${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 'new', par défaut) ${passed} = Run Keyword And Return Status Déclencher le traitement des tâches par WS Should Be Equal ${passed} ${FALSE} # fin, suppression des options Depuis la page d'accueil admin admin Set To Dictionary ${param_division} valeur=false Ajouter ou modifier le paramètre depuis le menu ${param_division} Set To Dictionary ${param_saisie_complete} valeur=true Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} Set To Dictionary ${param_dossier_commune} valeur=false Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} Activation de la configuration du filestorage alternatif # On change la configuration du filestorage Move File ..${/}dyn${/}filestorage.inc.php ..${/}dyn${/}filestorage.inc.php.bak Copy File ..${/}tests${/}binary_files${/}alternate_filestorage.inc.php ..${/}dyn${/} Move File ..${/}dyn${/}alternate_filestorage.inc.php ..${/}dyn${/}filestorage.inc.php Ajout d'une tâche ajout_piece en utilisant le filestorage alternatif [Documentation] Ce test case permet de vérifier le bon fonctionnement de l'ajout d'une tâche ajout_piece avec un filesotrage alternatif. ... On ajout tout d'abord la tâche par web service et on vérifie que l'uid contient bien le préfixe fs qui a été configuré dans le fichier ... filesotrage.inc.php. On vérifie ensuite que le fichier a bien été ajouté dans le filestorage alternatif (../var/filestorage_plop) ... et qu'il n'est pas présent dans le filstorage pricipal. On traite la tâche ajout pièce ce qui va lié la pièce à un dossier et on consulte ... la pièce afin de vérifier que l'uid contient bien le préfixe dans le sous titre. # En tant qu'admin Depuis la page d'accueil admin admin # 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 Ajouter le paramètre depuis le menu (surcharge) ${param_division} # desactiver l'option dossier_commune et la saisie complète des numéros &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} # définir les paramètres de type de demande &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_DP ... valeur=DI ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${platau_type_demande_initial} # isole le contexte du test (création d'une collectivité) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS_PIECE_AFS ... departement=016 ... commune=098 ... insee=16098 ... direction_code=O ... direction_libelle=Direction de LIBRECOM_WS_PIECE_AFS ... direction_chef=Chef ... division_code=O ... division_libelle=Division O ... division_chef=Chef ... guichet_om_utilisateur_nom=KhalilAFS GibrAFS ... guichet_om_utilisateur_email=kgibrafs@openads-test.fr ... guichet_om_utilisateur_login=kgibrafs ... guichet_om_utilisateur_pwd=kgibrafs ... instr_om_utilisateur_nom=DomirAFS TambAFS ... instr_om_utilisateur_email=dtambafs@openads-test.fr ... instr_om_utilisateur_login=dtambafs ... instr_om_utilisateur_pwd=dtambafs ... code_entite=LBCOM_16 ... acteur=LIBRECOM-ACT-016-AFS Isolation d'un contexte ${librecom_values} # ajouter le paramètre 'acteur' à la collectivité/au service Ajouter le paramètre depuis le menu platau_acteur_service_consulte ... ${librecom_values["acteur"]} ${librecom_values["om_collectivite_libelle"]} # Ajouter le type de document avec le code '90' tel qu'il est dans la payload ${dnt_code} = Set Variable 95 &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Document numérisé Plat'AU AFS ... document_numerise_type_categorie=Autre Ajouter le type de pièces ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # 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ère le template de payload JSON et le transforme en dictionnaire ${dossier_json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_min.txt # Remplace certaines valeurs ${dossier_json_payload} = Replace String ${dossier_json_payload} EF-DSQ-4512 ${librecom_values["acteur"]} ${dossier_json_payload} = Replace String ${dossier_json_payload} 7SZ-SX8-TR4 000-AAA-10 ${dossier_json_payload} = Replace String ${dossier_json_payload} 2SZ-SX8-AZ6 AAA-000-10 ${dossier_json_payload} = Replace String ${dossier_json_payload} 00009 00001P0 ${dossier_json_payload} = Replace String ${dossier_json_payload} 13055 ${librecom_values["insee"]} ${dossier_payload_dict} = To Json ${dossier_json_payload} # Ajoute d'une tâche de création de DI ${dossier_task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${dossier_json_payload} Ajouter la tâche par WS ${dossier_task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${dossier_msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${dossier_task_values["type"]} ... ${dossier_payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${dossier_msg} ${di_regex} \\1 # En tant qu'instructeur de la collectivité/du service LIBRECOM_WS_PIECE Depuis la page d'accueil kgibrafs kgibrafs # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib} # En tant qu'admin Depuis la page d'accueil admin admin # On récupère le contenu du fichier json_ajout_piece_with_b64.json qui sera notre # json_payload correspondant à la tâche ajout_piece ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_ajout_piece_with_b64.json # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} GH-EQ6-5432 ${librecom_values["acteur"]} ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-AAA-10 ${json_payload} = Replace String ${json_payload} 1EY-RT8-5X PPP-000-10 ${json_payload} = Replace String ${json_payload} FE4-JR5-8W AAA-000-10 ${json_payload} = Replace String ${json_payload} "document_numerise_type_code": "90" "document_numerise_type_code": "95" ${piece_payload_dict} = To Json ${json_payload} ${external_uid_piece_1} = Set Variable ${piece_payload_dict["external_uids"]["piece"]} # Ajoute la tâche d'ajout de pièce ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} # ajout manuellement les éléments qui ont du être défini par défaut Set To Dictionary ${task_values} task=${task_id} Set To Dictionary ${task_values} state=new Set To Dictionary ${task_values} stream=input # se rend sur la page de la tâche #Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Depuis le contexte de la task ${task_id} # vérifie qu'elle a bien été ajoutée Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Log Dictionary ${json_payload_loaded['document_numerise']} Dictionary Should Contain Key ${json_payload_loaded['document_numerise']} uid # L'uid doit contenir le préfixe correspondant au filestorage alternatif ${uid} = Set Variable ${json_payload_loaded['document_numerise']['uid']} ${prefix} = Get Substring ${uid} 0 5 Should Be Equal As Strings ${prefix} fs:// # On enlève le préfixe de l'uid ${uid_without_prefix} = Get Substring ${uid} 5 ${path_1} = Get Substring ${uid} 5 7 ${path_2} = Get Substring ${uid} 5 9 # Vérification dans le filestorage alternatif, le fichier doit être présent File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Vérification dans le filestorage principale, le fichier ne doit pas être présent File Should Not Exist ..${/}var${/}filstorage${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Not Exist ..${/}var${/}filstorage${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Extraction du libellé du DI dans le message ${piece_di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} * ... : pièce : '[^']+' créée sur le dossier d'instruction '([^']+)'.*$ ${piece_di_lib} = Replace String Using Regexp ${msg} ${piece_di_regex} \\1 # Le DI devrait être le même que celui du dossier Should Be Equal ${piece_di_lib} ${dossier_payload_dict["dossier"]["dossier"]} # Depuis la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di_lib} ... Document numérisé Plat'AU # Lors de la consultation de la pièce, on affiche l'uid dans le sous titre. # Cet uid doit correspondre à l'uid avec prefixe ajouté plus haut Page SubTitle Should Contain sousform-document_numerise ${uid} Vérification de l'ajout de la tâche add_piece par ws, puis traitement [Documentation] Permet de vérifier que la tâche ajout_pièce en stream input ajout bien un fichier dans le filestorage ... à partir du contenu du json payload vérifie aussi que l'uid du fichier ajouté est bien enregistré ... dans le json payload # En tant qu'admin Depuis la page d'accueil admin admin # 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 Ajouter le paramètre depuis le menu (surcharge) ${param_division} # desactiver l'option dossier_commune et la saisie complète des numéros &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} # définir les paramètres de type de demande &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_DP ... valeur=DI ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${platau_type_demande_initial} # isole le contexte du test (création d'une collectivité) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS_PIECE ... departement=014 ... commune=095 ... insee=14095 ... direction_code=G ... direction_libelle=Direction de LIBRECOM_WS_PIECE ... direction_chef=Chef ... division_code=G ... division_libelle=Division G ... division_chef=Chef ... guichet_om_utilisateur_nom=Khalil Gibran ... guichet_om_utilisateur_email=kgibran@openads-test.fr ... guichet_om_utilisateur_login=kgibran ... guichet_om_utilisateur_pwd=kgibran ... instr_om_utilisateur_nom=Domir Tambu ... instr_om_utilisateur_email=dtambu@openads-test.fr ... instr_om_utilisateur_login=dtambu ... instr_om_utilisateur_pwd=dtambu ... code_entite=LBCOM_14 ... acteur=LIBRECOM-ACT-014 Isolation d'un contexte ${librecom_values} # ajouter le paramètre 'acteur' à la collectivité/au service Ajouter le paramètre depuis le menu platau_acteur_service_consulte ... ${librecom_values["acteur"]} ${librecom_values["om_collectivite_libelle"]} # Ajouter le type de document avec le code '90' tel qu'il est dans la payload ${dnt_code} = Set Variable 90 &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Document numérisé Plat'AU ... document_numerise_type_categorie=Autre Ajouter le type de pièces ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # 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ère le template de payload JSON et le transforme en dictionnaire ${dossier_json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_min.txt # Remplace certaines valeurs ${dossier_json_payload} = Replace String ${dossier_json_payload} EF-DSQ-4512 ${librecom_values["acteur"]} ${dossier_json_payload} = Replace String ${dossier_json_payload} 7SZ-SX8-TR4 000-AAA-10 ${dossier_json_payload} = Replace String ${dossier_json_payload} 2SZ-SX8-AZ6 AAA-000-10 ${dossier_json_payload} = Replace String ${dossier_json_payload} 00009 00001P0 ${dossier_json_payload} = Replace String ${dossier_json_payload} 13055 ${librecom_values["insee"]} # On remplace le code postal par une valeur trop grande # afin de vérifier si elle va être tronqué ${dossier_json_payload} = Replace String ${dossier_json_payload} ... "terrain_adresse_code_postal" : "75001" "terrain_adresse_code_postal" : "7500138432" ${dossier_payload_dict} = To Json ${dossier_json_payload} # Ajoute d'une tâche de création de DI ${dossier_task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${dossier_json_payload} Ajouter la tâche par WS ${dossier_task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${dossier_msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${dossier_task_values["type"]} ... ${dossier_payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${dossier_msg} ${di_regex} \\1 # En tant qu'instructeur de la collectivité/du service LIBRECOM_WS_PIECE Depuis la page d'accueil kgibran kgibran # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib} # On vérifie que le code postal a bien été tronqué (7500138432 doit devenir 75001) Open Fieldset dossier_instruction localisation Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#terrain_adresse_code_postal 75001 # En tant qu'admin Depuis la page d'accueil admin admin # On récupère le contenu du fichier json_ajout_piece_with_b64.json qui sera notre # json_payload correspondant à la tâche ajout_piece ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_ajout_piece_with_b64.json # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} GH-EQ6-5432 ${librecom_values["acteur"]} ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-AAA-10 ${json_payload} = Replace String ${json_payload} 1EY-RT8-5X PPP-000-10 ${json_payload} = Replace String ${json_payload} FE4-JR5-8W AAA-000-10 ${piece_payload_dict} = To Json ${json_payload} ${external_uid_piece_1} = Set Variable ${piece_payload_dict["external_uids"]["piece"]} # Ajoute la tâche d'ajout de pièce ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} # ajout manuellement les éléments qui ont du être défini par défaut Set To Dictionary ${task_values} task=${task_id} Set To Dictionary ${task_values} state=new Set To Dictionary ${task_values} stream=input # se rend sur la page de la tâche #Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Depuis le contexte de la task ${task_id} # vérifie qu'elle a bien été ajoutée Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Log Dictionary ${json_payload_loaded['document_numerise']} Dictionary Should Contain Key ${json_payload_loaded['document_numerise']} uid ${uid} = Set Variable ${json_payload_loaded['document_numerise']['uid']} # On enlève le préfixe de l'uid ${uid_without_prefix} = Get Substring ${uid} 5 ${path_1} = Get Substring ${uid} 5 7 ${path_2} = Get Substring ${uid} 5 9 # Vérification dans le filestorage File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Extraction du libellé du DI dans le message ${piece_di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} * ... : pièce : '[^']+' créée sur le dossier d'instruction '([^']+)'.*$ ${piece_di_lib} = Replace String Using Regexp ${msg} ${piece_di_regex} \\1 # Le DI devrait être le même que celui du dossier Should Be Equal ${piece_di_lib} ${dossier_payload_dict["dossier"]["dossier"]} # Depuis la page des pièces du dossier Depuis l'onglet des pièces du dossier d'instruction ${di_lib} # Le nom du fichier doit être présent en tant que pièce Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be ... css=table.document_numerise:nth-child(3) td a.lienDocumentNumerise span[title="Télécharger"] ... ${piece_payload_dict["document_numerise"]["nom_fichier"]} # Depuis la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di_lib} ... Document numérisé Plat'AU # La date de création doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#date_creation 27/11/2020 # Le type de pièce doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#document_numerise_type ... Document numérisé Plat'AU # ajout d'une seconde pièce au dossier # Ajouter le type de document avec le code '91' tel qu'il est dans la payload ${dnt_code_2} = Set Variable 91 &{dnt_values_2} = Create Dictionary ... code=${dnt_code_2} ... libelle=Document numérisé Plat'AU 2 ... document_numerise_type_categorie=Autre Ajouter le type de pièces ${dnt_values_2} Valid Message Should Contain Vos modifications ont bien été enregistrées. # json_payload correspondant à la tâche ajout_piece, dont on modifie certaines valeurs ${json_payload} = Replace String ${json_payload} ... "date_creation": "2020-11-27" "date_creation": "2020-12-04" ${json_payload} = Replace String ${json_payload} ... "document_numerise_nature_code": "INIT" "document_numerise_nature_code": "COMP" ${json_payload} = Replace String ${json_payload} ... "document_numerise_type_code": "90" "document_numerise_type_code": "91" ${json_payload} = Replace String ${json_payload} ... "nom_fichier": "2020112790.pdf" "nom_fichier": "2020120490.pdf" # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} PPP-000-10 PPP-000-11 ${piece_payload_dict} = To Json ${json_payload} ${external_uid_piece_2} = Set Variable ${piece_payload_dict["external_uids"]["piece"]} # Ajoute la tâche d'ajout de pièce ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} # ajout manuellement les éléments qui ont du être défini par défaut Set To Dictionary ${task_values} task=${task_id} Set To Dictionary ${task_values} state=new Set To Dictionary ${task_values} stream=input # se rend sur la page de la tâche #Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Depuis le contexte de la task ${task_id} # vérifie qu'elle a bien été ajoutée Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Log Dictionary ${json_payload_loaded['document_numerise']} Dictionary Should Contain Key ${json_payload_loaded['document_numerise']} uid ${uid} = Set Variable ${json_payload_loaded['document_numerise']['uid']} # On enlève le préfixe de l'uid ${uid_without_prefix} = Get Substring ${uid} 5 ${path_1} = Get Substring ${uid} 5 7 ${path_2} = Get Substring ${uid} 5 9 # Vérification dans le filestorage File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Extraction du libellé du DI dans le message ${piece_di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} * ... : pièce : '[^']+' créée sur le dossier d'instruction '([^']+)'.*$ ${piece_di_lib} = Replace String Using Regexp ${msg} ${piece_di_regex} \\1 # Le DI devrait être le même que celui du dossier Should Be Equal ${piece_di_lib} ${dossier_payload_dict["dossier"]["dossier"]} # Depuis la page des pièces du dossier Depuis l'onglet des pièces du dossier d'instruction ${di_lib} # Le nom du fichier doit être présent en tant que pièce Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be ... css=table.document_numerise:nth-child(4) td a.lienDocumentNumerise span[title="Télécharger"] ... ${piece_payload_dict["document_numerise"]["nom_fichier"]} # Depuis la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di_lib} ... Document numérisé Plat'AU 2 # La date de création doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#date_creation 04/12/2020 # Le type de pièce doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#document_numerise_type ... Document numérisé Plat'AU 2 # Vérification liste des identifiants externe sur le DI # piece Depuis le contexte du dossier d'instruction ${di_lib} Open Fieldset dossier_instruction lien_id_interne_uid_externe Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#fieldset-form-dossier_instruction-lien_id_interne_uid_externe ${piece_payload_dict["external_uids"]["dossier"]} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#fieldset-form-dossier_instruction-lien_id_interne_uid_externe ${dossier_payload_dict["external_uids"]["dossier_consultation"]} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#fieldset-form-dossier_instruction-lien_id_interne_uid_externe ${external_uid_piece_1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#fieldset-form-dossier_instruction-lien_id_interne_uid_externe ${external_uid_piece_2} Vérification de l'ajout d'une même pièce sur deux dossiers, le tout ajouté par WS [Documentation] Permet de vérifier que la même pièce peut être ajoutée sur 2 dossiers # En tant qu'admin Depuis la page d'accueil admin admin # 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 Ajouter le paramètre depuis le menu (surcharge) ${param_division} # desactiver l'option dossier_commune et activer la saisie complète des numéros &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=true ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} # définir les paramètres de type de demande &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_DP ... valeur=DI ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${platau_type_demande_initial} # isole le contexte du test (création d'une collectivité) &{librecom_multi_1_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS_PIECE_MULTI_1 ... departement=015 ... commune=085 ... insee=15085 ... direction_code=T ... direction_libelle=Direction de LIBRECOM_WS_PIECE_MULTI_1 ... direction_chef=Chef ... division_code=T ... division_libelle=Division T ... division_chef=Chef ... guichet_om_utilisateur_nom=Joseph Proudhon ... guichet_om_utilisateur_email=jproudhon@openads-test.fr ... guichet_om_utilisateur_login=jproudhon ... guichet_om_utilisateur_pwd=jproudhon ... instr_om_utilisateur_nom=François Rebalais ... instr_om_utilisateur_email=frebalais@openads-test.fr ... instr_om_utilisateur_login=frebalais ... instr_om_utilisateur_pwd=frebalais ... code_entite=LBCOM_15 ... acteur=LIBRECOM-ACT-015 Isolation d'un contexte ${librecom_multi_1_values} # ajouter le paramètre 'acteur' à la collectivité/au service Ajouter le paramètre depuis le menu platau_acteur_service_consulte ... ${librecom_multi_1_values["acteur"]} ${librecom_multi_1_values["om_collectivite_libelle"]} # Active l'option entité pour la collectivité/le service &{param_entite} = Create Dictionary ... libelle=option_om_collectivite_entity ... valeur=true ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Ajouter ou modifier le paramètre depuis le menu ${param_entite} # Ajoute le paramètre 'code_entite' à la collectivité/le service Ajouter le paramètre depuis le menu code_entite ... ${librecom_multi_1_values["code_entite"]} ${librecom_multi_1_values["om_collectivite_libelle"]} # Ajouter le type de document avec le code '92' tel qu'il est dans la payload ${dnt_code} = Set Variable 92 &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Document numérisé Plat'AU ... document_numerise_type_categorie=Autre Ajouter le type de pièces ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # Ajout d'un dossier # Récupère le template de payload JSON et le transforme en dictionnaire ${dossier_json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_min.txt # Remplace certaines valeurs ${dossier_json_payload} = Replace String ${dossier_json_payload} EF-DSQ-4512 ${librecom_multi_1_values["acteur"]} ${dossier_json_payload} = Replace String ${dossier_json_payload} 7SZ-SX8-TR4 000-AAA-15 ${dossier_json_payload} = Replace String ${dossier_json_payload} 2SZ-SX8-AZ6 AAA-000-15 ${dossier_json_payload} = Replace String ${dossier_json_payload} 00009 000011P0 ${dossier_json_payload} = Replace String ${dossier_json_payload} 13055 ${librecom_multi_1_values["insee"]} ${dossier_payload_dict} = To Json ${dossier_json_payload} # Ajoute d'une tâche de création de DI ${dossier_task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${dossier_json_payload} Ajouter la tâche par WS ${dossier_task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${dossier_msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${dossier_task_values["type"]} ... ${dossier_payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${dossier_msg} ${di_regex} \\1 ${di_lib_sans_espace} = Sans espace ${di_lib} ${di_to_search} = Replace String ${di_lib_sans_espace} ${librecom_multi_1_values["code_entite"]} ${SPACE}${librecom_multi_1_values["code_entite"]} # En tant qu'instructeur de la collectivité/du service LIBRECOM_WS_PIECE_MULTI_1 Depuis la page d'accueil jproudhon jproudhon # 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} # Ajout de la pièce au dossier # En tant qu'admin Depuis la page d'accueil admin admin # On récupère le contenu du fichier json_ajout_piece_with_b64.json qui sera notre # json_payload correspondant à la tâche ajout_piece ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_ajout_piece_with_b64.json # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} GH-EQ6-5432 ${librecom_multi_1_values["acteur"]} ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-AAA-15 ${json_payload} = Replace String ${json_payload} 1EY-RT8-5X PPP-000-15 ${json_payload} = Replace String ${json_payload} "dossier_consultation": "FE4-JR5-8W", ${EMPTY} ${json_payload} = Replace String ${json_payload} "document_numerise_type_code": "90" "document_numerise_type_code": "92" ${piece_payload_dict} = To Json ${json_payload} # Ajoute la tâche d'ajout de pièce ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} # ajout manuellement les éléments qui ont du être défini par défaut Set To Dictionary ${task_values} task=${task_id} Set To Dictionary ${task_values} state=new Set To Dictionary ${task_values} stream=input # se rend sur la page de la tâche #Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Depuis le contexte de la task ${task_id} # vérifie qu'elle a bien été ajoutée Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Log Dictionary ${json_payload_loaded['document_numerise']} Dictionary Should Contain Key ${json_payload_loaded['document_numerise']} uid ${uid} = Set Variable ${json_payload_loaded['document_numerise']['uid']} # On enlève le préfixe de l'uid ${uid_without_prefix} = Get Substring ${uid} 5 ${path_1} = Get Substring ${uid} 5 7 ${path_2} = Get Substring ${uid} 5 9 # Vérification dans le filestorage File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Extraction du libellé du DI dans le message ${piece_di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} * ... : pièce : '[^']+' créée sur le dossier d'instruction '([^']+)'.*$ ${piece_di_lib} = Replace String Using Regexp ${msg} ${piece_di_regex} \\1 # Le DI devrait être le même que celui du dossier Should Be Equal ${piece_di_lib} ${di_lib_sans_espace} # Depuis la page des pièces du dossier Depuis l'onglet des pièces du dossier d'instruction ${di_to_search} # Le nom du fichier doit être présent en tant que pièce Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be ... css=table.document_numerise:nth-child(3) td a.lienDocumentNumerise span[title="Télécharger"] ... ${piece_payload_dict["document_numerise"]["nom_fichier"]} # Depuis la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di_to_search} ... Document numérisé Plat'AU # La date de création doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#date_creation 27/11/2020 # Le type de pièce doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#document_numerise_type ... Document numérisé Plat'AU # Ajout d'un second dossier (simulant une seconde consultation sur le même dossier) # En tant qu'admin Depuis la page d'accueil admin admin # Ajout d'une seconde entité &{librecom_multi_2_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS_PIECE_MULTI_2 ... departement=016 ... commune=086 ... insee=16086 ... direction_code=C ... direction_libelle=Direction de LIBRECOM_WS_PIECE_MULTI_2 ... direction_chef=Chef ... division_code=C ... division_libelle=Division C ... division_chef=Chef ... guichet_om_utilisateur_nom=Peter Kropotkin ... guichet_om_utilisateur_email=pkropotkin@openads-test.fr ... guichet_om_utilisateur_login=pkropotkin ... guichet_om_utilisateur_pwd=pkropotkin ... instr_om_utilisateur_nom=Mikhail Bakunin ... instr_om_utilisateur_email=mbakunin@openads-test.fr ... instr_om_utilisateur_login=mbakunin ... instr_om_utilisateur_pwd=mbakunin ... code_entite=LBCOM_16 ... acteur=LIBRECOM-ACT-016 Isolation d'un contexte ${librecom_multi_2_values} # ajouter le paramètre 'acteur' à la collectivité/au service Ajouter le paramètre depuis le menu platau_acteur_service_consulte ... ${librecom_multi_2_values["acteur"]} ${librecom_multi_2_values["om_collectivite_libelle"]} # Active l'option entité pour la collectivité/le service &{param_entite} = Create Dictionary ... libelle=option_om_collectivite_entity ... valeur=true ... om_collectivite=${librecom_multi_2_values["om_collectivite_libelle"]} Ajouter ou modifier le paramètre depuis le menu ${param_entite} # Ajoute le paramètre 'code_entite' à la collectivité/le service Ajouter le paramètre depuis le menu code_entite ... ${librecom_multi_2_values["code_entite"]} ${librecom_multi_2_values["om_collectivite_libelle"]} # Ajout d'un dossier # Remplace certaines valeurs, mais conserve le même external_uid pour le dossier ${dossier_json_payload} = Replace String ${dossier_json_payload} ${librecom_multi_1_values["acteur"]} ${librecom_multi_2_values["acteur"]} ${dossier_json_payload} = Replace String ${dossier_json_payload} AAA-000-15 AAA-000-16 ${dossier_payload_dict} = To Json ${dossier_json_payload} # Ajoute d'une tâche de création de DI ${dossier_task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${dossier_json_payload} Ajouter la tâche par WS ${dossier_task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${dossier_msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${dossier_task_values["type"]} ... ${dossier_payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${dossier_msg} ${di_regex} \\1 ${di_lib_sans_espace} = Sans espace ${di_lib} ${di_to_search} = Replace String ${di_lib_sans_espace} ${librecom_multi_2_values["code_entite"]} ${SPACE}${librecom_multi_2_values["code_entite"]} # En tant qu'instructeur de la collectivité/du service LIBRECOM_WS_PIECE_MULTI_2 Depuis la page d'accueil pkropotkin pkropotkin # 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} # Ajout de la même pièce au second dossier # En tant qu'admin Depuis la page d'accueil admin admin # On récupère le contenu du fichier json_ajout_piece_with_b64.json qui sera notre # json_payload correspondant à la tâche ajout_piece ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_ajout_piece_with_b64.json # Remplace certaines valeurs, et conserve le même external_uid que la pièce ajoutée au dossier # précédent ${json_payload} = Replace String ${json_payload} GH-EQ6-5432 ${librecom_multi_2_values["acteur"]} ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-AAA-15 ${json_payload} = Replace String ${json_payload} 1EY-RT8-5X PPP-000-15 ${json_payload} = Replace String ${json_payload} "dossier_consultation": "FE4-JR5-8W", ${EMPTY} ${piece_payload_dict} = To Json ${json_payload} # Ajoute la tâche d'ajout de pièce ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} # ajout manuellement les éléments qui ont du être défini par défaut Set To Dictionary ${task_values} task=${task_id} Set To Dictionary ${task_values} state=new Set To Dictionary ${task_values} stream=input # se rend sur la page de la tâche #Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Depuis le contexte de la task ${task_id} # vérifie qu'elle a bien été ajoutée Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Log Dictionary ${json_payload_loaded['document_numerise']} Dictionary Should Contain Key ${json_payload_loaded['document_numerise']} uid ${uid} = Set Variable ${json_payload_loaded['document_numerise']['uid']} # On enlève le préfixe de l'uid ${uid_without_prefix} = Get Substring ${uid} 5 ${path_1} = Get Substring ${uid} 5 7 ${path_2} = Get Substring ${uid} 5 9 # Vérification dans le filestorage File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Extraction du libellé du DI dans le message ${piece_di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} * ... : pièce : '[^']+' créée sur le dossier d'instruction '([^']+)'.*$ ${piece_di_lib} = Replace String Using Regexp ${msg} ${piece_di_regex} \\1 # Le DI devrait être le même que celui du dossier Should Be Equal ${piece_di_lib} ${di_lib_sans_espace} # Depuis la page des pièces du dossier Depuis l'onglet des pièces du dossier d'instruction ${di_to_search} # Le nom du fichier doit être présent en tant que pièce Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be ... css=table.document_numerise:nth-child(3) td a.lienDocumentNumerise span[title="Télécharger"] ... ${piece_payload_dict["document_numerise"]["nom_fichier"]} # Depuis la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di_to_search} ... Document numérisé Plat'AU # La date de création doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#date_creation 27/11/2020 # Le type de pièce doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#document_numerise_type ... Document numérisé Plat'AU # desactiver l'option saisie complète des numéros &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} Vérification de l'ajout d'une même pièce sur deux dossiers pour le même acteur [Documentation] Permet de vérifier que la même pièce peut être ajoutée sur 2 dossiers ... avec le même acteur # En tant qu'admin Depuis la page d'accueil admin admin # 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 Ajouter le paramètre depuis le menu (surcharge) ${param_division} # desactiver l'option dossier_commune et activer la saisie complète des numéros &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=true ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} # définir les paramètres de type de demande &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_DP ... valeur=DI ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${platau_type_demande_initial} # isole le contexte du test (création d'une collectivité) &{librecom_multi_3_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS_PIECE_MULTI_3 ... departement=018 ... commune=088 ... insee=18088 ... direction_code=D ... direction_libelle=Direction de LIBRECOM_WS_PIECE_MULTI_3 ... direction_chef=Chef ... division_code=D ... division_libelle=Division D ... division_chef=Chef ... guichet_om_utilisateur_nom=Malcom Ferdinand ... guichet_om_utilisateur_email=mferdinand@openads-test.fr ... guichet_om_utilisateur_login=mferdinand ... guichet_om_utilisateur_pwd=mferdinand ... instr_om_utilisateur_nom=Dominique Bourg ... instr_om_utilisateur_email=dbourg@openads-test.fr ... instr_om_utilisateur_login=dbourg ... instr_om_utilisateur_pwd=dbourg ... code_entite=LBCOM_18 ... acteur=LIBRECOM-ACT-018 Isolation d'un contexte ${librecom_multi_3_values} # ajouter le paramètre 'acteur' à la collectivité/au service Ajouter le paramètre depuis le menu platau_acteur_service_consulte ... ${librecom_multi_3_values["acteur"]} ${librecom_multi_3_values["om_collectivite_libelle"]} # Active l'option entité pour la collectivité/le service &{param_entite} = Create Dictionary ... libelle=option_om_collectivite_entity ... valeur=true ... om_collectivite=${librecom_multi_3_values["om_collectivite_libelle"]} Ajouter ou modifier le paramètre depuis le menu ${param_entite} # Ajoute le paramètre 'code_entite' à la collectivité/le service Ajouter le paramètre depuis le menu code_entite ... ${librecom_multi_3_values["code_entite"]} ${librecom_multi_3_values["om_collectivite_libelle"]} # Ajouter le type de document avec le code '93' tel qu'il est dans la payload ${dnt_code} = Set Variable 93 &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Document numérisé Plat'AU ... document_numerise_type_categorie=Autre Ajouter le type de pièces ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # Ajout d'un dossier # Récupère le template de payload JSON et le transforme en dictionnaire ${dossier_json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_min.txt # Remplace certaines valeurs ${dossier_json_payload} = Replace String ${dossier_json_payload} EF-DSQ-4512 ${librecom_multi_3_values["acteur"]} ${dossier_json_payload} = Replace String ${dossier_json_payload} 7SZ-SX8-TR4 000-AAA-18 ${dossier_json_payload} = Replace String ${dossier_json_payload} 2SZ-SX8-AZ6 AAA-000-18 ${dossier_json_payload} = Replace String ${dossier_json_payload} 00009 000018P0 ${dossier_json_payload} = Replace String ${dossier_json_payload} 13055 ${librecom_multi_3_values["insee"]} ${dossier_payload_dict} = To Json ${dossier_json_payload} # Ajoute d'une tâche de création de DI ${dossier_task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${dossier_json_payload} Ajouter la tâche par WS ${dossier_task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${dossier_msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex_1} = Catenate ^.*\\[[0-9]+\\] ${dossier_task_values["type"]} ... ${dossier_payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib_1} = Replace String Using Regexp ${dossier_msg} ${di_regex_1} \\1 ${di_lib_sans_espace_1} = Sans espace ${di_lib_1} ${di_to_search_1} = Replace String ${di_lib_sans_espace_1} ${librecom_multi_3_values["code_entite"]} ${SPACE}${librecom_multi_3_values["code_entite"]} # En tant qu'instructeur de la collectivité/du service LIBRECOM_WS_PIECE_MULTI_3 Depuis la page d'accueil mferdinand mferdinand # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction par recherche ${di_to_search_1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_to_search_1} # Ajout d'un second dossier (simulant une seconde consultation sur le même dossier) # En tant qu'admin Depuis la page d'accueil admin admin # Remplace certaines valeurs ${dossier_json_payload} = Replace String ${dossier_json_payload} AAA-000-18 BBB-000-18 ${dossier_payload_dict} = To Json ${dossier_json_payload} # Ajoute d'une tâche de création de DI ${dossier_task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${dossier_json_payload} Ajouter la tâche par WS ${dossier_task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${dossier_msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex_2} = Catenate ^.*\\[[0-9]+\\] ${dossier_task_values["type"]} ... ${dossier_payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib_2} = Replace String Using Regexp ${dossier_msg} ${di_regex_2} \\1 ${di_lib_sans_espace_2} = Sans espace ${di_lib_2} ${di_to_search_2} = Replace String ${di_lib_sans_espace_2} ${librecom_multi_3_values["code_entite"]} ${SPACE}${librecom_multi_3_values["code_entite"]} # En tant qu'instructeur de la collectivité/du service LIBRECOM_WS_PIECE_MULTI_3 Depuis la page d'accueil mferdinand mferdinand # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction par recherche ${di_to_search_2} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_to_search_2} # Ajout de la pièce au 1er dossier # En tant qu'admin Depuis la page d'accueil admin admin # On récupère le contenu du fichier json_ajout_piece_with_b64.json qui sera notre # json_payload correspondant à la tâche ajout_piece ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_ajout_piece_with_b64.json # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} GH-EQ6-5432 ${librecom_multi_3_values["acteur"]} ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-AAA-18 ${json_payload} = Replace String ${json_payload} 1EY-RT8-5X PPP-000-18 ${json_payload} = Replace String ${json_payload} FE4-JR5-8W AAA-000-18 ${json_payload} = Replace String ${json_payload} "document_numerise_type_code": "90" "document_numerise_type_code": "93" ${piece_payload_dict} = To Json ${json_payload} # Ajoute la tâche d'ajout de pièce ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} # ajout manuellement les éléments qui ont du être défini par défaut Set To Dictionary ${task_values} task=${task_id} Set To Dictionary ${task_values} state=new Set To Dictionary ${task_values} stream=input # se rend sur la page de la tâche #Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Depuis le contexte de la task ${task_id} # vérifie qu'elle a bien été ajoutée Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Log Dictionary ${json_payload_loaded['document_numerise']} Dictionary Should Contain Key ${json_payload_loaded['document_numerise']} uid ${uid} = Set Variable ${json_payload_loaded['document_numerise']['uid']} # On enlève le préfixe de l'uid ${uid_without_prefix} = Get Substring ${uid} 5 ${path_1} = Get Substring ${uid} 5 7 ${path_2} = Get Substring ${uid} 5 9 # Vérification dans le filestorage File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Extraction du libellé du DI dans le message ${piece_di_regex_1} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} * ... : pièce : '[^']+' créée sur le dossier d'instruction '([^']+)'.*$ ${piece_di_lib_1} = Replace String Using Regexp ${msg} ${piece_di_regex_1} \\1 # Le DI devrait être le même que celui du dossier Should Be Equal ${piece_di_lib_1} ${di_lib_sans_espace_1} # Depuis la page des pièces du dossier Depuis l'onglet des pièces du dossier d'instruction ${di_to_search_1} # Le nom du fichier doit être présent en tant que pièce Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be ... css=table.document_numerise:nth-child(3) td a.lienDocumentNumerise span[title="Télécharger"] ... ${piece_payload_dict["document_numerise"]["nom_fichier"]} # Depuis la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di_to_search_1} ... Document numérisé Plat'AU # La date de création doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#date_creation 27/11/2020 # Le type de pièce doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#document_numerise_type ... Document numérisé Plat'AU # Ajout de la même pièce au second dossier # En tant qu'admin Depuis la page d'accueil admin admin # modifie l'ID de la consultation ${json_payload} = Replace String ${json_payload} AAA-000-18 BBB-000-18 ${piece_payload_dict} = To Json ${json_payload} # Ajoute la tâche d'ajout de pièce ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} # ajout manuellement les éléments qui ont du être défini par défaut Set To Dictionary ${task_values} task=${task_id} Set To Dictionary ${task_values} state=new Set To Dictionary ${task_values} stream=input # se rend sur la page de la tâche #Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Depuis le contexte de la task ${task_id} # vérifie qu'elle a bien été ajoutée Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Log Dictionary ${json_payload_loaded['document_numerise']} Dictionary Should Contain Key ${json_payload_loaded['document_numerise']} uid ${uid} = Set Variable ${json_payload_loaded['document_numerise']['uid']} # On enlève le préfixe de l'uid ${uid_without_prefix} = Get Substring ${uid} 5 ${path_1} = Get Substring ${uid} 5 7 ${path_2} = Get Substring ${uid} 5 9 # Vérification dans le filestorage File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Extraction du libellé du DI dans le message ${piece_di_regex_2} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} * ... : pièce : '[^']+' créée sur le dossier d'instruction '([^']+)'.*$ ${piece_di_lib_2} = Replace String Using Regexp ${msg} ${piece_di_regex_2} \\1 # Le DI devrait être le même que celui du dossier Should Be Equal ${piece_di_lib_2} ${di_lib_sans_espace_2} # Depuis la page des pièces du dossier Depuis l'onglet des pièces du dossier d'instruction ${di_to_search_2} # Le nom du fichier doit être présent en tant que pièce Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be ... css=table.document_numerise:nth-child(3) td a.lienDocumentNumerise span[title="Télécharger"] ... ${piece_payload_dict["document_numerise"]["nom_fichier"]} # Depuis la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di_to_search_2} ... Document numérisé Plat'AU # La date de création doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#date_creation 27/11/2020 # Le type de pièce doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#document_numerise_type ... Document numérisé Plat'AU # desactiver l'option saisie complète des numéros &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} Vérification de l'ajout de la tâche add_piece par IHM web, puis traitement [Documentation] Permet de vérifier que l'ajout d'une pièce via l'IHM fonctionne # En tant qu'admin Depuis la page d'accueil admin admin # 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 Ajouter le paramètre depuis le menu (surcharge) ${param_division} # desactiver l'option dossier_commune et la saisie complète des numéros &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} # définir les paramètres de type de demande &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_DP ... valeur=DI ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${platau_type_demande_initial} # isole le contexte du test (création d'une collectivité) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_IHM_PIECE ... departement=017 ... commune=097 ... insee=17097 ... direction_code=Q ... direction_libelle=Direction de LIBRECOM_IHM_PIECE ... direction_chef=Chef ... division_code=Q ... division_libelle=Division Q ... division_chef=Chef ... guichet_om_utilisateur_nom=Emmanuel Kant ... guichet_om_utilisateur_email=ekant@openads-test.fr ... guichet_om_utilisateur_login=ekant ... guichet_om_utilisateur_pwd=ekant ... instr_om_utilisateur_nom=Bertrand Russell ... instr_om_utilisateur_email=brussell@openads-test.fr ... instr_om_utilisateur_login=brussell ... instr_om_utilisateur_pwd=brussell ... code_entite=LBCOM_17 ... acteur=LIBRECOM-ACT-017 Isolation d'un contexte ${librecom_values} # ajouter le paramètre 'acteur' à la collectivité/au service Ajouter le paramètre depuis le menu platau_acteur_service_consulte ... ${librecom_values["acteur"]} ${librecom_values["om_collectivite_libelle"]} # Ajouter le type de document avec le code '94' tel qu'il est dans la payload ${dnt_code} = Set Variable 94 &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Document numérisé Plat'AU ... document_numerise_type_categorie=Autre Ajouter le type de pièces ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # 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ère le template de payload JSON et le transforme en dictionnaire ${dossier_json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_min.txt # Remplace certaines valeurs ${dossier_json_payload} = Replace String ${dossier_json_payload} EF-DSQ-4512 ${librecom_values["acteur"]} ${dossier_json_payload} = Replace String ${dossier_json_payload} 7SZ-SX8-TR4 000-AAA-17 ${dossier_json_payload} = Replace String ${dossier_json_payload} 2SZ-SX8-AZ6 AAA-000-17 ${dossier_json_payload} = Replace String ${dossier_json_payload} 00009 00001P0 ${dossier_json_payload} = Replace String ${dossier_json_payload} 13055 ${librecom_values["insee"]} ${dossier_payload_dict} = To Json ${dossier_json_payload} # Ajoute d'une tâche de création de DI ${dossier_task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${dossier_json_payload} Ajouter la tâche par WS ${dossier_task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${dossier_msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${dossier_task_values["type"]} ... ${dossier_payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${dossier_msg} ${di_regex} \\1 # En tant qu'instructeur de la collectivité/du service LIBRECOM_IHM_PIECE Depuis la page d'accueil ekant ekant # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib} # En tant qu'admin Depuis la page d'accueil admin admin # On récupère le contenu du fichier json_ajout_piece_with_b64.json qui sera notre # json_payload correspondant à la tâche ajout_piece ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_ajout_piece_with_b64.json # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} GH-EQ6-5432 ${librecom_values["acteur"]} ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X 000-AAA-17 ${json_payload} = Replace String ${json_payload} 1EY-RT8-5X PPP-000-17 ${json_payload} = Replace String ${json_payload} "dossier_consultation": "FE4-JR5-8W", ${EMPTY} ${json_payload} = Replace String ${json_payload} "document_numerise_type_code": "90" "document_numerise_type_code": "94" ${piece_payload_dict} = To Json ${json_payload} # Ajoute la tâche via l'IHM ${task_data_type} = Create List ${NONE} add_piece ${task_data_payload} = Create List ${NONE} ${json_payload} ${task_data} = Create Dictionary ... type=${task_data_type} ... json_payload=${task_data_payload} ${COOKIE} = Get Cookie ${SESSION_COOKIE} ${cookies} = Create Dictionary ${SESSION_COOKIE}=${COOKIE.value} ${session} = Set Variable ${PROJECT_NAME}_web_ihm Create Session ${session} ${PROJECT_URL} cookies=${cookies} ${response} = Post Request ${session} /app/index.php?module=form&obj=task&action=996 files=${task_data} # get the task ID by parsing the response ${task_id_msg_matches} = Get Regexp Matches ${response.content} T\xc3\xa2che ([0-9]+) ajout\xc3\xa9e avec succ\xc3\xa8s 1 Length Should Be ${task_id_msg_matches} 1 ${task_id} = Get From List ${task_id_msg_matches} 0 # créé le dictionnaire qui va permettre de vérifier les infos de la tâche ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ... task=${task_id} ... state=new ... stream=input # se rend sur la page de la tâche #Depuis le contexte d'une task à partir de la recherche avancée ${task_values} Depuis le contexte de la task ${task_id} # vérifie qu'elle a bien été ajoutée Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${json_payload_loaded} = Récupérer le contenu du champ json_payload ${task_values} Log Dictionary ${json_payload_loaded['document_numerise']} Dictionary Should Contain Key ${json_payload_loaded['document_numerise']} uid ${uid} = Set Variable ${json_payload_loaded['document_numerise']['uid']} # On enlève le préfixe de l'uid ${uid_without_prefix} = Get Substring ${uid} 5 ${path_1} = Get Substring ${uid} 5 7 ${path_2} = Get Substring ${uid} 5 9 # Vérification dans le filestorage File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix} File Should Exist ..${/}var${/}${alternate_filestorage}${/}${path_1}${/}${path_2}${/}${uid_without_prefix}.info # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Extraction du libellé du DI dans le message ${piece_di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} * ... : pièce : '[^']+' créée sur le dossier d'instruction '([^']+)'.*$ ${piece_di_lib} = Replace String Using Regexp ${msg} ${piece_di_regex} \\1 # Le DI devrait être le même que celui du dossier Should Be Equal ${piece_di_lib} ${dossier_payload_dict["dossier"]["dossier"]} # Depuis la page des pièces du dossier Depuis l'onglet des pièces du dossier d'instruction ${di_lib} # Le nom du fichier doit être présent en tant que pièce Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be ... css=table.document_numerise:nth-child(3) td a.lienDocumentNumerise span[title="Télécharger"] ... ${piece_payload_dict["document_numerise"]["nom_fichier"]} # Depuis la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di_lib} ... Document numérisé Plat'AU # La date de création doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#date_creation 27/11/2020 # Le type de pièce doit correspondre Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Text Should Be css=#document_numerise_type ... Document numérisé Plat'AU Ajout d'une tâche de création de PeC et d'avis de consultation via WS, puis traitement [Documentation] Vérification de la création des tâches *pec_metier_consultation* et ... *avis_consultation* en stream output. # En tant qu'admin Depuis la page d'accueil admin admin # 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 Ajouter le paramètre depuis le menu (surcharge) ${param_division} # desactiver l'option dossier_commune et activer la saisie complète des numéros &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=false ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_dossier_commune} &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=true ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${param_saisie_complete} # définir les paramètres de type de demande &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_DP ... valeur=DI ... om_collectivite=agglo Ajouter ou modifier le paramètre depuis le menu ${platau_type_demande_initial} # Active le mode service consulté &{param_division} = Create Dictionary ... libelle=option_mode_service_consulte ... valeur=true ... om_collectivite=agglo Ajouter le paramètre depuis le menu (surcharge) ${param_division} # isole le contexte du test (création d'une collectivité) &{librecom_multi_1_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS_PEC_AVIS_1 ... departement=06 ... commune=095 ... insee=16095 ... direction_code=U ... direction_libelle=Direction de LIBRECOM_WS_PEC_AVIS_1 ... direction_chef=Chef ... division_code=U ... division_libelle=Division U ... division_chef=Chef ... guichet_om_utilisateur_nom=Adrien Caya ... guichet_om_utilisateur_email=acaya@openads-test.fr ... guichet_om_utilisateur_login=acaya ... guichet_om_utilisateur_pwd=acaya ... instr_om_utilisateur_nom=Mandel Deslauriers ... instr_om_utilisateur_email=mdeslauriers@openads-test.fr ... instr_om_utilisateur_login=mdeslauriers ... instr_om_utilisateur_pwd=mdeslauriers ... code_entite=LBCOM_19 ... acteur=LIBRECOM-ACT-019 Isolation d'un contexte ${librecom_multi_1_values} # ajouter le paramètre 'acteur' à la collectivité/au service Ajouter le paramètre depuis le menu platau_acteur_service_consulte ... ${librecom_multi_1_values["acteur"]} ${librecom_multi_1_values["om_collectivite_libelle"]} # Active l'option entité pour la collectivité/le service &{param_entite} = Create Dictionary ... libelle=option_om_collectivite_entity ... valeur=true ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Ajouter ou modifier le paramètre depuis le menu ${param_entite} # Ajoute le paramètre 'code_entite' à la collectivité/le service Ajouter le paramètre depuis le menu code_entite ... ${librecom_multi_1_values["code_entite"]} ${librecom_multi_1_values["om_collectivite_libelle"]} # Ajoute l'action et l'événement pour changer la prise en compte métier &{args_action} = Create Dictionary ... action=changer_pec ... libelle=Changer PeC ... regle_pec_metier=pec_metier Ajouter l'action depuis le menu ${args_action} @{etat_source} = Create List delai de notification envoye @{type_di} = Create List DP - P - Initiale &{args_evenement} = Create Dictionary ... libelle=300 - Prise en compte métier ... etats_depuis_lequel_l_evenement_est_disponible=${etat_source} ... dossier_instruction_type=${type_di} ... action=Changer PeC ... etat=delai de notification envoye ... pec_metier=Pris en compte Ajouter l'événement depuis le menu ${args_evenement} # Ajout d'un dossier # Récupère le template de payload JSON et le transforme en dictionnaire ${dossier_json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_payload_min.txt # Remplace certaines valeurs ${dossier_json_payload} = Replace String ${dossier_json_payload} EF-DSQ-4512 ${librecom_multi_1_values["acteur"]} ${dossier_json_payload} = Replace String ${dossier_json_payload} 7SZ-SX8-TR4 000-AAA-19 ${dossier_json_payload} = Replace String ${dossier_json_payload} 2SZ-SX8-AZ6 AAA-000-19 ${dossier_json_payload} = Replace String ${dossier_json_payload} 00009 000012P0 ${dossier_json_payload} = Replace String ${dossier_json_payload} 13055 ${librecom_multi_1_values["insee"]} ${dossier_payload_dict} = To Json ${dossier_json_payload} # Ajoute d'une tâche de création de DI ${dossier_task_values} = Create Dictionary ... type=create_DI_for_consultation ... json_payload=${dossier_json_payload} Ajouter la tâche par WS ${dossier_task_values} # Lancer le traitement des tâches (entrantes avec statut 'new', par défaut) ${dossier_msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${dossier_task_values["type"]} ... ${dossier_payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${dossier_msg} ${di_regex} \\1 ${di_lib_sans_espace} = Sans espace ${di_lib} ${di_to_search} = Replace String ${di_lib_sans_espace} ${librecom_multi_1_values["code_entite"]} ${SPACE}${librecom_multi_1_values["code_entite"]} ${di_to_search_se} = Sans espace ${di_to_search} # Ajout d'une instruction de prise en compte et vérification de la modification # sur le dossier d'instruction, ainsi que de la création de la tâche ${instr_pec} = Ajouter une instruction au DI ${di_to_search} 300 - Prise en compte métier Depuis le contexte du dossier d'instruction par recherche ${di_to_search} Form Static Value Should Be pec_metier ${args_evenement.pec_metier} &{task_values} = Create Dictionary ... type=pec_metier_consultation ... dossier=${di_to_search_se} ... state=new ... object_id=${instr_pec} ... link_dossier=${di_to_search_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # Ajoute l'avis de décision et l'événement pour changer l'avis &{ad_values} = Create Dictionary ... libelle=Avis favorable ... typeavis=favorable ... avis_decision_type=Conforme ... avis_decision_nature=Favorable Ajouter l'avis de décision ${ad_values} @{etat_source} = Create List delai de notification envoye @{type_di} = Create List DP - P - Initiale &{args_evenement} = Create Dictionary ... libelle=300 - Avis favorable ... etats_depuis_lequel_l_evenement_est_disponible=${etat_source} ... dossier_instruction_type=${type_di} ... action=accepter un dossier ... etat=dossier accepter ... avis_decision=${ad_values.libelle} Ajouter l'événement depuis le menu ${args_evenement} # Ajout d'une instruction de décision et vérification de la création de la tâche ${instr_pec} = Ajouter une instruction au DI ${di_to_search} 300 - Avis favorable &{task_values} = Create Dictionary ... type=avis_consultation ... dossier=${di_to_search_se} ... state=new ... object_id=${instr_pec} ... link_dossier=${di_to_search_se} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Désactivation de la configuration du filestorage alternatif # On remet la configuration du filestorage par défaut Move File ..${/}dyn${/}filestorage.inc.php.bak ..${/}dyn${/}filestorage.inc.php