*** Settings *** Documentation Vérification que tous les documents ajoutés depuis les sous-onglets ... de Pièces & Documents sont bien normalisés lors que l'option est activée Resource resources/resources.robot Suite Setup Run Keywords ... For Suite Setup ... AND Composition du jeu de données Suite Teardown Run Keywords ... Décomposition du jeu de données ... AND For Suite Teardown *** Keywords *** Composition du jeu de données [Documentation] Préparation du jeu de données nécessaire pour les tests : ... - activation de l'option option_normaliser_nommage_document_numerise ... - isolation d'un contexte dédié au test ... - Ajout d'un dossier et d'un uid_externe qu'il lui est associé ... - Rend transmissible les PCI ... - Paramètre un acteur &{om_param} = Create Dictionary ... libelle=option_normaliser_nommage_document_numerise ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} &{om_param} = Create Dictionary ... libelle=option_notification_piece_numerisee ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Depuis la page d'accueil admin admin Rendre les types de dossier d'autorisation détaillés utilisés transmissible à Plat'AU PCI &{contexte_values} = Create Dictionary ... om_collectivite_libelle=150_03_COLL ... departement=003 ... commune=150 ... insee=03150 ... direction_code=X ... direction_libelle=Direction de 150_03_COLL ... direction_chef=Chef ... division_code=150_3 ... division_libelle=Division 150_3 ... division_chef=Chef ... guichet_om_utilisateur_nom=guichet 150_03 ... guichet_om_utilisateur_email=g150_03@openads-test.fr ... guichet_om_utilisateur_login=g150_03 ... guichet_om_utilisateur_pwd=g150_03 ... instr_om_utilisateur_nom=instr 150_03 ... instr_om_utilisateur_email=i150_03@openads-test.fr ... instr_om_utilisateur_login=i150_03 ... instr_om_utilisateur_pwd=i150_03 ... code_entite=CE_15003 ... acteur=150_03_ACT Isolation d'un contexte ${contexte_values} set Suite Variable ${contexte_values} # ajouter le paramètre 'acteur' à la collectivité/au service &{platau_acteur_service_instructeur} = Create Dictionary ... libelle=platau_acteur_service_instructeur ... valeur=${contexte_values.acteur} ... om_collectivite=${contexte_values.om_collectivite_libelle} Gerer le paramètre par WS ${platau_acteur_service_instructeur} # Liste des arguments pour la demande &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=${contexte_values.om_collectivite_libelle} # Liste des arguments pour le pétitionnaire &{args_petitionnaire} = Create Dictionary ... particulier_nom=150_030 ... particulier_prenom=document_numerise_normalisation ... om_collectivite=${contexte_values.om_collectivite_libelle} ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Les dossiers sont accessibles dans la suite du test Set Suite Variable ${di} ${di_sans_espace} = Sans Espace ${di} Set Suite Variable ${di_sans_espace} Set Suite Variable ${code_type_document} 111 Set Suite Variable ${libelle_type_document} Autre type à préciser ${date_sans_tiret} = Replace String ${DATE_FORMAT_YYYY-MM-DD} - ${EMPTY} Set Suite Variable ${date_sans_tiret} # Création d'un UID associé au dossier set Suite Variable ${external_uid_di} 150_003_DOC &{external_uid_values} = Create Dictionary ... object=dossier ... object_id=${di_sans_espace} ... external_uid=${external_uid_di} ... dossier=${di_sans_espace} ... category=platau Ajouter un external UID ${external_uid_values} Décomposition du jeu de données [Documentation] Remet en l'état le paramétrage des tests ... - desactive l'option option_normaliser_nommage_document_numerise &{om_param} = Create Dictionary ... delete=true ... libelle=option_normaliser_nommage_document_numerise ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} &{om_param} = Create Dictionary ... delete=true ... libelle=option_notification_piece_numerisee ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Désactiver la transmission PlatAU des PCI Depuis la page d'accueil admin admin &{args_type_DA_detaille_modification} = Create Dictionary ... dossier_platau=false Modifier type de dossier d'autorisation détaillé PCI ${args_type_DA_detaille_modification} *** Test Cases *** Normalisation d'un document ajouté depuis l'interface [Documentation] Depuis le contexte d'un dossier, depuis l'onglet Pièces & Document, ... ajoute un document puis vérifie que le nom a bien le format attendu. # Ajout d'une pièce Depuis la page d'accueil admin admin &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=${libelle_type_document} ... description_type=TST 150-030 Nommage Piece Interface Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} # Récupération de l'id du document Depuis le contexte de la pièce par le dossier d'instruction ${di} ${document_numerise_values.description_type} ${id} = Get Value css=input#document_numerise # Vérification de son nom. Dans ce cas c'est la description et pas le nom de la pièce qui doit être utilisée. Click On Back Button In SubForm ${nom_normalise} = Normaliser nom document ${di} ${DATE_FORMAT_YYYY-MM-DD} ${code_type_document} ${id} ${document_numerise_values.description_type} Element Should Contain css=table.document_numerise ${nom_normalise} # Stockage de l'id de la variable courante pour déterminer celle des tests suivant Set Suite Variable ${id} Normalisation d'un document ajouté par une tâche [Documentation] Traite une tâche d'ajout de pièce et vérifie que le nom de la pièce ... à le format voulu. Depuis la page d'accueil admin admin ${id} = Evaluate ${id} + 1 ${code_type_document} = set Variable 19 ${nomenclature_cerfa} = set Variable PC31-1 ${libelle_type_document} = set Variable Attestation de l’aménageur certifiant qu’il a réalisé ou prendra en charge l’intégralité des travaux # Préparation et ajout de la tâche de création de la pièce ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}json_ajout_piece_with_b64.json ${json_payload} = Replace String ${json_payload} "date_creation": "2020-11-27" "date_creation": "${DATE_FORMAT_YYYY-MM-DD}" ${json_payload} = Replace String ${json_payload} GH-EQ6-5432 ${contexte_values.acteur} ${json_payload} = Replace String ${json_payload} 7XY-DK8-5X ${external_uid_di} ${json_payload} = Replace String ${json_payload} 1EY-RT8-5X PPP-000-14 ${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": "${code_type_document}" ${piece_payload_dict} = To Json ${json_payload} ${json_payload} = Replace String ${json_payload} ... "nom_fichier": "2020112790.pdf" "nom_fichier": "UN_NOM_RANDOM_POUR_TEST.pdf" ${external_uid_piece_1} = Set Variable ${piece_payload_dict["external_uids"]["piece"]} ${task_values} = Create Dictionary ... type=add_piece ... json_payload=${json_payload} ${task_id} = Ajouter la tâche par WS ${task_values} # Traitement de la tâche ${msg} = Déclencher le traitement des tâches par WS # Vérification du nom du fichier sur le dossier. Dans ce cas le document à une # nomenclature cerfa associé. C'est donc cette nomenclature qui constitue son # TYPEPIECE Depuis la page d'accueil admin admin Depuis l'onglet des pièces du dossier d'instruction ${di} # TODO : remplacer cette variable par un traitement de découpage à 50 caractères dans le KW # Normaliser nom document ${libelle_type_doc_50_char} = set Variable Attestation de l amenageur certifiant qu il a real ${nom_normalise} = Normaliser nom document ${di} ${DATE_FORMAT_YYYY-MM-DD} ${nomenclature_cerfa} ${id} ${libelle_type_doc_50_char} Element Should Contain css=table.document_numerise ${nom_normalise} # Mise à jour de l'id de la variable courante pour déterminer celle des tests suivant Set Suite Variable ${id} [Teardown] Désactiver la transmission PlatAU des PCI Normalisation d'un document d'instruction importé Depuis la page d'accueil admin admin Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} # ------------- # Premier ajout Cliquer sur le bouton d'ajout de document d'instruction importé &{doc_values} = Create Dictionary ... chemin_fichier_a_uploader=testImportManuel.pdf ... document_type=Recours # code 22 Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. ${id_document} = Get Value css=input#document_instruction_importe # Vérifier que le nom du document est correct (sur la consultation, c'est le nom qui vient des métadonnées, pas de la table) ${nom_normalise} = Normaliser nom document ${di} ${DATE_FORMAT_YYYY-MM-DD} 22 ${id_document} ${doc_values.document_type} Element Should Contain css=#sousform-document_instruction_importe #uid ${nom_normalise}.pdf # On vérifie aussi sur la liste (le nom vient alors de la base de données) Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-1 ${nom_normalise}.pdf # ------------------------------------------------------------------------------- # On modifie en changeant la catégorie, et on vérifie que le libellé change aussi Consulter le document d'instruction importé depuis la liste ${nom_normalise}.pdf Click On SubForm Portlet Action document_instruction_importe modifier &{doc_values} = Create Dictionary ... document_type=Contestation de DAACT # code 33 Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. # Vérifier que le nom du document est correct (sur la consultation, c'est le nom qui vient des métadonnées, pas de la table) ${nom_normalise} = Normaliser nom document ${di} ${DATE_FORMAT_YYYY-MM-DD} 33 ${id_document} ${doc_values.document_type} Element Should Contain css=#sousform-document_instruction_importe #uid ${nom_normalise}.pdf # On vérifie aussi sur la liste (le nom vient alors de la base de données) Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-1 ${nom_normalise}.pdf # TODO : faire fonctionner le test "Normalisation d'un document ajouté par numérisation" # dans un runall *** Activer l'option de numérisation Activer l'option de numérisation Normalisation d'un document ajouté par numérisation [Documentation] En utilisant le WS de numérisation, ajoute une pièce à un dossier ... puis vérifie que cette pièce a bien la nomenclature : IDDI_DATE_TYPEPIECE_IDPIECE_LIBTYPEPIECE. # Variable nécessaire à la suite du test ${id} = Evaluate ${id} + 1 # Création d'un document à numérisé Copy File ..${/}tests${/}binary_files${/}testImportManuel.pdf ..${/}var${/}digitalization${/}Todo${/}${di_sans_espace}${/}${date_sans_tiret}${code_type_document}.PDF Run chmod 777 -R ..${/}var${/}digitalization${/}Todo${/}${di_sans_espace}${/}${date_sans_tiret}${code_type_document}.PDF # Import du fichier par Web Service Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Numériser les documents ${di_sans_espace} ${date_sans_tiret}${code_type_document}.PDF # Vérification du nom du fichier sur le dossier Depuis la page d'accueil admin admin Depuis l'onglet des pièces du dossier d'instruction ${di} ${libelle_type_doc_50_char} = set Variable Autre type a preciser ${nom_normalise} = Normaliser nom document ${di} ${DATE_FORMAT_YYYY-MM-DD} ${code_type_document} ${id} ${libelle_type_doc_50_char} Element Should Contain css=table.document_numerise ${nom_normalise} # Mise à jour de l'id de la variable courante pour déterminer celle des tests suivant Set Suite Variable ${id} Désactiver l'option de numérisation Désactiver l'option de numérisation