# # Description # # @package openads # @version SVN : $Id $ # *** Settings *** Documentation Test les pièces. # 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 *** Test Cases *** Constitution d'un jeu de données [Documentation] L'objet de ce 'Test Case' est de constituer un jeu de de ... données cohérent pour les scénarios fonctionnels qui suivent. &{om_param} = Create Dictionary ... libelle=option_notification_piece_numerisee ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} TNR Vérification des métadonnées des fichiers [Documentation] Vérifie les métadonnées des fichiers créé par ... l'application. # 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 [Documentation] Vérification du 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 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}