Showing
1 changed file
with
183 additions
and
0 deletions
publicbid_plan.robot
0 → 100644
| 1 | +*** Settings *** | ||
| 2 | + | ||
| 3 | +Resource playtender_common.robot | ||
| 4 | +Resource playtender_plan_variables.robot | ||
| 5 | + | ||
| 6 | +*** Keywords *** | ||
| 7 | + | ||
| 8 | +update plan queue | ||
| 9 | + [Documentation] запускає оновлення планів з ЦБД і додає їх в чергу, тобто синхронізація може відбутися не відразу | ||
| 10 | + ... поточна сторіка повертається | ||
| 11 | + | ||
| 12 | + ${current_url} = get location | ||
| 13 | + go to ${broker_baseurl}/utils/queue-plan-update | ||
| 14 | + go to ${current_url} | ||
| 15 | + | ||
| 16 | +open new plan form | ||
| 17 | + [Documentation] відкриття сторінки створення плану | ||
| 18 | + | ||
| 19 | + open page and wait element by locator ${broker_baseurl}/plan/create ${plan_form_locator} | ||
| 20 | + | ||
| 21 | +open plan form by uaid | ||
| 22 | + [Arguments] ${plan_uaid} | ||
| 23 | + [Documentation] відкриття сторінки редагування плану | ||
| 24 | + | ||
| 25 | + open plan page by uaid ${plan_uaid} | ||
| 26 | + click visible element and wait until page contains element ${plan_edit_btn_locator} ${plan_form_locator} | ||
| 27 | + | ||
| 28 | +open plan page by uaid | ||
| 29 | + [Arguments] ${uaid} ${refresh}=${True} | ||
| 30 | + [Documentation] відкриває сторінку з планом | ||
| 31 | + | ||
| 32 | + ${current_location} = get location | ||
| 33 | + ${needed_location} = set variable ${broker_baseurl}/plan/${uaid} | ||
| 34 | + run keyword if '${current_location}' != '${needed_location}' or ${refresh} == ${True} open site page and wait content element ${needed_location} | ||
| 35 | + log many 1 | ||
| 36 | + ${is_plan_found} = get is element exist ${plan_view_checker_element_locator} | ||
| 37 | + log many 2 | ||
| 38 | + return from keyword if ${is_plan_found} == ${True} | ||
| 39 | + log many 3 | ||
| 40 | + ${is_plan_not_found} = get is 404 page | ||
| 41 | + ${is_needed_to_update_and_wait_sync} = set variable if ${is_test_role_owner} == ${False} and ${is_plan_not_found} ${True} ${False} | ||
| 42 | + run keyword if ${is_needed_to_update_and_wait_sync} update plan queue | ||
| 43 | + run keyword if ${is_needed_to_update_and_wait_sync} wait until 404 page disappears | ||
| 44 | + ${is_plan_found} = get is element exist ${plan_view_checker_element_locator} | ||
| 45 | + run keyword if ${is_plan_found} == ${False} fail Opening plan page by uaid fails. | ||
| 46 | + | ||
| 47 | +open plan search form | ||
| 48 | + [Documentation] відкриває сторінку з пошуком планів | ||
| 49 | + | ||
| 50 | + open page and wait element by locator ${broker_baseurl}/plans ${plan_search_form_locator} | ||
| 51 | + | ||
| 52 | +fill plan form | ||
| 53 | + [Arguments] ${data} | ||
| 54 | + [Documentation] заповнення відкритої форми з масива даних | ||
| 55 | + | ||
| 56 | + fill plan general info ${data} | ||
| 57 | + ${items} = get from dictionary by keys ${data} items | ||
| 58 | + run keyword if condition is not none ${items} fill plan form items ${items} | ||
| 59 | + ${buyers} = get from dictionary by keys ${data} buyers | ||
| 60 | + run keyword if condition is not none ${buyers} fill plan form buyers ${buyers} | ||
| 61 | +#Пока не передает Дятлов | ||
| 62 | + ${budget_breakdowns} = get from dictionary by keys ${data} budget breakdown | ||
| 63 | + run keyword if condition is not none ${budget_breakdowns} fill plan form budgetbreakdowns ${budget_breakdowns} | ||
| 64 | +# fill plan form budgetbreakdowns | ||
| 65 | + | ||
| 66 | +fill plan general info | ||
| 67 | + [Arguments] ${data} | ||
| 68 | + [Documentation] заповнює приховані поля + відкриває попап основних даних, заповнює його і закриває | ||
| 69 | + | ||
| 70 | + # hidden inputs | ||
| 71 | + ${budget_id} = get from dictionary by keys ${data} budget id | ||
| 72 | + run keyword if condition is not none ${budget_id} input text to hidden input ${plan_form_budget_id_input_locator} ${budget_id} | ||
| 73 | + ${project_id} = get from dictionary by keys ${data} budget project id | ||
| 74 | + run keyword if condition is not none ${project_id} input text to hidden input ${plan_form_project_id_input_locator} ${project_id} | ||
| 75 | + ${project_name} = get from dictionary by keys ${data} budget project name | ||
| 76 | + run keyword if condition is not none ${project_name} input text to hidden input ${plan_form_project_name_input_locator} ${project_name} | ||
| 77 | + | ||
| 78 | + # general info | ||
| 79 | + open popup by btn locator ${plan_form_general_panel_edit_btn_locator} | ||
| 80 | + ${procurement_method_type} = get from dictionary by keys ${data} tender procurementMethodType | ||
| 81 | + run keyword if condition is not none ${procurement_method_type} select from visible list by value ${plan_form_procurement_method_type_input_locator} ${procurement_method_type} | ||
| 82 | + ${budget_description} = get from dictionary by keys ${data} budget description | ||
| 83 | + run keyword if condition is not none ${budget_description} input text to visible input ${plan_form_title_input_locator} ${budget_description} | ||
| 84 | + ${tender_start_date} = get from dictionary by keys ${data} tender tenderPeriod startDate | ||
| 85 | + run keyword if condition is not none ${tender_start_date} select from visible list by year of date ${plan_form_year_input_locator} ${tender_start_date} | ||
| 86 | + run keyword if condition is not none ${tender_start_date} input month.year of date to visible input ${plan_form_tender_start_date_input_locator} ${tender_start_date} | ||
| 87 | + ${amount} = get from dictionary by keys ${data} budget amount | ||
| 88 | + run keyword and ignore error run keyword if condition is not none ${amount} input number to visible input ${plan_form_value_amount_input_locator} ${amount} | ||
| 89 | + ${currency} = get from dictionary by keys ${data} budget currency | ||
| 90 | + run keyword if condition is not none ${currency} select from visible list by value ${plan_form_value_currency_input_locator} ${currency} | ||
| 91 | + ${classification} = get from dictionary by keys ${data} classification | ||
| 92 | + run keyword if condition is not none ${classification} select classification by code attributes ${plan_form_classification_edit_btn_locator} ${classification} | ||
| 93 | + ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications | ||
| 94 | + run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_additional_classification_edit_btn_locator} ${additional_classifications} ${None} ${kekv_schemes} | ||
| 95 | + run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_kekv_classification_edit_btn_locator} ${additional_classifications} ${kekv_schemes} | ||
| 96 | + Execute Javascript $('[id$="planform-test_mode"]').click() | ||
| 97 | + submit current visible popup | ||
| 98 | + | ||
| 99 | +fill plan form items | ||
| 100 | + [Arguments] ${item_attributes_array} | ||
| 101 | + [Documentation] заповнення номенклатури плану | ||
| 102 | + | ||
| 103 | + :FOR ${item_attributes} IN @{item_attributes_array} | ||
| 104 | + \ ${item_update_index} = get from dictionary by keys ${item_attributes} list_index | ||
| 105 | + \ ${item_update_index_string} = convert to string ${item_update_index} | ||
| 106 | + \ ${open_form_btn_locator} = replace string ${plan_form_update_item_btn_locator_tpl} %index% ${item_update_index_string} | ||
| 107 | + \ run keyword if condition is not none ${item_update_index} click visible element ${open_form_btn_locator} | ||
| 108 | + \ run keyword if condition is none ${item_update_index} click visible element ${plan_form_add_item_btn_locator} | ||
| 109 | + \ wait until popup is visible | ||
| 110 | + \ fill plan item form in opened popup ${item_attributes} | ||
| 111 | + \ run keyword and ignore error submit current visible popup | ||
| 112 | + | ||
| 113 | +fill plan item form in opened popup | ||
| 114 | + [Arguments] ${data} | ||
| 115 | + | ||
| 116 | + fill item form in opened popup ${data} | ||
| 117 | + | ||
| 118 | + ${delivery_end_date} = get from dictionary by keys ${data} deliveryDate endDate | ||
| 119 | + run keyword if condition is not none ${delivery_end_date} run keyword and ignore error input date to input ${item_form_popup_delivery_end_date_input_locator} ${delivery_end_date} | ||
| 120 | + | ||
| 121 | +fill plan form buyers | ||
| 122 | + [Arguments] ${buyer_attributes_array} | ||
| 123 | + [Documentation] заповнення замовника плану | ||
| 124 | + | ||
| 125 | + :FOR ${buyer_attributes} IN @{buyer_attributes_array} | ||
| 126 | + \ click visible element ${plan_form_update_buyer_btn_locator} | ||
| 127 | + \ wait until popup is visible | ||
| 128 | + \ fill buyer form in opened popup ${buyer_attributes} | ||
| 129 | + \ submit current visible popup | ||
| 130 | + | ||
| 131 | +fill buyer form in opened popup | ||
| 132 | + [Arguments] ${data} | ||
| 133 | + [Documentation] заповнює відкриту форму згідно вказаних даних про замовника | ||
| 134 | + | ||
| 135 | + ${legal_name} = get from dictionary by keys ${data} identifier legalName | ||
| 136 | + run keyword if condition is not none ${legal_name} input text to visible input ${buyer_form_popup_legal_name_input_locator} ${legal_name} | ||
| 137 | + ${identifier_id} = get from dictionary by keys ${data} identifier id | ||
| 138 | + run keyword if condition is not none ${identifier_id} input text to visible input ${buyer_form_popup_identifier_id_input_locator} ${identifier_id} | ||
| 139 | + | ||
| 140 | +fill plan form budgetbreakdowns | ||
| 141 | + [Arguments] ${budgetbreakdowns_attributes_array} | ||
| 142 | + [Documentation] заповнення Джерел фінансування плану | ||
| 143 | + | ||
| 144 | + click visible element ${plan_form_update_budgetbreakdowns_btn_locator} | ||
| 145 | + wait until popup is visible | ||
| 146 | + :FOR ${budgetbreakdowns_attributes} IN @{budgetbreakdowns_attributes_array} | ||
| 147 | + \ click visible element ${plan_form_add_budgetbreakdowns_btn_locator} | ||
| 148 | + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 149 | + \ fill budgetbreakdowns form in opened popup ${budgetbreakdowns_attributes} | ||
| 150 | +### \ submit current visible popup | ||
| 151 | +## click visible element ${plan_form_add_budgetbreakdowns_btn_locator} | ||
| 152 | +## wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 153 | +## fill budgetbreakdowns form in opened popup | ||
| 154 | +# fill budgetbreakdowns form in opened popup ${budgetbreakdowns_attributes} | ||
| 155 | + submit current visible popup | ||
| 156 | + | ||
| 157 | +fill budgetbreakdowns form in opened popup | ||
| 158 | + [Arguments] ${data} | ||
| 159 | + [Documentation] заповнює відкриту форму згідно вказаних даних про Джерела фінансування | ||
| 160 | + | ||
| 161 | + ${title} = get from dictionary by keys ${data} title | ||
| 162 | + run keyword if condition is not none ${title} select from visible list by label ${plan_budgetbreakdowns_form_popup_title_input_locator} ${title} | ||
| 163 | + ${value_amount} = get from dictionary by keys ${data} value amount | ||
| 164 | + run keyword if condition is not none ${value_amount} input number to visible input ${plan_budgetbreakdowns_value_amount_input_locator} ${value_amount} | ||
| 165 | +## input number to visible input ${plan_budgetbreakdowns_value_amount_input_locator} 56333.77 | ||
| 166 | + ${description} = get from dictionary by keys ${data} description | ||
| 167 | + run keyword if condition is not none ${description} input text to visible input ${plan_budgetbreakdowns_description_input_locator} ${description} | ||
| 168 | +## input text to visible input ${plan_budgetbreakdowns_description_input_locator} description | ||
| 169 | + | ||
| 170 | +save plan form and wait synchronization | ||
| 171 | + [Documentation] натискає кнопку "Зберегти" і чекає синхронізації плану | ||
| 172 | + | ||
| 173 | + submit form and check result ${plan_form_submit_btn_locator} ${plan_form_submit_success_msg} ${plan_created_checker_element_locator} | ||
| 174 | + wait until page does not contain element with reloading ${plan_sync_element_locator} | ||
| 175 | + | ||
| 176 | +delete plan | ||
| 177 | + [Arguments] ${data} | ||
| 178 | + [Documentation] натискає кнопку "Скасувати рядок плану" і видаляє план | ||
| 179 | + | ||
| 180 | + click visible element ${plan_delete_btn_locator} | ||
| 181 | + ${reason} = get from dictionary by keys ${data} reason | ||
| 182 | + run keyword if condition is not none ${reason} input text to visible input ${plan_form_delete_reason_value_locator} ${reason} | ||
| 183 | + submit form and check result ${plan_form_delete_sucess_btn_locator} ${plan_form_delete_submit_success_msg} |
Please
register
or
login
to post a comment