# # 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} # 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=MARSEILLE # Liste des arguments pour le pétitionnaire &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Fleuve ... particulier_prenom=Truite ... om_collectivite=MARSEILLE # ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${da} = Get Substring ${di} 0 -2 # Liste des arguments pour la demande &{args_demande_at} = Create Dictionary ... dossier_autorisation_type_detaille=Demande d'autorisation de construire, d'aménager ou de modifier un ERP ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE # Liste des arguments pour le pétitionnaire &{args_petitionnaire_at} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Duplanty ... particulier_prenom=Dominic ... om_collectivite=MARSEILLE # ${di_at} = Ajouter la demande par WS ${args_demande_at} ${args_petitionnaire_at} # Depuis la page d'accueil instr instr # Ajouter une consultation depuis un dossier ${di} 59.13 - Régie des Tranports de Marseille - DTP/CIP # Les dossiers sont accessibles dans la suite du test Set Suite Variable ${di} Set Suite Variable ${da} Set Suite Variable ${di_at} Catégorie de pièce [Documentation] Ajoute, modifie et supprime une catégorie de pièce. ... Vérifie l'ajout de type depuis le sous-formulaire. # On ajoute une catégorie Depuis la page d'accueil admin admin ${dntc_libelle} = Set Variable Document numérisé &{dntc_values} = Create Dictionary ... libelle=${dntc_libelle} Ajouter la catégorie de pièces ${dntc_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # On récupère l'identifiant de la catégorie Depuis le contexte de la catégorie de pièces ${dntc_libelle} ${dntc_id} = Get Text css=#document_numerise_type_categorie # On modifie une catégorie ${dntc2_libelle} = Set Variable Pièce numérisée &{dntc_values} = Create Dictionary ... libelle=${dntc2_libelle} Modifier la catégorie de pièces ${dntc_libelle} ${dntc_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # On supprime une catégorie ${dntc3_libelle} = Set Variable Catégorie à supprimer &{dntc_values} = Create Dictionary ... libelle=${dntc3_libelle} Ajouter la catégorie de pièces ${dntc_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. Supprimer la catégorie de pièces ${dntc3_libelle} Valid Message Should Contain La suppression a été correctement effectuée. # On ajoute un type depuis la catégorie ${instructeur_qualite} = Create List ... instructeur &{dnt_values} = Create Dictionary ... code=IMG ... libelle=Image ... instructeur_qualite=${instructeur_qualite} Depuis le contexte de la catégorie de pièces ${dntc2_libelle} On clique sur l'onglet document_numerise_type Type De Pièces # On vérifie que le tableau est vide Element Should Contain css=#sousform-document_numerise_type Aucun enregistrement # On vérifie que la catégorie soit déjà sélectionné et que les cases à # cocher 'aff_da' et 'aff_service_consulte' soient déjà cochées Click On Add Button JS Form Value Should Be css=input#document_numerise_type_categorie ${dntc_id} Form Value Should Be aff_service_consulte Oui Form Value Should Be aff_da Oui Saisir le type de pièces en sous-formulaire ${dnt_values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. Type de pièce [Documentation] Ajoute, modifie et supprime un type de pièce. ... Test egalement la contrainte d'unicité de la validité des codes ... des pièces. # On ajoute une catégorie car c'est un champ obligatoire pour les types Depuis la page d'accueil admin admin ${dntc_libelle} = Set Variable Plan pour dossier &{dntc_values} = Create Dictionary ... libelle=${dntc_libelle} Ajouter la catégorie de pièces ${dntc_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # On ajoute un type, on vérifie que les cases à cocher 'aff_da' et # 'aff_service_consulte' soient déjà cochées et que le champ # 'synchro_metadonnee' non visible soit à false ${dnt_code} = Set Variable DCPL01 &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Plan pour dossier de coordination ... document_numerise_type_categorie=${dntc_libelle} Depuis le listing document_numerise_type Click On Add Button Form Value Should Be aff_service_consulte Oui Form Value Should Be aff_da Oui Saisir le type de pièces ${dnt_values} Click On Submit Button Valid Message Should Contain Vos modifications ont bien été enregistrées. Depuis le contexte du type de pièces ${dnt_code} ${synchro_metadonnee} = Get Mandatory Value css=#synchro_metadonnee Should Be equal ${synchro_metadonnee} f # On modifie le champ aff_da du type et on vérifie que le champ #'synchro_metadonnee' devient true &{dnt_values} = Create Dictionary ... libelle=Plan pour dossier de coordination 01 ... aff_da=false Modifier le type de pièces ${dnt_code} ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. Depuis le contexte du type de pièces ${dnt_code} ${synchro_metadonnee} = Get Mandatory Value css=#synchro_metadonnee Should Be equal ${synchro_metadonnee} t # On ajoute un autre type de pièce ayant le même code et ayant une date # de fin de validité nul. Vérifie qu'un message d'erreur est visible. &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Plan pour dossier de coordination ... document_numerise_type_categorie=${dntc_libelle} Ajouter le type de pièces ${dnt_values} Error Message Should Contain Il ne peut pas y avoir deux codes valide pour un type de pièce # Même opération mais avec une date de fin de validité dépassé pour vérifier # que l'enregistrement fonctionne &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Plan pour dossier de coordination ... document_numerise_type_categorie=${dntc_libelle} ... om_validite_fin=19/06/1995 Ajouter le type de pièces ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. ${dnt_test_validite} = Get Text css=div.form-content span#document_numerise_type # Modification de la date de fin de validité pour rendre la pièce valide et # tester la contrainte &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=Plan pour dossier de coordination ... document_numerise_type_categorie=${dntc_libelle} ... om_validite_fin=19/06/2041 Depuis le listing document_numerise_type Use Simple Search Tous ${dnt_test_validite} Click On Link action-tab-document_numerise_type-global-om_validite-false Click On Link ${dnt_test_validite} La page ne doit pas contenir d'erreur Click On Form Portlet Action document_numerise_type modifier Saisir le type de pièces ${dnt_values} Click On Submit Button Error Message Should Contain Il ne peut pas y avoir deux codes valide pour un type de pièce # On supprime un type ${dnt2_code} = Set Variable DC &{dnt_values} = Create Dictionary ... code=${dnt2_code} ... libelle=Document numérisé ... document_numerise_type_categorie=${dntc_libelle} Ajouter le type de pièces ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. Supprimer le type de pièces ${dnt2_code} Valid Message Should Contain La suppression a été correctement effectuée. Non ajout ni modification des types de pièces de catégorie Plat'AU [Documentation] Vérifie que les types de pièces ayant la catégorie Plat'AU ne peuvent pas être ... modifiée et que la catégorie Plat'AU ne peut pas être sélectionné dans le formulaire ... d'ajout. # On essaie modifie le type ayant la catégorie PLATAU &{dnt_cat_platau_values} = Create Dictionary ... document_numerise_type_categorie=Daact Modifier le type de pièces PLATAU ${dnt_cat_platau_values} Error Message Should Contain Les types de pièces de catégorie Plat'AU ne peuvent pas être modifiée. # Vérifie si la catégorie Plat'AU est accessible depuis le formulaire d'ajout Depuis le listing document_numerise_type Click On Add Button Element Should Not Contain css=select#document_numerise_type_categorie Plat'AU Nomenclature de pièce [Documentation] Ajoute, modifie et supprime une nomenclature de pièce. # On ajoute type de pièce et un type de dossier d'instruction car ce # sont de champ obligatoire pour la nomenclature des pièces # Pour ajouter un type de pièce on ajoute également une catégorie Depuis la page d'accueil admin admin ${dntc_libelle} = Set Variable Test pour dossier &{dntc_values} = Create Dictionary ... libelle=${dntc_libelle} Ajouter la catégorie de pièces ${dntc_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. &{dnt_values} = Create Dictionary ... code=TESTDN ... libelle=Test Document numérisé ... document_numerise_type_categorie=${dntc_libelle} Ajouter le type de pièces ${dnt_values} # On ajoute une nomenclature &{nomenclature_values} = Create Dictionary ... document_numerise_type=${dnt_values.code} - ${dnt_values.libelle} ... dossier_instruction_type=AT Initiale ... code=TEST01 ${id_nomenclature} = Ajouter une nomenclature de piece ${nomenclature_values} # On modifie la nomenclature &{nomenclature_values} = Create Dictionary ... code=TEST02 Modifier une nomenclature de piece ${id_nomenclature} ${nomenclature_values} # On supprime la nomenclature Supprimer une nomenclature de piece ${id_nomenclature} Valid Message Should Contain La suppression a été correctement effectuée. Ajout de pièces [Documentation] Vérifie que l'ajout de 2 pièces ayant la même date et le même type ... crée bien les fichiers avec un suffixe. ... On vérifie également que le type de pièce n'est pas visible pour un instructeur ... si l'option n'est pas activé pour ce type de pièce. ... Vérifie également que le code de la pièce est affiché et que les pièces sont ... bien filtrées par type de dossier. ... On vérifie que la date de création par défaut est bien la dernière date de création ... enregistrée. # On ajoute une catégorie car c'est un champ obligatoire pour les types Depuis la page d'accueil admin admin ${dntc_libelle} = Set Variable Le roi &{dntc_values} = Create Dictionary ... libelle=${dntc_libelle} Ajouter la catégorie de pièces ${dntc_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # On ajoute un type, on vérifie que les cases à cocher 'aff_da', #'aff_service_consulte' soient déjà cochées et que le # champ 'synchro_metadonnee' non visible soit à false ${dnt_code} = Set Variable LR01 ${type_libelle_dict} = Create List ... Document très important &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=${type_libelle_dict} ... document_numerise_type_categorie=${dntc_libelle} Ajouter le type de pièces ${dnt_values} Valid Message Should Contain Vos modifications ont bien été enregistrées. # On ajoute plusieurs nomenclatures. Une pour le dossier tester permettant # de vérifier que l'affichage du code est correct. Une pour un autre dossier # pour s'assurer que ce code n'est pas visible. Deux autres qui permettront # de tester l'affichage en cas de nomenclature différente pour une même pièce # d'un dossier &{nomenclature_values} = Create Dictionary ... document_numerise_type=ARM - arrêté modificatif ... dossier_instruction_type=PCI Initial ... code=ART01 ${id_nomenclature_1} = Ajouter une nomenclature de piece ${nomenclature_values} &{nomenclature_values} = Create Dictionary ... document_numerise_type=ARA - arrêté d'annulation ... dossier_instruction_type=AT Initiale ... code=ARA02 ${id_nomenclature_2} = Ajouter une nomenclature de piece ${nomenclature_values} &{nomenclature_values} = Create Dictionary ... document_numerise_type=AUTPAG - autres pièces composant le dossier (A0) ... dossier_instruction_type=PCI Initial ... code=LR03 ${id_nomenclature_3} = Ajouter une nomenclature de piece ${nomenclature_values} &{nomenclature_values} = Create Dictionary ... document_numerise_type=AUTPAG - autres pièces composant le dossier (A0) ... dossier_instruction_type=PCI Initial ... code=LR04 ${id_nomenclature_4} = Ajouter une nomenclature de piece ${nomenclature_values} Depuis la page d'accueil instrpoly instrpoly # On vérifie le message en cas d'un listing vide Depuis l'onglet des pièces du dossier d'instruction ${di} Element Should Contain css=#sousform-document_numerise Aucun enregistrement # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=15/09/2015 ... document_numerise_type=vues et coupes du projet dans le profil du terrain naturel # Décomposition de l'ajout de pièce pour vérifier que le type de pièce créé précédemment # n'est pas visible par l'instructeur Depuis l'onglet des pièces du dossier d'instruction ${di} # Wait Until Element Is Visible id=action-soustab-blocnote-message-ajouter Click Element id=action-soustab-blocnote-message-ajouter Wait Until Element Is Visible document_numerise_type_chosen Select From Chosen List Should Not Contain document_numerise_type Document très important Select From Chosen List Should Not Contain document_numerise_type ARA02 | arrêté d'annulation Select From Chosen List Should Contain document_numerise_type ART01 | arrêté modificatif Select From Chosen List Should Contain document_numerise_type LR03 | autres pièces composant le dossier (A0) Select From Chosen List Should Contain document_numerise_type LR04 | autres pièces composant le dossier (A0) Saisir la pièce ${document_numerise_values} # On valide le formulaire Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Submit Button In Subform # On vérifie le message de validation Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. # On vérifie qu'il n'y ait pas de confirmation de transmission ERP Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=#sformulaire div.message p span.text Le message a été transmis au référentiel ERP. &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=arrêté retour préfecture Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=arrêté retour préfecture Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=arrêté retour préfecture Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} Click On Back Button In Subform Element Should Contain css=#sousform-document_numerise 20150915DGPA05.pdf Element Should Contain css=#sousform-document_numerise 20160910ART.pdf Element Should Contain css=#sousform-document_numerise 20160910ART-1.pdf Element Should Contain css=#sousform-document_numerise 20160910ART-2.pdf # Vérification de l'affichage des codes &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=ART01 | arrêté modificatif Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=LR04 | autres pièces composant le dossier (A0) Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} Click On Back Button In Subform Element Should Contain css=#sousform-document_numerise ART01 | arrêté modificatif Element Should Contain css=#sousform-document_numerise LR03 / LR04 | autres pièces composant le dossier (A0) Element Should Contain css=#sousform-document_numerise 20160910ART01.pdf Element Should Contain css=#sousform-document_numerise 20160910LR03.pdf # On vérifie le contrôle d'extension lors de l'upload d'un fichier Depuis l'onglet des pièces du dossier d'instruction ${di} # On clique sur l'action d'ajout Wait Until Element Is Visible id=action-soustab-blocnote-message-ajouter Click Element id=action-soustab-blocnote-message-ajouter Wait Until Element Is Visible uid_upload # On vérifie qu'un CSV ne peut pas être uploadée Add File and Expect Error Message Contain uid versement_archives.csv Le fichier n'est pas conforme à la liste des extension(s) autorisée(s) # suppression des nomenclatures pour éviter des erreurs dans les tests suivants Depuis la page d'accueil admin admin Supprimer une nomenclature de piece ${id_nomenclature_1} Supprimer une nomenclature de piece ${id_nomenclature_2} Supprimer une nomenclature de piece ${id_nomenclature_3} Supprimer une nomenclature de piece ${id_nomenclature_4} ${date_ddmmyyyy} = Date du jour FR # Vérification que la date d'ajout par défaut est celle de dernier depot # en passant le dossier en incompletude et en ajoutant une pièce complémentaire Constitution du Workflow de gestion d'une incomplétude 250 Ajouter une instruction au DI et la finaliser ${di} ${incompletude_libelle} Depuis l'instruction du dossier d'instruction ${di} ${incompletude_libelle} Click On SubForm Portlet Action instruction modifier_suivi ${date_5d} = Add Time To Date ${date_ddmmyyyy} 5 days %d/%m/%Y False %d/%m/%Y Input Datepicker date_retour_signature ${date_5d} Click On Submit Button In Subform Ajouter une instruction au DI ${di} dpc_250 ${date_5d} Depuis l'onglet des pièces du dossier d'instruction ${di} Click Link id=action-soustab-blocnote-message-ajouter Wait Until Element Is Visible id=fieldset-sousform-document_numerise-piece Element Should Contain css=#lib-date_creation Date Page Should Contain Element css=input[value="${date_5d}"] ${date_15d} = Add Time To Date ${date_ddmmyyyy} 15 days %d/%m/%Y False %d/%m/%Y Ajouter une instruction au DI ${di} ${completude_libelle} 16/05/2019 TNR - Génération nom piece avec exclusion des charactères spéciaux [Documentation] Le nom du document numérisé est générer avec comme section le code de la type de pièce. ... Il est nécéssaire de faire une vérification des caractères spéciaux lors de l'utilisation de ce code. ... Nous cherchons surtout a évité les | qui causent des problèmes à windows. ... NOus alons crée une catégorie de pièce contanant un |, un & et un ' et vérifier leur exclusion # On ajoute une catégorie Depuis la page d'accueil admin admin ${dntc_libelle} = Set Variable AT | Document & test - numérisé &{dntc_values} = Create Dictionary ... libelle=${dntc_libelle} Ajouter la catégorie de pièces ${dntc_values} ${dnt_code} = Set Variable T'ES&T|a/t &{dnt_values} = Create Dictionary ... code=${dnt_code} ... libelle=${dntc_libelle} ... document_numerise_type_categorie=${dntc_libelle} Ajouter le type de pièces ${dnt_values} &{nomenclature_values} = Create Dictionary ... document_numerise_type=${dnt_values.code} - ${dnt_values.libelle} ... dossier_instruction_type=AT Initiale ... code=${dnt_code} ${id_nomenclature_1} = Ajouter une nomenclature de piece ${nomenclature_values} # Ajout d'une pièce autre à préciser en remplissant le champ description_type # pour vérifier que le libellé est mis à jour dans le listing &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=${nomenclature_values.code} | ${dntc_libelle} Ajouter une pièce depuis le dossier d'instruction ${di_at} ${document_numerise_values} Click On Back Button In Subform Element Should Contain css=#sousform-document_numerise ${dnt_code} Element Should Contain css=#sousform-document_numerise T-ES-T-a-t Modification d'une pièce [Documentation] Modifie une pièce et vérifie que son nom est régénéré. ... Vérifie également qu'un instructeur peut modifier une pièce mais pas ... le fichier associé à cette pièce. ... La non modification du fichier ne doit pas provoquer d'erreur. # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel2.pdf ... date_creation=10/09/2005 # Depuis la page d'accueil admin admin # Modifier une pièce depuis le dossier d'instruction ${di} vues et coupes du projet dans le profil du terrain naturel ${document_numerise_values} # Récupération de l'UID utilisé dans le test de suppression de la pièce Depuis le contexte de la pièce par le dossier d'instruction ${di} vues et coupes du projet dans le profil du terrain naturel Click On Subform Portlet Action document_numerise modifier ${document_numerise_uid} = Get Value uid Set Suite Variable ${document_numerise_uid} # Depuis le contexte du dossier d'instruction ${di} On clique sur l'onglet document_numerise Pièces & Documents # On clique pour visualiser le document, le nom doit avoir été modifié par # rapport à la date Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=tr.col3 td.firstcol a.lienTable span.reqmo-16 Open PDF ${OM_PDF_TITLE} # On vérifie le contenu du PDF Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain TEST IMPORT MANUEL 2 # On ferme le PDF Close PDF # Modification d'une pièce avec un profil instructeur Depuis la page d'accueil instr instr Depuis le contexte de la pièce par le dossier d'instruction ${di} vues et coupes du projet dans le profil du terrain naturel Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On SubForm Portlet Action document_numerise modifier # Le champ de modification du fichier ne doit pas être accessible Page Should not contain css=input#uid_upload &{document_numerise_values} = Create Dictionary ... date_creation=20/09/2015 Saisir la pièce ${document_numerise_values} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Submit Button In Subform La page ne doit pas contenir d'erreur Gestion du type de pièce "autre à préciser" [Documentation] Vérifie que ce type de pièce est bien accessible quel que ... soit le dossier d'instruction et même si il n'a pas de code associé. ... Test l'utilisation du champ description_type et si il permet bien de ... remplacer le libellé du type dans les listings. Depuis la page d'accueil admin admin # Vérification que cette pièce est visible dans différent type de dossier # même si elle n'a pas de code pour ce type de dossier &{nomenclature_values} = Create Dictionary ... document_numerise_type=111 - Autre type à préciser ... dossier_instruction_type=AT Initiale ... code=TEST01 Ajouter une nomenclature de piece ${nomenclature_values} Depuis l'onglet des pièces du dossier d'instruction ${di} Click Element id=action-soustab-blocnote-message-ajouter Wait Until Element Is Visible document_numerise_nature Select From Chosen List Should Contain document_numerise_type Autre type à préciser # Le champ description type ne doit pas être saisissable Page Should Not Contain Element input#description_type # Ajout d'une pièce autre à préciser en remplissant le champ description_type # pour vérifier que le libellé est mis à jour dans le listing &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=Autre type à préciser ... description_type=description très précise du document Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} Click On Back Button In Subform Element Should Contain css=#sousform-document_numerise description très précise du document # Modification de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... document_numerise_type=arrêté Depuis le contexte de la pièce par le dossier d'instruction ${di} description très précise du document Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On SubForm Portlet Action document_numerise modifier # Remplissage avec une description vide &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=10/09/2016 ... description_type=${EMPTY} Saisir la pièce ${document_numerise_values} # Validation de la modification Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Submit Button In Subform # Vérification dans le listing que la description n'est plus présente Depuis l'onglet des pièces du dossier d'instruction ${di} Element Should Not Contain css=#sousform-document_numerise description très précise du document Element Should Contain css=#sousform-document_numerise Autre TNR - Affichage de la description pour le type de pièce "autre à préciser" [Documentation] Depuis l'onglet des pièces du dossier d'instruction ${di} ${date_ddmmyyyy} = Date du jour FR # Ajout d'une pièce autre à préciser en remplissant le champ description_type # pour vérifier que le libellé est mis à jour dans le listing &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date_ddmmyyyy} ... document_numerise_type=Autre type à préciser ... description_type=description test très précise du document Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} Depuis l'onglet des pièces du dossier d'instruction ${di} # Vérification de la description dans le listing Element Should Contain css=#sousform-document_numerise description test très précise du document # Vérification dans le dossier d'autorisation de la présence de la description Depuis l'onglet des pièces du dossier d'autorisation ${da} Element Should Contain css=#sousform-document_numerise description test très précise du document Depuis la page d'accueil consu consu Depuis la demande d'avis en cours du dossier ${di} On clique sur l'onglet document_numerise Pièces & Documents Element Should Contain css=#sousform-document_numerise description test très précise du document Nature des pièces par défaut [Documentation] Vérifie que dans le formulaire d'ajout des pièces ... si le paramètre option_mode_service_consulte est active alors ... le type de pièce par défaut est "Non applicable". ... Sinon c'est le type initial ou complémentaire qui doit être par défaut ... selon l'incompletude du dossier. # Activation du paramètre &{param_values} = Create Dictionary ... libelle=option_mode_service_consulte ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_values} Depuis la page d'accueil admin admin Depuis l'onglet des pièces du dossier d'instruction ${di} Click Element id=action-soustab-blocnote-message-ajouter Wait Until Element Is Visible document_numerise_nature Element Should Contain css=select#document_numerise_nature option[selected="selected"] Non applicable # Suppression du paramètre &{param_values} = Create Dictionary ... delete=true ... libelle=option_mode_service_consulte ... om_collectivite=agglo Gerer le paramètre par WS ${param_values} Depuis la page d'accueil admin admin Depuis l'onglet des pièces du dossier d'instruction ${di} Click Element id=action-soustab-blocnote-message-ajouter Wait Until Element Is Visible document_numerise_nature Element Should Contain css=select#document_numerise_nature option[selected="selected"] Initiale ${date_ddmmyyyy} = Date du jour FR # Test de la nature par défaut des pièces dans un dossier incomplet Constitution du Workflow de gestion d'une incomplétude 200 Ajouter une instruction au DI et la finaliser ${di} ${incompletude_libelle} Depuis l'instruction du dossier d'instruction ${di} ${incompletude_libelle} ${date_5d} = Add Time To Date ${date_ddmmyyyy} 5 days %d/%m/%Y False %d/%m/%Y Click On SubForm Portlet Action instruction modifier_suivi Input Datepicker date_retour_signature ${date_5d} Click On Submit Button In Subform Depuis l'onglet des pièces du dossier d'instruction ${di} Click Element id=action-soustab-blocnote-message-ajouter Wait Until Element Is Visible document_numerise_nature Element Should Contain css=select#document_numerise_nature option[selected="selected"] Complémentaire ${date_15d} = Add Time To Date ${date_ddmmyyyy} 15 days %d/%m/%Y False %d/%m/%Y Ajouter une instruction au DI ${di} ${completude_libelle} ${date_15d} Suppression d'une pièce [Documentation] Vérifie dans le filestorage si le fichier du document numérisé est ... correctement supprimé lors de la suppression d'une pièce ${path_1} = Get Substring ${document_numerise_uid} 0 2 ${path_2} = Get Substring ${document_numerise_uid} 0 4 # Vérification dans le filestorage File Should Exist ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${document_numerise_uid} File Should Exist ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${document_numerise_uid}.info # Depuis la page d'accueil instrpoly instrpoly # Supprimer une pièce depuis le dossier d'instruction ${di} vues et coupes du projet dans le profil du terrain naturel # Vérification dans le filestorage File Should Not Exist ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${document_numerise_uid} File Should Not Exist ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${document_numerise_uid}.info TNR Ajout de pièces au DI en tant qu'instructeur [Documentation] L'utilisation d'un getval faisait qu'un dossier au hasard était ... récupéré lors de l'ajout de pièces, quand ce dossier était clôturé l'ajout de ... pièces produisait une erreur de droits insuffisants pour les instructeurs. # On crée une nouvelle demande pour le TNR &{args_petitionnaire} = Create Dictionary ... particulier_nom=Riel ... particulier_prenom=Sébastien ... 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_libelle} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${date_ddmmyyyy} = Date du jour FR # Le bug provenait du fait que l'on instanciait à tort le premier document # numérisé créé en base de données. Celui-ci est lié au AZ 013055 12 00001P0. # Ainsi on testait toujours ce DI pour savoir s'il était clôturé et donc si # on avait le droit ou non d'ajouter une pièce. Depuis la page d'accueil instrpoly instrpoly Ajouter une instruction au DI AZ 013055 12 00001P0 ARRÊTÉ DE REFUS Click On Back Button In Subform Click On Back Button In Subform # En cloturant le AZ 013055 12 00001P0 on reproduit le use case. Click On Link ARRÊTÉ DE REFUS Click On SubForm Portlet Action instruction finaliser Click On SubForm Portlet Action instruction definaliser Click On SubForm Portlet Action instruction modifier Input Datepicker date_retour_rar ${date_ddmmyyyy} Click On Submit Button In Subform # On teste l'ajout de pièces sur le DI de test en tant qu'instructeur # Cela doit fonctionner bien que le AZ 013055 12 00001P0 soit clôturé &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=15/09/2015 ... document_numerise_type=vues et coupes du projet dans le profil du terrain naturel Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On supprime les événements d'instruction créés spécifiquement pour le TNR Depuis la page d'accueil admin admin Depuis l'instruction du dossier d'instruction AZ 013055 12 00001P0 Arrêté de Refus signé Click On SubForm Portlet Action instruction definaliser Supprimer l'instruction AZ 013055 12 00001P0 Arrêté de Refus signé Supprimer l'instruction AZ 013055 12 00001P0 ARRÊTÉ DE REFUS Téléchargement de l'intégralité des pièces [Documentation] Contrôle que l'action "télécharger toutes les pièces" dans l'onglet ... Pièce(s) d'un dossier d'instruction, dans l'onglet Pièce(s) du DA et les demandes ... d'avis produit bien une archive téléchargeable contenant toutes les pièces. ... On ajoute plusieurs fois le même type de pièce le même jour pour vérifier que les ... fichiers sont bien suffixés. &{args_petitionnaire} = Create Dictionary ... particulier_nom=Compagnon ... particulier_prenom=Émilie ... 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_libelle} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Depuis la page d'accueil admin admin &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=31/03/2016 ... document_numerise_type=avis obligatoires Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=31/03/2016 ... document_numerise_type=avis obligatoires Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=31/03/2016 ... document_numerise_type=avis obligatoires Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel2.pdf ... date_creation=30/03/2016 ... document_numerise_type=avis obligatoires Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # Pièce de type "arrêté retour prefecture" qui sera disponible depuis le DA &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=31/03/2016 ... document_numerise_type=arrêté retour préfecture Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} Depuis la page d'accueil instr instr # Ajout d'une consultation au dossier pour que consu puisse accéder aux pièces Ajouter une consultation depuis un dossier ${di_libelle} 59.01 - Direction de l'Eau et de l'Assainissement Depuis l'onglet des pièces du dossier d'instruction ${di_libelle} ${path_archive} ${archive_name} = Télécharger toutes les pièces # Composition du nom correct de l'archive zip ${di_libelle_spaceless} = Sans espace ${di_libelle} ${date_ddmmyyyy} = Date du jour EN ${date_jour_sans_tirets} = STR_REPLACE - ${EMPTY} ${date_ddmmyyyy} ${correct_archive_name_di} = Set Variable ${di_libelle_spaceless}_${date_jour_sans_tirets}.zip # Vérification du nom de l'archive, qui doit commencer par le n° de DI Should Be Equal ${correct_archive_name_di} ${archive_name} # L'archive doit contenir les 3 pièces du DI Archive Should Contain File ${path_archive} 20160331AVIS.pdf Archive Should Contain File ${path_archive} 20160331AVIS-1.pdf Archive Should Contain File ${path_archive} 20160331AVIS-2.pdf Archive Should Contain File ${path_archive} 20160330AVIS.pdf Archive Should Contain File ${path_archive} 20160331ART.pdf # Récupération de l'archive dans le contexte du DA du DI utilisé précédemment ${da_libelle} = Get Substring ${di_libelle} 0 -2 ${da_libelle_spaceless} = Sans espace ${da_libelle} ${correct_archive_name_da} = Set Variable ${da_libelle_spaceless}_${date_jour_sans_tirets}.zip Depuis l'onglet des pièces du dossier d'autorisation ${da_libelle} ${path_archive} ${archive_name} = Télécharger toutes les pièces # Le nom de l'archive doit commencer par le numéro de DA (sans le P0 du DI) Should Be Equal ${correct_archive_name_da} ${archive_name} Archive Should Contain File ${path_archive} 20160331AVIS.pdf Archive Should Contain File ${path_archive} 20160331AVIS-1.pdf Archive Should Contain File ${path_archive} 20160331AVIS-2.pdf Archive Should Contain File ${path_archive} 20160330AVIS.pdf Archive Should Contain File ${path_archive} 20160331ART.pdf # Récupération de l'archive depuis la demande d'avis en cours Depuis la page d'accueil consu consu Depuis la demande d'avis en cours du dossier ${di_libelle} On clique sur l'onglet document_numerise Pièces & Documents ${path_archive} ${archive_name} = Télécharger toutes les pièces Should Be Equal ${correct_archive_name_di} ${archive_name} Archive Should Contain File ${path_archive} 20160331AVIS.pdf Archive Should Contain File ${path_archive} 20160331AVIS-1.pdf Archive Should Contain File ${path_archive} 20160331AVIS-2.pdf Archive Should Contain File ${path_archive} 20160330AVIS.pdf Archive Should Contain File ${path_archive} 20160331ART.pdf # On rend l'avis sur la consultation pour qu'elle devienne "passée" On clique sur l'onglet main Demandes D'avis En Cours &{args_avis_consultation} = Create Dictionary ... avis_consultation=Favorable ... motivation=Pas de réserves ... fichier_upload=testImportManuel.pdf Rendre l'avis sur la consultation du dossier ${di_libelle} ${args_avis_consultation} Depuis la demande d'avis passée du dossier ${di_libelle} On clique sur l'onglet document_numerise Pièces & Documents ${path_archive} ${archive_name} = Télécharger toutes les pièces Should Be Equal ${correct_archive_name_di} ${archive_name} Archive Should Contain File ${path_archive} 20160331AVIS.pdf Archive Should Contain File ${path_archive} 20160331AVIS-1.pdf Archive Should Contain File ${path_archive} 20160331AVIS-2.pdf Archive Should Contain File ${path_archive} 20160330AVIS.pdf Archive Should Contain File ${path_archive} 20160331ART.pdf Vérification du message de notification à l'ajout d'une pièce numérisée [Documentation] Vérification des différents cas concernant la notification ... par message à l'ajout de pièce numérisée. # On ajoute un instructeur de la même division que instrpolycomm2 ${utilisateur_nom} = Set Variable Patricia O''Maley Depuis la page d'accueil admin admin Ajouter l'utilisateur ${utilisateur_nom} nospam@openmairie.org pomaley pomaley INSTRUCTEUR POLYVALENT MARSEILLE Ajouter l'instructeur depuis le menu ${utilisateur_nom} subdivision J instructeur ${utilisateur_nom} # On ajoute un DI &{args_petitionnaire} = Create Dictionary ... particulier_nom=Rousseau ... particulier_prenom=Matilda ... om_collectivite=MARSEILLE &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Déclaration préalable ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ${di_libelle} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${date_ddmmyyyy} = Date du jour FR # # Cas n°1 # # On se connecte avec l'instructeur affecté au dossier pour ajouter une # pièce Depuis la page d'accueil instrpolycomm2 instrpolycomm2 &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date_ddmmyyyy} ... document_numerise_type=autres pièces composant le dossier (A0) ${dossier_message_1} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie que le message est déjà marqué comme lu Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Should Be Equal 1 dossier_message Depuis le contexte du message dans le dossier d'instruction ${di_libelle} ${dossier_message_1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be lu Oui # # Cas n°2 # # On ajoute une nouvelle pièce sur le même dossier avec le même utilisateur &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date_ddmmyyyy} ... document_numerise_type=autres pièces composant le dossier (A3/A4) ${dossier_message_2} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie qu'il n'y a pas de message ajouté Should Be Empty ${dossier_message_2} Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Should Be Equal 1 dossier_message # # Cas n°3 # # On se connecte avec un instructeur qui n'est pas affecté au dossier mais # de la même division Depuis la page d'accueil pomaley pomaley &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date_ddmmyyyy} ... document_numerise_type=autres pièces composant le dossier délivré (A0) ${dossier_message_3} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie que le message est marqué comme non lu Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Should Be Equal 2 dossier_message Depuis le contexte du message dans le dossier d'instruction ${di_libelle} ${dossier_message_3} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be lu Non # # Cas n°4 # # On ajoute une nouvelle pièce avec l'instructeur qui n'est pas affecté au # dossier mais de la même division &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date_ddmmyyyy} ... document_numerise_type=autres pièces composant le dossier délivré (A3/A4) ${dossier_message_4} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie qu'il n'y a pas de message ajouté Should Be Empty ${dossier_message_4} Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Should Be Equal 2 dossier_message # # Cas n°5 # # On marque comme lu le message du précédent dépôt de pièce Marquer comme lu le message dans le dossier d'instruction ${di_libelle} ${dossier_message_3} # On ajoute une nouvelle pièce avec l'instructeur qui n'est pas affecté au # dossier mais de la même division &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date_ddmmyyyy} ... document_numerise_type=avis obligatoires ${dossier_message_5} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie que le message est marqué comme non lu Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Should Be Equal 3 dossier_message Depuis le contexte du message dans le dossier d'instruction ${di_libelle} ${dossier_message_5} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be lu Non TNR Vérification que le type de pièce est bien affiché pour tous les profils autorisé [Documentation] Test vérifiant que si un utilisateur a un profil lui permettant ... d'accéder à l'onglet Pièce(s) alors la catégorie des pièces doit être visible. # Création d'un dossier et ajout d'une pièce a ce dossier Depuis la page d'accueil admin admin &{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 &{args_petitionnaire} = Create Dictionary ... particulier_nom=Beauchesne ... particulier_prenom=Alexis ... om_collectivite=MARSEILLE ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté retour préfecture Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} Depuis l'onglet des pièces du dossier d'instruction ${di} Wait Until Page Contains arrêté retour préfecture La page ne doit pas contenir d'erreur # Changement de profil pour un profil pouvant voir les pièces mais # pas les modifier Depuis la page d'accueil dirrec dirrec Depuis l'onglet des pièces du dossier d'instruction ${di} Wait Until Page Contains arrêté retour préfecture La page ne doit pas contenir d'erreur 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}