*** Settings *** Documentation Actions spécifiques aux tasks. *** Keywords *** Depuis le menu Moniteur Plat'AU # On accède au tableau Depuis le listing task Depuis le menu Moniteur IDE'AU # On accède au tableau Depuis le listing task_portal Depuis le contexte d'une task à partir de la recherche avancée [Documentation] Accède à la task [Arguments] ${values} ${menu}=platau # On accède au tableau Run Keyword If '${menu}' == 'platau' Depuis le menu Moniteur Plat'AU ... ELSE Depuis le menu Moniteur IDE'AU ${passed} = Run Keyword And Return Status Element Should Contain css=#advanced-form legend Afficher la recherche simple Run Keyword If ${passed}==False Click Element css=#toggle-advanced-display # Wait Until Element Is Visible css=div#adv-search-adv-fields input#dossier Wait Until Element Is Visible css=div#adv-search-adv-fields input#type # On remplit Si "task" existe dans "${values}" on execute "Input Text" dans le formulaire Si "type" existe dans "${values}" on execute "Input Text" dans le formulaire Si "state" existe dans "${values}" on execute "Select From List By Label" dans le formulaire Si "object_id" existe dans "${values}" on execute "Input Text" dans le formulaire Si "dossier" existe dans "${values}" on execute "Input Text" dans le formulaire # On valide le formulaire de recherche Click On Search Button # On clique sur le résultat Run Keyword If 'task' in ${values} Click On Link ${values.task} Run Keyword If 'task' not in ${values} and 'dossier' in ${values} Click On Link ${values.dossier} # On vérifie qu'il n'y a pas d'erreur La page ne doit pas contenir d'erreur Depuis le contexte de la task [Documentation] Accède au formulaire [Arguments] ${task} # On accède au tableau Depuis le menu Moniteur Plat'AU # On recherche l'enregistrement Click Element css=#toggle-advanced-display Input text css=#task ${task} Click On Search Button # On clique sur le résultat Click On Link ${task} # On vérifie qu'il n'y a pas d'erreur La page ne doit pas contenir d'erreur Modifier la task [Documentation] Modifie l'enregistrement [Arguments] ${task} ${values} # On accède à l'enregistrement Depuis le contexte de la task ${task} # On clique sur le bouton modifier Click On Form Portlet Action task modifier # On saisit des valeurs Saisir la task ${values} # On valide le formulaire Click On Submit Button Saisir la task [Documentation] Remplit le formulaire [Arguments] ${values} Si "type" existe dans "${values}" on execute "Input Text" dans le formulaire Si "timestamp_log" existe dans "${values}" on execute "Input Text" dans le formulaire Si "state" existe dans "${values}" on execute "Select From List By Label" dans le formulaire Si "object_id" existe dans "${values}" on execute "Input Text" dans le formulaire Vérifier que la tâche a bien été ajoutée ou modifiée [Documentation] Vérifie que tous les éléments passés en paramètre sont présents [Arguments] ${values} ${menu}=platau Depuis le contexte d'une task à partir de la recherche avancée ${values} ${menu} Element Should Contain css=#type ${values.type} Element Should Contain css=#state ${values.state} Element Should Contain css=#stream ${values.stream} Run Keyword If '${values.stream}'=='output' Element Should Contain css=#link_dossier ${values.link_dossier} Run Keyword If '${values.stream}'=='input' and 'task' in ${values} Log ${values.task} Run Keyword If '${values.stream}'=='input' and 'task' in ${values} Element Text Should Be css=#task ${values.task} Run Keyword If '${values.stream}'=='input' and 'dossier' in ${values} Log ${values.dossier} Run Keyword If '${values.stream}'=='input' and 'dossier' in ${values} Form Value Should Contain css=#dossier ${values.dossier} Run Keyword If 'object_id' in ${values} Element Should Contain css=#object_id ${values.object_id} Vérifier qu'il n'y a pas de création d'autre tâche non concerné [Arguments] ${id_next_task} ${id_dossier} Depuis le menu Moniteur Plat'AU ${passed} = Run Keyword And Return Status Element Should Contain css=#advanced-form legend Afficher la recherche simple Run Keyword If ${passed}==False Click Element css=#toggle-advanced-display Wait Until Element Is Visible css=div#adv-search-adv-fields input#dossier Wait Until Element Is Visible css=div#adv-search-adv-fields input#type Input Text css=div#adv-search-adv-fields input#dossier ${id_dossier} Input Text css=div#adv-search-adv-fields input#task ${id_next_task} Input Text css=div#adv-search-adv-fields input#type ${EMPTY} Input Text css=div#adv-search-adv-fields input#object_id ${EMPTY} Click On Search Button Element Should Contain css=.tab-data Aucun enregistrement. Récupérer le contenu du champ json_payload [Arguments] ${values} Depuis le contexte d'une task à partir de la recherche avancée ${values} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=fieldset#fieldset-form-task-json_payload>legend ${json_payload_content} = Get Text css=#json_payload ${json_payload_loaded} = Evaluate json.loads('''${json_payload_content}''') json [Return] ${json_payload_loaded} Ajouter la tâche par WS [Documentation] Ajoute une tâche avec les mêmes paramètres que task [Arguments] ${task_values} ${json_task} = Create Dictionary ... type=${task_values.type} ... json_payload=${task_values.json_payload} ... stream=input ${is_object_id_defined} = Run Keyword And Return Status Dictionary Should Contain Key ${task_values} object_id Run Keyword If ${is_object_id_defined} Set To Dictionary ${json_task} object_id=${task_values.object_id} ${is_dossier_defined} = Run Keyword And Return Status Dictionary Should Contain Key ${task_values} dossier Run Keyword If ${is_dossier_defined} Set To Dictionary ${json_task} dossier=${task_values.dossier} ${is_category_defined} = Run Keyword And Return Status Dictionary Should Contain Key ${task_values} category Run Keyword If ${is_category_defined} Set To Dictionary ${json_task} category=${task_values.category} Log ${json_task} ${json_data} = Create Dictionary ... task=${json_task} ${session} = Catenate http${PROJECT_NAME} Create Session ${session} ${PROJECT_URL}tests_services/rest_entry.php ${headers} = Create Dictionary Content-Type=application/json # Convertion de dictionnaire enshaine JSON ${json_string}= evaluate json.dumps(${json_data}) json ${resp} Post Request ${session} /taskadd data=${json_string} headers=${headers} # On verifie s'il y a eu une erreur ${status} = Run Keyword And Return Status To Json ${resp.content} Run Keyword If '${status}' != 'True' Log ${resp.content} WARN # Convertion de chaine JSON en dict python ${resp} = To Json ${resp.content} Run Keyword If '${resp["http_code"]}' != '200' Log ${resp["message"]} WARN Should be Equal '${resp["http_code"]}' '200' # Extraction de l'ID de la tâche dans le message ${task_id} = Replace String Using Regexp ${resp["message"]} ... ^Tâche '([^']+)' ajoutée avec succès$ \\1 Log ${task_id} [Return] ${task_id} Déclencher le traitement des tâches par WS [Documentation] Délenche le traitement des tâches par WS [Arguments] ${json_payload} = Create Dictionary ... module=taches ${session} = Catenate http${PROJECT_NAME} Create Session ${session} ${PROJECT_URL}services/rest_entry.php ${headers} = Create Dictionary Content-Type=application/json # Convertion de dictionnaire en chaine JSON ${json_string}= evaluate json.dumps(${json_payload}) json ${resp} Post Request ${session} /taches data=${json_string} headers=${headers} # On verifie s'il y a eu une erreur ${status} = Run Keyword And Return Status To Json ${resp.content} Run Keyword If '${status}' != 'True' Log ${resp.content} WARN # Convertion de chaine JSON en dict python ${resp} = To Json ${resp.content} Run Keyword If '${resp["http_code"]}' != '200' Log ${resp["message"]} WARN Should be Equal '${resp["http_code"]}' '200' [Return] ${resp["message"]}