*** Settings *** 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 &{om_param} = Create Dictionary ... libelle=option_notification_piece_numerisee ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Décomposition du jeu de données &{option_miniature} = Create Dictionary ... delete=true ... libelle=option_notification_piece_numerisee ... om_collectivite=agglo Gerer le paramètre par WS ${option_miniature} *** Test Cases *** TNR Vérification des métadonnées des fichiers # On crée une nouvelle demande pour le TNR &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Monsieur ... particulier_nom=Dufresne ... particulier_prenom=Thierry ... om_collectivite=MARSEILLE # &{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=MARSEILLE # ${di_metadata} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${libelle_di_metadata} = Sans espace ${di_metadata} # On ajoute une pièce sur le dossier d'instruction initial Depuis la page d'accueil admin admin # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté # Ajouter une pièce depuis le dossier d'instruction ${di_metadata} ${document_numerise_values} # On récupére l'UID de la pièce pour définir les chemins Depuis le contexte de la pièce par le dossier d'instruction ${di_metadata} arrêté Click On Subform Portlet Action document_numerise modifier ${uid} = Get Value uid ${path_1} = Get Substring ${uid} 0 2 ${path_2} = Get Substring ${uid} 0 4 # On vérifie les métadonnées depuis le fichier ".info" dans le filesystem ${file_info} = Get File ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${uid}.info Should Contain ${file_info} dossier=${libelle_di_metadata} Should Contain ${file_info} dossier_version=0 Should Contain ${file_info} typeInstruction=P # On accepte le dossier d'instruction initial Ajouter une instruction au DI ${di_metadata} accepter un dossier sans réserve # On ajoute un modificatif sur le dossier d'instruction &{args_demande} = Create Dictionary ... demande_type=Demande de modification ... dossier_instruction=${di_metadata} # ${di_metadata_1} = Ajouter la demande par WS ${args_demande} # On récupère le numéro du dossier sans espace ${libelle_di_metadata_1} = Sans espace ${di_metadata_1} # On ajoute une pièce sur le dossier d'instruction de modification 1 Depuis la page d'accueil admin admin # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté # Ajouter une pièce depuis le dossier d'instruction ${di_metadata_1} ${document_numerise_values} # On récupére l'UID de la pièce pour définir les chemins Depuis le contexte de la pièce par le dossier d'instruction ${di_metadata_1} arrêté Click On Subform Portlet Action document_numerise modifier ${uid} = Get Value uid ${path_1} = Get Substring ${uid} 0 2 ${path_2} = Get Substring ${uid} 0 4 # On vérifie les métadonnées depuis le fichier ".info" dans le filesystem ${file_info} = Get File ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${uid}.info Should Contain ${file_info} dossier=${libelle_di_metadata_1} Should Contain ${file_info} dossier_version=01 Should Contain ${file_info} typeInstruction=M # On accepte le dossier d'instruction de modification 1 Ajouter une instruction au DI ${di_metadata_1} accepter un dossier sans réserve # &{args_demande} = Create Dictionary ... demande_type=Demande de modification ... dossier_instruction=${di_metadata_1} # ${di_metadata_2} = Ajouter la demande par WS ${args_demande} # On récupère le numéro du dossier sans espace ${libelle_di_metadata_2} = Sans espace ${di_metadata_2} # On ajoute une pièce sur le dossier d'instruction de modification 2 # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté # Ajouter une pièce depuis le dossier d'instruction ${di_metadata_2} ${document_numerise_values} # On récupére l'UID de la pièce pour définir les chemins Depuis le contexte de la pièce par le dossier d'instruction ${di_metadata_2} arrêté Click On Subform Portlet Action document_numerise modifier ${uid} = Get Value uid ${path_1} = Get Substring ${uid} 0 2 ${path_2} = Get Substring ${uid} 0 4 # On vérifie les métadonnées depuis le fichier ".info" dans le filesystem ${file_info} = Get File ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${uid}.info Should Contain ${file_info} dossier=${libelle_di_metadata_2} Should Contain ${file_info} dossier_version=02 Should Contain ${file_info} typeInstruction=M # On ajoute une pièce sur le dossier d'instruction de modification 1 Depuis la page d'accueil admin admin # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté de conformité # Ajouter une pièce depuis le dossier d'instruction ${di_metadata_1} ${document_numerise_values} # On récupére l'UID de la pièce pour définir les chemins Depuis le contexte de la pièce par le dossier d'instruction ${di_metadata_1} arrêté de conformité Click On Subform Portlet Action document_numerise modifier ${uid} = Get Value uid ${path_1} = Get Substring ${uid} 0 2 ${path_2} = Get Substring ${uid} 0 4 # On vérifie les métadonnées depuis le fichier ".info" dans le filesystem ${file_info} = Get File ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${uid}.info Should Contain ${file_info} dossier=${libelle_di_metadata_1} Should Contain ${file_info} dossier_version=01 Should Contain ${file_info} typeInstruction=M Traitement des métadonnées # # Cas n°1 : Premier traitement, tous les types de pièces doivent avoir le # flag de modification à 'true'. Les fichiers déjà existants # doivent avoir les deux nouvelles métadonnées 'aff_da' et # 'aff_sc'. # Depuis la page d'accueil admin admin @{md_no} = Create List ... consultationPublique ... consultationTiers # Les 2 fichiers sont présents dans le jeu de données et copiés par om_tests ${doc01_fichier_path} = Récupérer le chemin vers le fichier de métadonnées correspondant à l'uid 483cf5c504c9f81a7c7f470c5a209140 ${doc02_fichier_path} = Récupérer le chemin vers le fichier de métadonnées correspondant à l'uid 79d433ed40812262504c289980960f18 ${doc03_fichier_path} = Récupérer le chemin vers le fichier de métadonnées correspondant à l'uid 891807ffed15ac8fd09bc1032760017b Les métadonnées (clé) ne doivent pas être présentes dans le fichier ${md_no} ${doc01_fichier_path} Les métadonnées (clé) ne doivent pas être présentes dans le fichier ${md_no} ${doc02_fichier_path} Les métadonnées (clé) ne doivent pas être présentes dans le fichier ${md_no} ${doc03_fichier_path} Mise à jour des métadonnées Le traitement s'est correctement déroulé. Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain Le traitement s'est correctement déroulé. # On vérifie les métadonnées du fichier ${md} = Create Dictionary ... consultationPublique=true ... consultationTiers=true Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc01_fichier_path} Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc02_fichier_path} Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc03_fichier_path} # # Cas n°2 : Il n'y a aucune modification. # Mise à jour des métadonnées Il n'y a aucun type de pièces modifié. Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain Il n'y a aucun type de pièces modifié. Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc01_fichier_path} Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc02_fichier_path} Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc03_fichier_path} # # Cas n°3 : Modification du paramètre 'aff_da' d'un type de pièces, on # vérifie que la métadonnée sur le fichier de ce type a # correctement été modifiée. # # On modifie un type de pièces ${dnt_code} = Set Variable ART &{dnt_values} = Create Dictionary ... aff_da=false Modifier le type de pièces ${dnt_code} ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # Mise à jour des métadonnées Le traitement s'est correctement déroulé. Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Be Le traitement s'est correctement déroulé. # On vérifie les métadonnées du fichier ${md} = Create Dictionary ... consultationPublique=false ... consultationTiers=true Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc02_fichier_path} Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc03_fichier_path} # # Cas n°4 : Modification du paramètre 'aff_da' d'un type de pièces non utilisé # ${dnt_code} = Set Variable RDA &{dnt_values} = Create Dictionary ... aff_da=false Modifier le type de pièces ${dnt_code} ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # Mise à jour des métadonnées Il n'y a aucun fichier dont les métadonnées doivent être mises à jour. Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Be Il n'y a aucun fichier dont les métadonnées doivent être mises à jour. Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc01_fichier_path} Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc02_fichier_path} Les métadonnées (clé/valeur) doivent être présentes dans le fichier ${md} ${doc03_fichier_path} # # Cas n°5 : Test du fonctionnement normal du web service de maj des métadonnées, puis # suppression d'un document du filestorage alors qu'il est toujours en base. # La mise à jour des métadonnées doit afficher qu'un document est en erreur. # Remove Directory ../var/filestorage/79/79d4 true # On modifie un type de pièces ${dnt_code} = Set Variable ART &{dnt_values} = Create Dictionary ... aff_da=true Modifier le type de pièces ${dnt_code} ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. Mise à jour des métadonnées Le traitement s'est correctement déroulé, sauf pour les pièces numérisées ci-dessous : Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain Le traitement s'est correctement déroulé, sauf pour les pièces numérisées ci-dessous : Valid Message Should Contain Dossier d'instruction n°AZ0130551200001P0 : le document 20160919ART.pdf n'a pas pu être mis à jour. # Test du web service de mise à jour de toutes les pièces ${json} = Set Variable {"module":"maj_metadonnees_documents_numerises"} Vérifier le code retour du web service et vérifier que son message est Post maintenance ${json} 200 Tous les documents ont été traités. # On modifie le type de pièces pour que le traitement s'effectue de nouveau &{dnt_values} = Create Dictionary ... aff_da=false Modifier le type de pièces ${dnt_code} ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # Suppression du document numérisé sur le filesystem Remove Directory var/digitalization/b/b120 # Test du web service de mise à jour de toutes les pièces ${json} = Set Variable { "module": "maj_metadonnees_documents_numerises"} Vérifier le code retour du web service et vérifier que son message est Post maintenance ${json} 200 Liste des fichiers en erreur : Dossier d'instruction n°AZ0130551200001P0 - le document 20160919ART.pdf n'a pas pu être mis à jour # Remet les valeurs par défaut &{dnt_values} = Create Dictionary ... aff_da=true Modifier le type de pièces ${dnt_code} ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. Configuration des méthodes de traitement sur les métadonnées des fichiers liés aux dossiers d'instruction [Documentation] Vérification de l'exécution des méthodes de traitements sur ... les métadonnées des fichiers liés aux dossiers d'instruction, ... configurées depuis le connecteur du filestorage. # On ajoute le DI depuis lequel on va vérifier la mise à jour des # métadonnées &{args_petitionnaire} = Create Dictionary ... particulier_nom=Duffet ... particulier_prenom=Felicien ... om_collectivite=MARSEILLE &{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=MARSEILLE ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # On ajoute un fichier de chaque lien possible avec le DI : # - l'instruction est ajoutée automatiquement grâce au récépissé de la demande ; # - une pièce numérisée ; # - une consultation et le fichier joint au rendu d'avis ; # - le rapport d'instruction Depuis la page d'accueil instrpoly instrpoly &{args_dn} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=avis obligatoires Ajouter une pièce depuis le dossier d'instruction ${di} ${args_dn} Ajouter une consultation depuis un dossier ${di} 59.01 - Direction de l'Eau et de l'Assainissement Depuis la page d'accueil consu consu &{args_ac} = Create Dictionary ... avis_consultation=Favorable ... motivation=Pas de réserves ... fichier_upload=testImportManuel.pdf Rendre l'avis sur la consultation du dossier ${di} ${args_ac} Depuis la page d'accueil instrpoly instrpoly &{args_ri} = Create Dictionary ... description_projet_om_html=Description du projet Ajouter et finaliser le rapport d'instruction ${di} ${args_ri} # On récupère les chemins de chaque fichier info dont le l'uid est accessible depuis # le DOM ${dn_info_path} = Récupérer le chemin du fichier .info de la pièce stocké ${di} avis obligatoires ${consultation_fj_info_path} = Récupérer le chemin du fichier .info du fichier joint de la consultation ${di} 59.01 - Direction de l'Eau et de l'Assainissement @{list_path} Create List ${dn_info_path} ${consultation_fj_info_path} # On vérifie les métadonnées de chaque fichier afin de contrôler que la # métadonnée *concerneERP* à comme valeur 'false' :FOR ${path} IN @{list_path} \ ${info} = Get File ${path} \ Should Contain ${info} concerneERP=false # On définit les deux modification de DI &{args_di_true} = Create Dictionary ... erp=true &{args_di_false} = Create Dictionary ... erp=false ## ## Sans la configuration du traitement des métadonnées dans le connecteur du ## filestorage ## # On coche le champ ERP du dossier d'instruction pour vérifier que la # métadonnée des fichiers n'est pas mise à jour (valeur 'false') Modifier le dossier d'instruction ${di} ${args_di_true} :FOR ${path} IN @{list_path} \ ${info} = Get File ${path} \ Should Contain ${info} concerneERP=false Modifier le dossier d'instruction ${di} ${args_di_false} ## ## Avec la configuration du traitement des métadonnées dans le connecteur du ## filestorage, mais sans la méthode de traitement renseignée ## # On change la configuration du filestorage Move File ..${/}dyn${/}filestorage.inc.php ..${/}dyn${/}filestorage.inc.php.bak Copy File ..${/}tests${/}binary_files${/}filestorage_1.inc.php ..${/}dyn${/} Move File ..${/}dyn${/}filestorage_1.inc.php ..${/}dyn${/}filestorage.inc.php # On coche le champ ERP du dossier d'instruction pour vérifier que la # métadonnée des fichiers n'est pas mise à jour (valeur 'false') Modifier le dossier d'instruction ${di} ${args_di_true} :FOR ${path} IN @{list_path} \ ${info} = Get File ${path} \ Should Contain ${info} concerneERP=false Modifier le dossier d'instruction ${di} ${args_di_false} ## ## Avec la configuration du traitement des métadonnées dans le connecteur du ## filestorage et la méthode de traitement renseignée ## # On change la configuration du filestorage Copy File ..${/}tests${/}binary_files${/}filestorage_2.inc.php ..${/}dyn${/} Move File ..${/}dyn${/}filestorage_2.inc.php ..${/}dyn${/}filestorage.inc.php # On coche le champ ERP du dossier d'instruction pour vérifier que la # métadonnée des fichiers est mise à jour (valeur 'true') Modifier le dossier d'instruction ${di} ${args_di_true} :FOR ${path} IN @{list_path} \ ${info} = Get File ${path} \ Should Contain ${info} concerneERP=true # On modifie à nouveau le DI sans changer la valeur du champ ERP et on # contrôle que la métadonnée des fichiers n'est pas modifiée (valeur 'true') ${args_di} = Create Dictionary Modifier le dossier d'instruction ${di} ${args_di} :FOR ${path} IN @{list_path} \ ${info} = Get File ${path} \ Should Contain ${info} concerneERP=true # On modifie une dernière fois le DI en changeant la valeur du champ ERP et # on inspecte la métadonnée des fichiers (valeur 'false') Modifier le dossier d'instruction ${di} ${args_di_false} :FOR ${path} IN @{list_path} \ ${info} = Get File ${path} \ Should Contain ${info} concerneERP=false # On remet la configuration du filestorage par défaut Move File ..${/}dyn${/}filestorage.inc.php.bak ..${/}dyn${/}filestorage.inc.php