*** 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 Run Keywords ... For Suite Setup ... AND Activation des options des task Suite Teardown Run Keywords ... Desactivation des options des task ... AND For Suite Teardown *** Test Cases *** Constitution du jeu de données DI [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 ... terrain_adresse_localite=TEST302_04_AdresseLocalite &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST302_04_TASKNOM01 ... particulier_prenom=TEST3002_04_TASKPRENOM01 ... localite=TEST3002_04_Localite ... om_collectivite=MARSEILLE ${di1} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1} &{donnees_techniques_values} = Create Dictionary ... enga_decla_lieu=TEST302_04_engadelalieu ... enga_decla_date=${DATE_DDMMYYYY} Saisir les données techniques du DI ${di1} ${donnees_techniques_values} ${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} Depuis le contexte de la catégorie de pièces PLATAU On clique sur l'onglet document_numerise_type Type De Pièces # cocher 'aff_da' et 'aff_service_consulte' soient déjà cochées Click On Add Button JS &{values} = Create Dictionary ... code=PLATAUA ... libelle=Document numerise A de catégorie PLATAU Saisir le type de pièces en sous-formulaire ${values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. Click On Back Button In Subform Click On Add Button JS &{values} = Create Dictionary ... code=PLATAUB ... libelle=Document numerise B de catégorie PLATAU Saisir le type de pièces en sous-formulaire ${values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. Test complet des tasks liées aux pièces [Documentation] Permet de vérifier le fonctionnement complet de la gestion des pièces et leur taches platau associée. ... Ordre des actions attendues : ... ajout d'une pièce A transmissible -> add task ajout "new" ... modification de la pièce A -> rien ... ajout d'une pièce B transmissible -> add task ajout "new" ... mise en "pending" de la task de la pièces A ... modification de la pièce A -> add task modification "new" ... mise en "pending" des deux tasks de pièces ... modification de la pièce A -> add task modification "new" ... modification de la pièce A -> rien ... modification de la pièce B -> add task modification "new" ... mise en "done" de la task ajout de la pièce B ... modification de la pièce B -> rien ... mise en "pending" de la task modification de la pièce A ... modification de la pièce A -> add task modification "new" ... suppression de la pièce A -> add task suppression "new" ... + mise en "canceled" des tasks modification A ... + pas touche à la task d'ajout qui reste en "pending" Depuis la page d'accueil admin admin # On ajoute un document numérisé A par DI &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${DATE_DDMMYYYY} ... document_numerise_type=Document numerise A de catégorie PLATAU Ajouter une pièce depuis le dossier d'instruction ${di1} ${document_numerise_values} ${name_piece_a} = Get Text css=div#sousform-document_numerise div.subtitle span.libelle @{id_piece_a} = Get Regexp Matches ${name_piece_a} ^> ([0-9]+) 1 # -> add task ajout "new" : On vérifie que la tache existe &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output ... object_id=${id_piece_a[0]} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_ajout_piece_a} = Get Text css=#task # On ajoute un document numérisé B par DI &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel2.pdf ... date_creation=${DATE_DDMMYYYY} ... document_numerise_type=Document numerise B de catégorie PLATAU Ajouter une pièce depuis le dossier d'instruction ${di1} ${document_numerise_values} ${name_piece_b} = Get Text css=div#sousform-document_numerise div.subtitle span.libelle ${id_piece_b} = Get Regexp Matches ${name_piece_b} ^> ([0-9]+) 1 # -> add task ajout "new" : On vérifie que la tache existe &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output ... object_id=${id_piece_b[0]} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_ajout_piece_b} = Get Text css=#task # On modifie la pièce A avant qu'elle soit envoyée à Plat'au &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel2.pdf ... date_creation=${DATE_DDMMYYYY} Modifier une pièce depuis le dossier d'instruction ${di1} Document numerise A de catégorie PLATAU ${document_numerise_values} # -> On vérifie que nous avons toujours une tache d'ajout de la pièce &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output ... object_id=${id_piece_b[0]} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # -> On vérifie que nous n'avons pas de tache de modification de la pièce Depuis le menu Moniteur Plat'AU Wait Until Element Is Visible css=div#adv-search-adv-fields input#dossier Wait Until Element Is Visible css=div#adv-search-adv-fields select#type @{select_type} = Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Get List Items type ${status_modification_piece} = Run Keyword And Return Status Should Contain Match ${select_type} Modification pièce (sortant) &{task_values} = Create Dictionary ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output ... object_id=${id_piece_b[0]} Run Keyword If ${status_modification_piece} == True Set To Dictionary ${task_values} type=modification_piece Depuis le listing des tasks à partir de la recherche avancée ${task_values} Element Should Not Contain css=.tab-listing-container Modification pièce (sortant) # mise en "pending" de la tasks ajout de pièce A &{task_values_modif} = Create Dictionary ... state=en cours Modifier la task ${id_ajout_piece_a} ${task_values_modif} # On modifie la pièce A après qu'elle soit envoyée à Plat'au &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${DATE_DDMMYYYY} Modifier une pièce depuis le dossier d'instruction ${di1} Document numerise A de catégorie PLATAU ${document_numerise_values} # -> add task modifier "new" : On vérifie que la tache existe &{task_values} = Create Dictionary ... type=modification_piece ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output ... object_id=${id_piece_a[0]} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_modif_piece_a} = Get Text css=#task # mise en "pending" de la tasks modif de pièce A &{task_values_modif} = Create Dictionary ... state=en cours Modifier la task ${id_modif_piece_a} ${task_values_modif} # mise en "pending" de la tasks ajout de pièce B &{task_values_modif} = Create Dictionary ... state=en cours Modifier la task ${id_ajout_piece_b} ${task_values_modif} # modification de la pièce A &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${DATE_DDMMYYYY} Modifier une pièce depuis le dossier d'instruction ${di1} Document numerise A de catégorie PLATAU ${document_numerise_values} # -> add task modifier "new" : On vérifie que la tache existe &{task_values} = Create Dictionary ... type=modification_piece ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output ... object_id=${id_piece_a[0]} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_modif_piece_a} = Get Text css=#task # modification de la pièce A &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${DATE_DDMMYYYY} Modifier une pièce depuis le dossier d'instruction ${di1} Document numerise A de catégorie PLATAU ${document_numerise_values} # -> il ne doit pas y avoir de nouvelle tache de modification ${id_next_task} = Evaluate ${id_modif_piece_a} + 1 Vérifier qu'il n'y a pas de création d'autre tâche non concerné ${id_next_task} ${di1_sans_espace} ajout_piece Vérifier qu'il n'y a pas de création d'autre tâche non concerné ${id_next_task} ${di1_sans_espace} modification_piece # modification de la pièce B &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${DATE_DDMMYYYY} Modifier une pièce depuis le dossier d'instruction ${di1} Document numerise B de catégorie PLATAU ${document_numerise_values} # -> add task modification "new": On vérifie que la tache existe &{task_values} = Create Dictionary ... type=modification_piece ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output ... object_id=${id_piece_b[0]} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_modif_piece_b} = Get Text css=#task # mise en "done" de la task ajout de la pièce B &{task_values_modif} = Create Dictionary ... state=terminé Modifier la task ${id_ajout_piece_b} ${task_values_modif} # on vérifie que la tache as changer de status &{task_values} = Create Dictionary ... type=ajout_piece ... task=${id_ajout_piece_b} ... stream=output ... link_dossier=${di1_sans_espace} ... state=done Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${status} = Run Keyword And Return Status Open Fieldset task json_payload Run Keyword If '${status}' != 'True' Open Fieldset task json_payload-calculee Element Should Contain css=#json_payload "state": "done", # modification de la pièce B -> rien de nouveau &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${DATE_DDMMYYYY} Modifier une pièce depuis le dossier d'instruction ${di1} Document numerise B de catégorie PLATAU ${document_numerise_values} # on vérifie que l'on as qu'une seul tache de modification de la pièce B &{task_values} = Create Dictionary ... type=modification_piece ... dossier=${di1_sans_espace} ... state=new ... link_dossier=${di1_sans_espace} ... stream=output ... object_id=${id_piece_b[0]} Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} ${id_modification_piece} = Get Text css=#task ${id_next_task_modification_piece} = Evaluate ${id_modification_piece} + 1 Vérifier qu'il n'y a pas de création d'autre tâche non concerné ${id_next_task_modification_piece} ${di1_sans_espace} # mise en "pending" de la task modification de la pièce A &{task_values_modif} = Create Dictionary ... state=en cours Modifier la task ${id_modif_piece_a} ${task_values_modif} # modification de la pièce A &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel2.pdf ... date_creation=${DATE_DDMMYYYY} Modifier une pièce depuis le dossier d'instruction ${di1} Document numerise A de catégorie PLATAU ${document_numerise_values} # -> add task modification "new" &{task_values} = Create Dictionary ... type=modification_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} # suppression de la pièce A Supprimer une pièce depuis le dossier d'instruction ${di1} Document numerise A de catégorie PLATAU # -> add task suppression "new" &{task_values} = Create Dictionary ... type=modification_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} # + mise en "canceled" des tasks modification A &{task_values} = Create Dictionary ... type=modification_piece ... dossier=${di1_sans_espace} ... state=canceled ... link_dossier=${di1_sans_espace} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # + pas touche à la task d'ajout qui reste en "pending" &{task_values} = Create Dictionary ... type=ajout_piece ... dossier=${di1_sans_espace} ... state=pending ... link_dossier=${di1_sans_espace} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values}