*** Settings *** Documentation Test des tasks Publik (Portal). # 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 ... AND Activation des platau_type_demande ... AND Rendre les types de dossier d'autorisation détaillés utilisés transmissible à Plat'AU DP ... AND Activation de la configuration portal IDE'AU Suite Teardown Run Keywords ... Desactivation des options générales ... AND Desactivation de la configuration portal IDE'AU ... AND Desactivation des options des task ... AND Rendre Un Type De Dossier D'autorisation Detailles Non Transmissible A Plat'AU DP ... AND For Suite Teardown *** Test Cases *** Activation des options générales # En tant qu'admin Depuis la page d'accueil admin admin # isole le contexte du test (création d'une collectivité) &{librecom_multi_1_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WS_CREATE_DI_MULTI_20 ... departement=020 ... commune=900 ... insee=20900 ... direction_code=WG ... direction_libelle=Direction de LIBRECOM_WS_CREATE_DI_MULTI_20 ... direction_chef=Chef ... division_code=WG ... division_libelle=Division WG ... division_chef=Chef ... guichet_om_utilisateur_nom=Herien Kollin ... guichet_om_utilisateur_email=hkollin@openads-test.fr ... guichet_om_utilisateur_login=hkollin ... guichet_om_utilisateur_pwd=hkollin ... instr_om_utilisateur_nom=Larolos Feauchemin ... instr_om_utilisateur_email=lfeauchemin@openads-test.fr ... instr_om_utilisateur_login=lfeauchemin ... instr_om_utilisateur_pwd=lfeauchemin ... code_entite=LBCOM_56 ... acteur=LIBRECOM-ACT-056 Isolation d'un contexte ${librecom_multi_1_values} Set Suite Variable ${librecom_multi_1_values} # ajouter le paramètre 'acteur' à la collectivité/au service &{platau_acteur_service_instructeur} = Create Dictionary ... libelle=platau_acteur_service_instructeur ... valeur=${librecom_multi_1_values["acteur"]} ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${platau_acteur_service_instructeur} #-- ajouter manuellement une commune en saisissant une date de validité dans le passé &{oldcom_values} = Create Dictionary ... typecom=COM ... com=45645 ... reg=45 ... dep=45 ... arr=645 ... tncc=0 ... ncc=LIBRECOM_OLD ... nccenr=LibreCom_old ... libelle=LIBRECOM_OLD ... can=45 ... comparent= ... om_validite_debut=01/11/2020 Ajouter commune avec dates validité ${oldcom_values} Set Suite Variable ${oldcom_values} Vérification du state de Création DA lors de l'ajout d'un dossier Publik # Récupère le payload de création DI ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}create_DI_payload.txt ${json_payload} = Replace String ${json_payload} KWE-Z9G-OYW 000-MMM-00 ${json_payload} = Replace String ${json_payload} 515-Q0L-KMX MMM-000-00 ${json_payload} = Replace String ${json_payload} 13055 ${librecom_multi_1_values["insee"]} ${json_payload} = Replace String ${json_payload} 71Z-Y9O-KWQ ${librecom_multi_1_values["acteur"]} ${json_payload} = Replace String ${json_payload} 71Z-Y9O-KWQ ${librecom_multi_1_values["acteur"]} ${payload_dict} = To Json ${json_payload} # En tant qu'admin Depuis la page d'accueil admin admin # Ajoute une commune &{com_values} = Create Dictionary ... typecom=COM ... com=20900 ... reg=20 ... dep=20 ... arr=900 ... tncc=0 ... ncc=LIBRECOM_WS_CREATE_DI_MULTI_20 ... nccenr=LIBRECOM_WS_CREATE_DI_MULTI_20 ... libelle=LIBRECOM_WS_CREATE_DI_MULTI_20 ... can=17 ... comparent= ... om_validite_debut=01/11/2020 Ajouter commune avec dates validité ${com_values} # Les attributs state et stream ne sont pas nécessaires lors de l'ajout de la tache # Ici ces attributs sont utilisés lors de la vérification des données de la tâches en consultation ${task_values} = Create Dictionary ... type=create_DI ... json_payload=${json_payload} ... category=portal Ajouter la tâche par WS ${task_values} ${msg} = Déclencher le traitement des tâches par WS ${di_regex} = Catenate ^.*\\[[0-9]+\\] ${task_values["type"]} ${payload_dict["dossier"]["dossier"]} : ... dossier instruction '([^']+)' .*$ ${di_lib} = Replace String Using Regexp ${msg} ${di_regex} \\1 ${dossier_autorisation} = Get Substring ${di_lib} 0 -2 ${dossier_autorisation} = Sans espace ${dossier_autorisation} &{task_values} = Create Dictionary ... type=creation_DA ... dossier=${dossier_autorisation} ... state=new ... object_id=${dossier_autorisation} ... link_dossier=${dossier_autorisation} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} Nouvelle itération avec une payload JSON complète [Documentation] Ajout d'une tâche de création de DI via WS, puis traitement + Vérification de la date de création et de la date de dernière modification sur le moniteur Plat'AU. ... Vérifie l'ajout de la tâche via WS et son traitement. ... Vérifie la date de création et la date de dernière modification sur le listing des tasks. # Active le paramètre platau_type_demande_initial_PCA &{param_type_demande} = Create Dictionary ... libelle=platau_type_demande_initial_PCA ... valeur=DI ... om_collectivite=agglo Gerer le paramètre par WS ${param_type_demande} # Ajout du lien pour les suivis de demande &{param_args} = Create Dictionary ... libelle=portal_code_suivi_base_url ... valeur=LIEN_PORTAL/[PORTAL_CODE_SUIVI]/load ... om_collectivite=agglo Gerer le paramètre par WS ${param_args} # Récupère le template de payload JSON et le transforme en dictionnaire ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}create_DI_portal_IDEAU_payload.txt ${payload_dict} = To Json ${json_payload} # Remplace certaines valeurs ${json_payload} = Replace String ${json_payload} 13055 ${librecom_multi_1_values["insee"]} ${payload_dict} = To Json ${json_payload} # Convertit la payload JSON en string ${json_string}= evaluate json.dumps(${payload_dict}) json # Ajoute d'une tâche de création de DI (devant aussi créer le DA associé si inexistant) ${task_values} = Create Dictionary ... type=create_DI ... json_payload=${json_string} ... category=portal Ajouter la tâche par WS ${task_values} # Lancer le traitement des tâches (entrantes avec statut 'à traiter', par défaut) ${msg} = Déclencher le traitement des tâches par WS # Extraction du libellé du DI dans le message ${di_regex} = Catenate ^.*dossier instruction '([^']+)'.*$ ${di_lib} = Replace String Using Regexp ${msg} ${di_regex} \\1 # En tant qu'admin Depuis la page d'accueil admin admin # Vérifier que le dossier a bien été ajouté Depuis le contexte du dossier d'instruction ${di_lib} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#dossier_libelle ${di_lib} # Collectivité Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=div.om_collectivite ${librecom_multi_1_values["om_collectivite_libelle"]} # Demandeur principal Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Form Value Should Contain css=#dossier_petitionnaire ville de marseille ville de marseille # Autres demandeurs Open Fieldset dossier_instruction demandeur Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#liste_demandeur ville de marseille ville de marseille Element Should Contain css=#liste_demandeur Monsieur Bloom Orlando # Dépôt électronique Element Should Be Visible css=span.om-icon.om-icon-16.om-icon-fix.depot-electronique-16 # Code suivi de demande Open All Fieldset Using Javascript dossier_instruction Element Should Contain css=span#lien_iiue_portal PCRDLHKL # Vérification du mapping de l'architecte dans les données techniques Click Element css=#action-form-dossier_instruction-donnees_techniques Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#sousform-donnees_techniques Données techniques / CERFA Open Fieldset In Subform donnees_techniques construire Open Fieldset In Subform donnees_techniques projet-construction Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#co_archi_recours Oui Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#architecte rudy riccioti # Vérification du fonctionnement des champs de fusion liés aux external_uids 'demande' et 'code-suivi' # Ajout des champs de fusion sur une lettre type Depuis la page d'accueil admin admin &{args_lettretype} = Create Dictionary ... id=305_001_lettretype_test_merge_fields_external_uids ... libelle=Lettre type test merge fields external uids ... sql=Récapitulatif du dossier d'instruction / instruction (instruction) ... titre=Titre ... corps=[identifiant_externe_technique] [identifiant_externe_fonctionnel] ... actif=true ... collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Ajouter la lettre-type depuis le menu &{args_lettretype} # Ajout d'une instruction liée à la lettre type Depuis la page d'accueil admin admin @{etat_source} = Create List delai de notification envoye @{type_di} = Create List PCA - P - Initial &{args_evenement} = Create Dictionary ... libelle=TEST_305_001_champs_fusion_external_uids ... etats_depuis_lequel_l_evenement_est_disponible=${etat_source} ... dossier_instruction_type=${type_di} ... lettretype=305_001_lettretype_test_merge_fields_external_uids Lettre type test merge fields external uids ... redirection_ajout=Listing des instructions (défaut) Ajouter l'événement depuis le menu ${args_evenement} # Ajout de l'instruction sur le dossier d'instruction Depuis le contexte du dossier d'instruction ${di_lib} Ajouter une instruction au DI ${di_lib} TEST_305_001_champs_fusion_external_uids # Vérification de la présence des champs de fusion dans la lettre type Depuis l'instruction du dossier d'instruction ${di_lib} TEST_305_001_champs_fusion_external_uids Click On SubForm Portlet Action instruction edition new_window Open PDF ${OM_PDF_TITLE} PDF Page Number Should Contain 1 PCRDLHKL PDF Page Number Should Contain 1 cerfa-integral-permis-de-construire-pc/96 Close PDF # Suppression du lien pour les suivis de demande &{param_args} = Create Dictionary ... libelle=portal_code_suivi_base_url ... valeur=LIEN_PORTAL/[PORTAL_CODE_SUIVI]/load ... om_collectivite=agglo Gerer le paramètre par WS ${param_args} # On vérifie qu'un dossier issus du portail ne peut pas être supprimé # On active l'option de suppression &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Depuis la page d'accueil admin admin Depuis le contexte du dossier d'instruction ${di_lib} Portlet Action Should Not Be In Form dossier_instruction supprimer *** Keywords *** Desactivation des options générales &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} &{param_type_demande} = Create Dictionary ... libelle=platau_type_demande_initial_PCA ... delete=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_type_demande} Activation de la configuration portal IDE'AU Run sed -i '$ a\\$config\["type_portal_sve"\] = "ideau";' ${EXECDIR}${/}..${/}dyn${/}config.inc.php Desactivation de la configuration portal IDE'AU Run sed -i '$d' ${EXECDIR}${/}..${/}dyn${/}config.inc.php