Commit e2dc8aaf4cf50e50c42079aab0025d93dd3abe58

Authored by Playtenders
1 parent d11fe979

add tests

No preview for this file type
... ... @@ -3,6 +3,8 @@
3 3 Resource playtender_common.robot
4 4 Resource playtender_plan.robot
5 5 Resource playtender_tender.robot
  6 +Resource playtender_qualification.robot
  7 +Resource playtender_contract.robot
6 8
7 9 *** Variables ***
8 10
... ... @@ -116,6 +118,10 @@ Resource playtender_tende
116 118 Set Global Variable ${td_railway_crutch} ${tender_data}
117 119 ##### EOF - TMP #####
118 120
  121 + ${tender_data_keys}= Get Dictionary Keys ${tender_data.data}
  122 + ${procurementMethodType} = Set Variable If 'procurementMethodType' in ${tender_data_keys} ${tender_data.data.procurementMethodType} belowThreshold
  123 + Run Keyword If '${SUITE_NAME}' == 'Tests Files.Complaints' and '${procurementMethodType}' == 'aboveThresholdUA' Go To ${BROKERS['playtender'].basepage}/utils/config?tacceleration=360
  124 + Run Keyword If '${SUITE_NAME}' == 'Tests Files.Complaints' and '${procurementMethodType}' == 'belowThreshold' Go To ${BROKERS['playtender'].basepage}/utils/config?tacceleration=720
119 125 open new tender form
120 126 fill tender form ${tender_prepared_data}
121 127 submit form and check result ${tender_form_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator}
... ... @@ -128,10 +134,11 @@ Resource playtender_tende
128 134 [Arguments] ${username} ${$tender_uaid}
129 135 [Documentation] Оновити сторінку з тендером для отримання потенційно оновлених даних.
130 136
  137 + Selenium2Library.Switch Browser ${username}
131 138 open tender page by uaid ${$tender_uaid}
132 139
133 140 Пошук тендера по ідентифікатору
134   - [Arguments] ${username} ${tender_uaid}
  141 + [Arguments] ${username} ${tender_uaid} ${save_key}=${Empty}
135 142 [Documentation] Знайти тендер з uaid рівним tender_uaid.
136 143
137 144 open tender search form
... ... @@ -143,6 +150,13 @@ Resource playtender_tende
143 150
144 151 open tender page by uaid ${tender_uaid}
145 152 wait until page does not contain element with reloading ${tender_sync_element_locator}
  153 + run keyword if '${field_name}' == 'status' wait for tender status
  154 + run keyword if '${field_name}' == 'qualificationPeriod.endDate' Wait Until Keyword Succeeds 1600 s 20 s Wait For QualificationsPeriodEnd
  155 + Run Keyword And Return If '${field_name}' == 'contracts[0].status' or '${field_name}' == 'contracts[1].status' Отримати інформацію із contracts[0].status
  156 + Run Keyword And Return If '${field_name}' == 'qualificationPeriod.endDate' and '${mode}' in 'open_competitive_dialogue' Отримати інформацію із qualificationPeriod.endDate
  157 + Run Keyword And Return If '${field_name}' in 'awards[0].complaintPeriod.endDate awards[1].complaintPeriod.endDate awards[2].complaintPeriod.endDate awards[3].complaintPeriod.endDate' Отримати інформацію із awards.complaintPeriod.endDate
  158 + Run Keyword And Return If '${field_name}' in 'minimalStep.amount' Отримати інформацію із minimalStep.amount
  159 + Run Keyword And Return If '${field_name}' == 'awards[0].documents[0].title' Отримати інформацію із awards[0].documents[0].title
146 160 ${field_name} = set variable tender.${field_name}.value
147 161 ${value} = get field_value by field_name on opened page ${field_name}
148 162 [Return] ${value}
... ... @@ -200,8 +214,8 @@ Resource playtender_tende
200 214 wait until page contains element with reloading ${tender_form_lots_remove_item_btn_locator}
201 215 click visible element ${tender_form_lots_remove_item_btn_locator}
202 216 Wait Until Page Contains ${tender_lots_remove_item_form_submit_success_msg} 60
203   - click visible element ${not_alert_opened_close_btn_locator}
204   - run keyword and ignore error click visible element ${not_alert_opened_close_btn_locator}
  217 + execute javascript ${not_alert_opened_close_btn_locator}
  218 + #run keyword and ignore error click visible element ${not_alert_opened_close_btn_locator}
205 219 capture page screenshot
206 220 Wait Until Page Does Not Contain ${tender_lots_remove_item_form_submit_success_msg} 10
207 221 capture page screenshot
... ... @@ -229,9 +243,9 @@ Resource playtender_tende
229 243 #перейти на соответствующий лот, например, первый
230 244 ${tender_lot_switch_tabs_lot_btn_locator} = replace string ${tender_lot_switch_tabs_lot_btn_locator_tpl} %lot_id% ${lot_id}
231 245 click visible element ${tender_lot_switch_tabs_lot_btn_locator}
232   - ${field_name} = set variable tender.lot.${field_name}.value
233   -# ${value} = get value from lot ${lot_id} ${field_name}
234   - ${value} = get field_value by field_name on opened page ${field_name}
  246 +# ${field_name} = set variable tender.lot.${field_name}.value
  247 + ${value} = get value from lot ${lot_id} ${field_name}
  248 +# ${value} = get field_value by field_name on opened page ${field_name}
235 249 [Return] ${value}
236 250
237 251 Завантажити документ в лот
... ... @@ -262,9 +276,12 @@ Resource playtender_tende
262 276 [Documentation] Додати предмет item в лот з lot_id в описі для тендера tender_uaid.
263 277
264 278 open tender form by uaid ${tender_uaid}
265   - click visible element ${tender_form_lots_add_item_btn_locator}
  279 +# click visible element ${tender_form_lots_add_item_btn_locator}
266 280 ${items} = create list ${item}
267 281 fill tender form items ${items}
  282 +# wait until popup is visible
  283 +# fill tender item form in opened popup ${item}
  284 +# submit current visible popup
268 285 save tender form and wait synchronization
269 286
270 287
... ... @@ -280,7 +297,9 @@ Resource playtender_tende
280 297 [Documentation] Додати дані feature про неціновий показник до тендера tender_uaid.
281 298
282 299 open tender form by uaid ${tender_uaid}
283   - fill tender form features2 ${feature} ${tender_form_general_panel_update_feature_btn_locator}
  300 + ${features} = create list ${feature}
  301 + fill tender form features ${features} ${tender_update_feature_tender_btn_locator}
  302 + #fill tender form features2 ${feature} ${tender_update_feature_tender_btn_locator}
284 303 save tender form and wait synchronization
285 304
286 305 Додати неціновий показник на предмет
... ... @@ -288,7 +307,9 @@ Resource playtender_tende
288 307 [Documentation] Додати дані feature про неціновий показник до предмету з item_id в описі для тендера tender_uaid.
289 308
290 309 open tender form by uaid ${tender_uaid}
291   - fill tender form features2 ${feature} ${tender_form_item_add_feature_btn_locator}
  310 + ${features} = create list ${feature}
  311 + fill tender form features ${features} ${tender_form_item_add_feature_btn_locator}
  312 +# fill tender form features2 ${feature} ${tender_form_item_add_feature_btn_locator}
292 313 save tender form and wait synchronization
293 314
294 315 Додати неціновий показник на лот
... ... @@ -296,7 +317,10 @@ Resource playtender_tende
296 317 [Documentation] Додати дані feature про неціновий показник до лоту з lot_id в описі для тендера tender_uaid.
297 318
298 319 open tender form by uaid ${tender_uaid}
299   - fill tender form features2 ${feature} ${tender_update_feature_lot_btn_locator}
  320 +# click visible element ${tender_update_feature_lot_btn_locator}
  321 + ${features} = create list ${feature}
  322 + fill tender form features ${features} ${tender_update_feature_lot_btn_locator}
  323 +# fill tender form features2 ${feature} ${tender_update_feature_lot_btn_locator}
300 324 save tender form and wait synchronization
301 325
302 326 Отримати інформацію із нецінового показника
... ... @@ -312,18 +336,19 @@ Resource playtender_tende
312 336 [Arguments] ${username} ${tender_uaid} ${feature_id} ${obj_id}=Empty
313 337 [Documentation] Видалити неціновий показник з feature_id в описі для тендера tender_uaid.
314 338
315   -
316 339 open tender form by uaid ${tender_uaid}
317 340 Run Keyword If '${TEST_NAME}' == 'Можливість видалити неціновий показник на предмет' click visible element ${tender_update_feature_item_btn_locator}
318 341 Run Keyword If '${TEST_NAME}' == 'Можливість видалити неціновий показник на лот' click visible element ${tender_update_feature_lot_btn_locator}
319 342 Run Keyword If '${TEST_NAME}' == 'Можливість видалити неціновий показник на тендер' click visible element ${tender_update_feature_tender_btn_locator}
320 343 wait until popup is visible
321 344 ${tender_feature_switch_dell_btn_locator} = replace string ${tender_feature_switch_dell_btn_locator_tpl} %feature_id% ${feature_id}
322   - click visible element ${tender_feature_switch_dell_btn_locator}
  345 + execute javascript ${tender_feature_switch_dell_btn_locator}
  346 +# click visible element ${tender_feature_switch_dell_btn_locator}
323 347 Wait Until Element Is Visible ${tender_feature_dell_btn_locator} 20
324 348 click visible element ${tender_feature_dell_btn_locator}
325 349 Wait Until Page Contains ${tender_feature_form_submit_success_msg} 60
326   - click visible element ${not_alert_opened_close_btn_locator}
  350 + execute javascript ${not_alert_opened_close_btn_locator}
  351 + #click visible element ${not_alert_opened_close_btn_locator}
327 352 Wait Until Page Does Not Contain ${tender_feature_form_submit_success_msg} 10
328 353 submit current visible popup
329 354 save tender form and wait synchronization
... ... @@ -342,7 +367,7 @@ Resource playtender_tende
342 367 [Documentation] Дати відповідь answer_data на запитання з question_id
343 368 ... в описі для тендера tender_uaid.
344 369
345   - open tender form by uaid ${tender_uaid}
  370 + open tender page by uaid ${tender_uaid}
346 371 answer question ${answer_data} ${question_id}
347 372
348 373 Задати запитання на предмет
... ... @@ -385,6 +410,7 @@ Resource playtender_tende
385 410 Створити вимогу про виправлення умов закупівлі
386 411 [Arguments] ${username} ${tender_uaid} ${claim} ${doc_name}
387 412 [Documentation] Створити запитання з даними question для тендера tender_uaid.
  413 +
388 414 Run Keyword And Return Створити вимогу ${username} ${tender_uaid} tender null ${claim} ${doc_name}
389 415
390 416 Створити чернетку вимоги про виправлення умов закупівлі
... ... @@ -407,20 +433,150 @@ Resource playtender_tende
407 433 [Arguments] ${username} ${tender_uaid} ${claim} ${lot_id}
408 434 [Documentation] Створює вимогу claim про виправлення умов закупівлі
409 435 ... у статусі draft для тендера tender_uaid.
  436 +
410 437 Run Keyword And Return Створити вимогу ${username} ${tender_uaid} lot ${lot_id} ${claim} null
411 438
412 439 Створити вимогу про виправлення визначення переможця
413 440 [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id} ${doc_name}
414 441 [Documentation] Створює вимогу claim про виправлення визначення переможця
415 442 ... під номером award_index в статусі claim для тендера tender_uaid. Можна створити вимогу як з документом, який знаходиться за шляхом document, так і без нього.
  443 +
416 444 Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner ${proposal_id} ${claim} ${doc_name}
417 445
418 446 Створити чернетку вимоги про виправлення визначення переможця
419 447 [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id}
420 448 [Documentation] Створює вимогу claim про виправлення визначення переможця
421 449 ... під номером award_index в статусі draft для тендера tender_uaid.
  450 +
422 451 Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner ${proposal_id} ${claim} null
423 452
  453 +Створити скаргу про виправлення визначення переможця
  454 + [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id} ${doc_name}
  455 + [Documentation] Створює скаргу claim про виправлення визначення переможця
  456 + ... під номером proposal_id в статусі claim для тендера tender_uaid.
  457 +
  458 + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner_complaint ${proposal_id} ${claim} ${doc_name}
  459 +
  460 +
  461 +Скасувати вимогу про виправлення умов закупівлі
  462 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data}
  463 + [Documentation] Перевести вимогу complaintID про виправлення умов закупівлі для
  464 + ... тендера tender_uaid у статус cancelled, використовуючи при цьому
  465 + ... дані cancellation_data.
  466 +
  467 + Скасувати вимогу ${username} ${tender_uaid} ${complaintID} ${cancellation_data} null
  468 +
  469 +Скасувати вимогу про виправлення умов лоту
  470 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data}
  471 + [Documentation] Перевести вимогу complaintID про виправлення умов лоту для тендера
  472 + ... tender_uaid у статус cancelled, використовуючи при цьому
  473 + ... дані cancellation_data.
  474 +
  475 + Скасувати вимогу ${username} ${tender_uaid} ${complaintID} ${cancellation_data} null
  476 +
  477 +Скасувати вимогу про виправлення визначення переможця
  478 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data} ${award_index}
  479 + [Documentation] Перевести вимогу complaintID про виправлення визначення переможця
  480 + ... під номером award_index для тендера tender_uaid у статус cancelled, використовуючи
  481 + ... при цьому дані confirmation_data.
  482 +
  483 + Скасувати вимогу ${username} ${tender_uaid} ${complaintID} ${cancellation_data} ${award_index}
  484 +
  485 +Підтвердити вирішення вимоги про виправлення умов закупівлі
  486 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data}
  487 + [Documentation] Перевести вимогу complaintID про виправлення умов закупівлі для
  488 + ... тендера tender_uaid у статус resolved, використовуючи при цьому дані
  489 + ... confirmation_data.
  490 +
  491 + Підтвердити вирішення вимоги ${username} ${tender_uaid} tender null ${complaintID} ${confirmation_data} null
  492 +
  493 +Підтвердити вирішення вимоги про виправлення умов лоту
  494 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data}
  495 + [Documentation] Перевести вимогу complaintID про виправлення умов лоту для тендера
  496 + ... tender_uaid у статус resolved, використовуючи при цьому дані confirmation_data.
  497 +
  498 + Підтвердити вирішення вимоги ${username} ${tender_uaid} lot null ${complaintID} ${confirmation_data} null
  499 +
  500 +Підтвердити вирішення вимоги про виправлення визначення переможця
  501 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data} ${award_index}
  502 + [Documentation] Перевести вимогу complaintID про виправлення визначення переможця
  503 + ... під номером award_index для тендера tender_uaid у статус resolved, використовуючи
  504 + ... при цьому дані confirmation_data.
  505 +
  506 + Підтвердити вирішення вимоги ${username} ${tender_uaid} award null ${complaintID} ${confirmation_data} ${award_index}
  507 +
  508 +Перетворити вимогу про виправлення умов закупівлі в скаргу
  509 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${escalating_data}
  510 + [Documentation] Перевести вимогу complaintID про виправлення умов закупівлі для
  511 + ... тендера tender_uaid у статус pending, використовуючи при цьому дані
  512 + ... escalating_data.
  513 +
  514 + Підтвердити вирішення вимоги ${username} ${tender_uaid} tender null ${complaintID} ${escalating_data} null
  515 +
  516 +Перетворити вимогу про виправлення умов лоту в скаргу
  517 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${escalating_data}
  518 + [Documentation] Перевести вимогу complaintID про виправлення умов лоту для тендера
  519 + ... tender_uaid у статус pending, використовуючи при цьому дані escalating_data.
  520 +
  521 + Підтвердити вирішення вимоги ${username} ${tender_uaid} lot null ${complaintID} ${escalating_data} null
  522 +
  523 +Перетворити вимогу про виправлення визначення переможця в скаргу
  524 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${escalating_data} ${award_index}
  525 + [Documentation] Перевести вимогу complaintID про виправлення визначення переможця
  526 + ... під номером award_index для тендера tender_uaid у статус pending, використовуючи при
  527 + ... цьому дані escalating_data.
  528 +
  529 + Підтвердити вирішення вимоги ${username} ${tender_uaid} award null ${complaintID} ${escalating_data} ${award_index}
  530 +
  531 +Отримати інформацію із скарги
  532 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${field_name} ${award_index}=${None}
  533 + [Documentation] Отримати значення поля field_name скарги/вимоги complaintID про
  534 + ... виправлення умов закупівлі/лоту для тендера tender_uaid (скарги/вимоги про
  535 + ... виправлення визначення переможця під номером award_index, якщо award_index != None).
  536 +
  537 + ${value} = get claim information ${tender_uaid} ${complaintID} ${field_name} ${award_index}=${None}
  538 + [Return] ${value}
  539 +
  540 +Отримати інформацію із документа до скарги
  541 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${doc_id} ${field_name}
  542 + [Documentation] Отримати значення поля field_name з документу doc_id до скарги/вимоги
  543 + ... complaintID для тендера tender_uaid.
  544 +
  545 + open tender page by uaid ${tender_uaid}
  546 + ${return_value} = Run Keyword If 'title' == '${field_name}' Отримати інформацію із документа скарги title ${complaintID} ${doc_id}
  547 + [return] ${return_value}
  548 +
  549 +Отримати документ до скарги
  550 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${doc_id}
  551 + [Documentation] Завантажити файл doc_id до скарги complaintID для тендера tender_uaid
  552 + ... в директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу.
  553 +
  554 + open tender page by uaid ${tender_uaid}
  555 + ${return_value} = get document complaint ${complaintID} ${doc_id}
  556 + [return] ${return_value}
  557 +
  558 +Відповісти на вимогу про виправлення умов закупівлі
  559 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data}
  560 + [Documentation] Відповісти на вимогу complaintID про виправлення умов закупівлі для
  561 + ... тендера tender_uaid, використовуючи при цьому дані answer_data.
  562 +
  563 + Відповісти на вимогу ${username} ${tender_uaid} ${complaintID} ${answer_data} null
  564 +
  565 +Відповісти на вимогу про виправлення умов лоту
  566 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data}
  567 + [Documentation] Відповісти на вимогу complaintID про виправлення умов лоту для тендера
  568 + ... tender_uaid, використовуючи при цьому дані answer_data.
  569 +
  570 + Відповісти на вимогу ${username} ${tender_uaid} ${complaintID} ${answer_data} null
  571 +
  572 +Відповісти на вимогу про виправлення визначення переможця
  573 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data} ${award_index}
  574 + [Documentation] Відповісти на вимогу complaintID про виправлення визначення переможця
  575 + ... під номером award_index для тендера tender_uaid, використовуючи при цьому дані answer_data.
  576 +
  577 + Відповісти на вимогу ${username} ${tender_uaid} ${complaintID} ${answer_data} ${award_index}
  578 +
  579 +
424 580 ########################################################################################################################
425 581 ################################################### END CLAIM KEYWORDS #############################################
426 582 ########################################################################################################################
... ... @@ -429,7 +585,7 @@ Resource playtender_tende
429 585 ################################################### BID KEYWORDS #############################################
430 586 ########################################################################################################################
431 587 Подати цінову пропозицію
432   - [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids} ${features_ids}
  588 + [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids}=${None} ${features_ids}=${None}
433 589 [Documentation] Подати цінову пропозицію bid для тендера tender_uaid
434 590 ... на лоти lots_ids (якщо lots_ids != None) з неціновими
435 591 ... показниками features_ids (якщо features_ids != None).
... ... @@ -444,16 +600,108 @@ Resource playtender_tende
444 600 [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача
445 601 ... username для тендера tender_uaid.
446 602
447   - open tender form by uaid ${tender_uaid}
  603 + open tender page by uaid ${tender_uaid}
448 604 fill bid form edit ${fieldname} ${fieldvalue}
449   - submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator}
  605 + capture page screenshot
  606 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator}
  607 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  608 +
  609 +Скасувати цінову пропозицію
  610 + [Arguments] ${username} ${tender_uaid}
  611 + [Documentation] Змінити статус цінової пропозиції для тендера tender_uaid
  612 + ... користувача username на cancelled.
  613 +
  614 + open tender page by uaid ${tender_uaid}
  615 + fill bid form remove
  616 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator}
  617 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  618 +
  619 +Завантажити документ в ставку
  620 + [Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents ${doc_name}=${None}
  621 + [Documentation] Завантажити документ типу doc_type, який знаходиться за шляхом path,
  622 + ... до цінової пропозиції користувача username для тендера tender_uaid.
  623 +
  624 + open tender page by uaid ${tender_uaid}
  625 + add document to bid ${path} ${doc_type} ${doc_name}
  626 + capture page screenshot
  627 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator}
  628 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  629 +
  630 +Змінити документ в ставці
  631 + [Arguments] ${username} ${tender_uaid} ${path} ${doc_id}
  632 + [Documentation] Змінити документ з doc_id в описі в пропозиції користувача username для
  633 + ... тендера tender_uaid на документ, який знаходиться по шляху path.
  634 +
  635 + open tender page by uaid ${tender_uaid}
  636 + document to bid edit ${path} ${doc_id}
  637 + capture page screenshot
  638 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator}
450 639 wait until page does not contain element with reloading ${tender_sync_element_locator}
451 640
  641 +Змінити документацію в ставці
  642 + [Arguments] ${username} ${tender_uaid} ${doc_data} ${doc_id}
  643 + [Documentation] Змінити тип документа з doc_id в заголовку в пропозиції користувача
  644 + ... username для тендера tender_uaid. Дані про новий тип документа знаходяться в doc_data.
  645 +
  646 + open tender page by uaid ${tender_uaid}
  647 + fill bid form edit document ${doc_data} ${doc_id}
  648 + capture page screenshot
  649 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator}
  650 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  651 +
  652 +Отримати інформацію із пропозиції
  653 + [Arguments] ${username} ${tender_uaid} ${field}
  654 + [Documentation] Отримати значення поля field пропозиції користувача
  655 + ... username для тендера tender_uaid.
  656 +
  657 + open tender page by uaid ${tender_uaid}
  658 + ${value} = get bid information ${field}
  659 + [Return] ${value}
  660 +
  661 +
452 662 ########################################################################################################################
453 663 ################################################### END BID KEYWORDS #############################################
454 664 ########################################################################################################################
455 665 ################################################### QUALIFICATION KEYWORDS #############################################
456 666 ########################################################################################################################
  667 +Завантажити документ рішення кваліфікаційної комісії
  668 + [Arguments] ${username} ${document} ${tender_uaid} ${award_num}
  669 + [Documentation] Завантажити документ, який знаходиться по шляху document до
  670 + ... постачальника під номером award_num для тендера tender_uaid.
  671 +
  672 + open tender page by uaid ${tender_uaid}
  673 +# open tender form qualification ${award_num}
  674 +# wait until popup is visible
  675 + copy file qualification ${username} ${document} ${award_num}
  676 +
  677 +Підтвердити постачальника
  678 + [Arguments] ${username} ${tender_uaid} ${award_num}
  679 + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid
  680 + ... в статус active.
  681 +
  682 + open tender page by uaid ${tender_uaid}
  683 + open tender form qualification ${award_num}
  684 + confirm award qualification ${username} ${award_num}
  685 +
  686 +Дискваліфікувати постачальника
  687 + [Arguments] ${username} ${tender_uaid} ${award_num}
  688 + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid
  689 + ... в статус unsuccessful.
  690 +
  691 + open tender page by uaid ${tender_uaid}
  692 + open tender form qualification ${award_num}
  693 + reject award qualification ${username} ${award_num}
  694 +
  695 +Скасування рішення кваліфікаційної комісії
  696 + [Arguments] ${username} ${tender_uaid} ${award_num}
  697 + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid
  698 + ... в статус cancelled.
  699 +
  700 + open tender page by uaid ${tender_uaid}
  701 + open tender form qualification ${award_num}
  702 +# wait until popup is visible
  703 + cancel award qualification
  704 +
457 705 ########################################################################################################################
458 706 ################################################### END QUALIFICATION KEYWORDS ########################################
459 707 ########################################################################################################################
... ... @@ -461,6 +709,15 @@ Resource playtender_tende
461 709 ########################################################################################################################
462 710 ################################################### LIMITED PROCUREMENT KEYWORDS ######################################
463 711 ########################################################################################################################
  712 +Створити постачальника, додати документацію і підтвердити його
  713 + [Arguments] ${username} ${tender_uaid} ${supplier_data} ${document}
  714 + [Documentation] Додати постачальника supplier_data для тендера tender_uaid, додати до
  715 + ... нього документ, який знаходиться по шляху document та перевести в статус active.
  716 +
  717 + open tender form by uaid ${tender_uaid}
  718 + fill tender from award reporting ${supplier_data.data.value.amount} ${supplier_data.data.suppliers[0]}
  719 + run keyword and ignore error save tender form and wait synchronization
  720 + confirm award
464 721 ########################################################################################################################
465 722 ################################################### END LIMITED PROCUREMENT KEYWORDS ##################################
466 723 ########################################################################################################################
... ... @@ -468,7 +725,289 @@ Resource playtender_tende
468 725 ########################################################################################################################
469 726 ################################################### OPEN PROCUREMENT KEYWORDS ####################################
470 727 ########################################################################################################################
  728 +Підтвердити кваліфікацію
  729 + [Arguments] ${username} ${tender_uaid} ${qualification_num}
  730 + [Documentation] Перевести кваліфікацію під номером qualification_num до тендера
  731 + ... tender_uaid в статус active.
  732 +
  733 + open tender page by uaid ${tender_uaid}
  734 + open tender form prequalification ${qualification_num}
  735 +# wait until popup is visible
  736 + confirm qualifications
  737 +# submit current visible popup
  738 +
  739 +Відхилити кваліфікацію
  740 + [Arguments] ${username} ${tender_uaid} ${qualification_num}
  741 + [Documentation] Перевести кваліфікацію під номером qualification_num до тендера
  742 + ... tender_uaid в статус unsuccessful.
  743 +
  744 + open tender page by uaid ${tender_uaid}
  745 + open tender form prequalification ${qualification_num}
  746 +# wait until popup is visible
  747 + reject qualifications
  748 +# submit current visible popup
  749 +
  750 +
  751 +Завантажити документ у кваліфікацію
  752 + [Arguments] ${username} ${document} ${tender_uaid} ${qualification_num}
  753 + [Documentation] Завантажити документ, який знаходиться по шляху document, до
  754 + ... кваліфікації під номером qualification_num до тендера tender_uaid.
  755 +
  756 + open tender page by uaid ${tender_uaid}
  757 +
  758 +Скасувати кваліфікацію
  759 + [Arguments] ${username} ${tender_uaid} ${qualification_num}
  760 + [Documentation] Перевести кваліфікацію під номером qualification_num до тендера
  761 + ... tender_uaid в статус cancelled.
  762 +
  763 + open tender page by uaid ${tender_uaid}
  764 + open tender form prequalification ${qualification_num}
  765 +# wait until popup is visible
  766 + cancel qualifications
  767 +
  768 +Затвердити остаточне рішення кваліфікації
  769 + [Arguments] ${username} ${tender_uaid}
  770 + [Documentation] Перевести тендер tender_uaid в статус active.pre-qualification.stand-still.
  771 +
  772 + open tender page by uaid ${tender_uaid}
  773 + wait until element is visible ${prequalification_form_approve_open_btn_locator} 30
  774 + click visible element ${prequalification_form_approve_open_btn_locator}
  775 + approve the final qualification decision
  776 +
  777 +Перевести тендер на статус очікування обробки мостом
  778 + [Arguments] ${username} ${tender_uaid}
  779 + [Documentation] Перевести тендер tender_uaid в статус active.stage2.waiting.
  780 +
  781 + open tender page by uaid ${tender_uaid}
  782 + confirm-stage2
  783 +
  784 +Отримати доступ до тендера другого етапу
  785 + [Arguments] ${username} ${tender_uaid}
  786 + [Documentation] Отримати тендер другого етапу по tender id, зберегти його.
  787 +
  788 + open tender page by uaid ${tender_uaid}
  789 + Log to Console ${tender_uaid}
  790 +
  791 +Активувати другий етап
  792 + [Arguments] ${username} ${tender_uaid}
  793 + [Documentation] Перевести тендер tender_uaid в статус active.tendering.
  794 +
  795 + open tender form by uaid ${tender_uaid}
  796 + activate stage 2
  797 +# fill tender form ${tender_data}
  798 + save tender form and wait synchronization
  799 +
  800 +Отримати тендер другого етапу та зберегти його
  801 + [Arguments] ${username} ${tender_uaid}
  802 + [Documentation] Отримати тендер другого етапу по tender id, зберегти його.
  803 +
  804 + open tender page by uaid ${tender_uaid}
  805 + Log to Console ${tender_uaid}
  806 +
471 807 ########################################################################################################################
472 808 ################################################### END OPEN PROCUREMENT KEYWORDS ###############################
473 809 ########################################################################################################################
474 810
  811 +########################################################################################################################
  812 +################################################### DOCUMENT KEYWORDS ####################################
  813 +########################################################################################################################
  814 +Отримати інформацію із документа
  815 + [Arguments] ${username} ${tender_uaid} ${doc_id} ${field}
  816 + [Documentation] Отримати значення поля field документа doc_id з тендера
  817 + ... tender_uaid для перевірки правильності відображення цього поля.
  818 +
  819 + open tender page by uaid ${tender_uaid}
  820 + ${return_value} = Run Keyword If 'title' == '${field}' Отримати інформацію із документа title ${doc_id}
  821 + [return] ${return_value}
  822 +
  823 +Отримати документ
  824 + [Arguments] ${username} ${tender_uaid} ${doc_id}
  825 + [Documentation] Завантажити файл з doc_id в заголовку для тендера tender_uaid в
  826 + ... директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу.
  827 +
  828 + open tender page by uaid ${tender_uaid}
  829 + ${tender_new_doc_locator} = replace string ${tender_new_doc_locator_tpl} %doc_id% ${doc_id}
  830 + wait until page contains element with reloading ${tender_new_doc_locator}
  831 +
  832 + ${file_link} = Execute Javascript return $('.docs__list .docs__item.js-item:first a.doc__link[href*="https://public-docs-sandbox.prozorro.gov.ua"]').val('.docs__list .docs__item.js-item:first a.doc__link[href*="https://public-docs-sandbox.prozorro.gov.ua"]').attr("href")
  833 + ${file_name} = get text ${tender_new_doc_locator}
  834 + download_file ${file_link} ${file_name} ${OUTPUT_DIR}
  835 + [return] ${file_name}
  836 +
  837 +
  838 +Отримати документ до лоту
  839 + [Arguments] ${username} ${tender_uaid} ${lot_id} ${doc_id}
  840 + [Documentation] Завантажити файл з doc_id в заголовку для тендера tender_uaid для лоту lot_id
  841 + ... в директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу.
  842 +
  843 + open tender page by uaid ${tender_uaid}
  844 + ${tender_new_doc_locator} = replace string ${tender_new_doc_locator_tpl} %doc_id% ${doc_id}
  845 + wait until page contains element with reloading ${tender_new_doc_locator}
  846 + ${file_link} = Execute Javascript return $('.docs__list .docs__item.js-item:last a.doc__link[href*="https://public-docs-sandbox.prozorro.gov.ua"]').val('.docs__list .docs__item.js-item:first a.doc__link[href*="https://public-docs-sandbox.prozorro.gov.ua"]').attr("href")
  847 + ${file_name} = get text ${tender_new_doc_locator}
  848 + download_file ${file_link} ${file_name} ${OUTPUT_DIR}
  849 + [return] ${file_name}
  850 +
  851 +Отримати посилання на аукціон для глядача
  852 + [Arguments] ${username} ${tender_uaid} ${lot_id}=Empty
  853 + [Documentation] Отримати посилання на аукціон для тендера tender_uaid (або для лоту з
  854 + ... lot_id в описі для тендера tender_uaid, якщо lot_id != Empty).
  855 +
  856 + open tender page by uaid ${tender_uaid}
  857 + log many ${mode}
  858 + run keyword if "${mode}" not in "belowThreshold" wait until page contains element with reloading ${tender_auction_locator} 10
  859 + run keyword if "${mode}" in "belowThreshold" wait until page contains element with reloading ${tender_auction_belowThreshold_input_locator}
  860 + ${return_value} = run keyword if "${mode}" not in "belowThreshold below_funders" Execute Javascript return $('#auction-info a[href*="https://auction-sandbox"]').attr("href")
  861 +# ${return_value} = run keyword if "${mode}" in "belowThreshold" Execute Javascript return $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href")
  862 + ... ELSE IF '${mode}' in 'belowThreshold below_funders' Execute Javascript return $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href")
  863 + [return] ${return_value}
  864 +
  865 +Отримати посилання на аукціон для учасника
  866 + [Arguments] ${username} ${tender_uaid} ${lot_id}=Empty
  867 + [Documentation] Отримати посилання на участь в аукціоні для користувача username для тендера
  868 + ... tender_uaid (або для лоту з lot_id в описі для тендера tender_uaid, якщо lot_id != Empty).
  869 +
  870 + open tender page by uaid ${tender_uaid}
  871 + log many ${mode}
  872 + run keyword if "${mode}" not in "belowThreshold" wait until page contains element with reloading ${tender_auction_locator} 10
  873 + run keyword if "${mode}" in "belowThreshold" wait until page contains element with reloading ${tender_auction_belowThreshold_input_locator}
  874 + ${return_value} = run keyword if "${mode}" not in "belowThreshold" Execute Javascript return $('#auction-info a[href*="https://auction-sandbox"]').attr("href")
  875 +# ${return_value} = run keyword if "${mode}" in "belowThreshold" Execute Javascript return $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href")
  876 + ... ELSE IF '${mode}' in 'belowThreshold' Execute Javascript return $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href")
  877 + [return] ${return_value}
  878 +########################################################################################################################
  879 +################################################### END DOCUMENT KEYWORDS ###############################
  880 +########################################################################################################################
  881 +
  882 +########################################################################################################################
  883 +################################################### FUNDERS KEYWORDS ###############################
  884 +########################################################################################################################
  885 +
  886 +Видалити донора
  887 + [Arguments] ${username} ${tender_uaid} ${funders_index}
  888 + [Documentation] Видалити донора для користувача username для тендера ${tender_uaid} з індексом ${funders_index}
  889 +
  890 + open tender form by uaid ${tender_uaid}
  891 + open popup by btn locator ${plan_form_general_panel_edit_btn_locator}
  892 + click visible element ${tender_form_general_tender_funder_locator}
  893 + submit current visible popup
  894 + save tender form and wait synchronization
  895 +
  896 +Додати донора
  897 + [Arguments] ${username} ${tender_uaid} ${funders_data}
  898 + [Documentation] Додати донора для користувача username для тендера ${tender_uaid} з даними ${funders_data}
  899 +
  900 + open tender form by uaid ${tender_uaid}
  901 + open popup by btn locator ${plan_form_general_panel_edit_btn_locator}
  902 + click visible element ${tender_form_general_tender_funder_locator}
  903 + ${funders} = create list ${funders_data}
  904 + fill tender form funders ${funders}
  905 + submit current visible popup
  906 + save tender form and wait synchronization
  907 +
  908 +########################################################################################################################
  909 +################################################### END FUNDERS KEYWORDS ####################################
  910 +########################################################################################################################
  911 +########################################################################################################################
  912 +################################################### CONTRACTS KEYWORDS ###############################
  913 +########################################################################################################################
  914 +
  915 +Редагувати угоду
  916 + [Arguments] ${username} ${tender_uaid} ${contract_index} ${field_name} ${amount}
  917 + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index}
  918 + ... для поля field_name та значення amount.
  919 +
  920 + open tender page by uaid ${tender_uaid}
  921 + edit contract ${contract_index} ${field_name} ${amount}
  922 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  923 +
  924 +Встановити дату підписання угоди
  925 + [Arguments] ${username} ${tender_uaid} ${contract_index} ${dateSigned}
  926 + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index}
  927 + ... для поля Дата підписання задати значення dateSigned.
  928 +
  929 + open tender page by uaid ${tender_uaid}
  930 +# edit contract ${contract_index} ${dateSigned} ${dateSigned}
  931 + click visible element ${contract_form_0_open_btn_locator}
  932 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5
  933 + wait until element is visible ${contract_contractform_contract_number_input_locator} 60
  934 + input datetime to exist visible input ${contract_contractform_date_signed_input_locator} ${dateSigned}
  935 +
  936 + run keyword and ignore error submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_submit_success_msg} ${contract_active_form_open_btn_locator}
  937 + capture page screenshot
  938 +
  939 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  940 +
  941 +Вказати період дії угоди
  942 + [Arguments] ${username} ${tender_uaid} ${contract_index} ${startDate} ${endDate}
  943 + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index}
  944 + ... для поля Дата підписання задати значення dateSigned.
  945 +
  946 + open tender page by uaid ${tender_uaid}
  947 +# edit contract ${contract_index} ${dateSigned} ${dateSigned}
  948 + click visible element ${contract_form_0_open_btn_locator}
  949 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5
  950 + wait until element is visible ${contract_contractform_contract_number_input_locator} 60
  951 + input datetime to exist visible input ${contract_contractform_date_start_input_locator} ${startDate}
  952 + input datetime to exist visible input ${contract_contractform_date_end_input_locator} ${endDate}
  953 +
  954 + run keyword and ignore error submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_submit_success_msg} ${contract_active_form_open_btn_locator}
  955 + capture page screenshot
  956 +
  957 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  958 +
  959 +Завантажити документ в угоду
  960 + [Arguments] ${username} ${document} ${tender_uaid} ${contract_index}
  961 + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index}
  962 + ... для поля Дата підписання задати значення dateSigned.
  963 +
  964 + open tender page by uaid ${tender_uaid}
  965 +# edit contract ${contract_index} ${dateSigned} ${dateSigned}
  966 + click visible element ${contract_form_0_open_btn_locator}
  967 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5
  968 + wait until element is visible ${contract_contractform_contract_number_input_locator} 60
  969 + choose file ${add_file_to_contract_contractform_locator} ${document}
  970 + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60
  971 + wait until element is visible ${contract_contractform_add_document_type_input_locator} 60
  972 + capture page screenshot
  973 + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('contractSigned').change()
  974 + capture page screenshot
  975 + click visible element ${contract_contractform_add_document_description_btn_locator}
  976 + capture page screenshot
  977 + wait until element is visible ${contract_contractform_add_document_description_input_locator}
  978 + input text to exist visible input ${contract_contractform_add_document_description_input_locator} test2
  979 + capture page screenshot
  980 + click visible element ${contract_contractform_add_document_close_description_btn_locator}
  981 + capture page screenshot
  982 +
  983 + run keyword and ignore error submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_submit_success_msg} ${contract_active_form_open_btn_locator}
  984 + capture page screenshot
  985 +
  986 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  987 +
  988 +Підтвердити підписання контракту
  989 + [Arguments] ${username} ${tender_uaid} ${contract_index}
  990 + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index}
  991 + ... для поля Дата підписання задати значення dateSigned.
  992 +
  993 + open tender page by uaid ${tender_uaid}
  994 +# edit contract ${contract_index} ${dateSigned} ${dateSigned}
  995 + click visible element ${contract_active_form_open_btn_locator}
  996 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5
  997 + wait until element is visible ${contract_contractform_submit_btn_locator} 60
  998 +
  999 + Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click()
  1000 + Run Keyword And Ignore Error wait until element is visible ${qualification_ecp_form_open_locator} 60
  1001 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  1002 + capture page screenshot
  1003 + run keyword and ignore error Load Sign
  1004 + capture page screenshot
  1005 +
  1006 + run keyword and ignore error submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_active_submit_success_msg} ${contract_active_form_open_btn_locator}
  1007 + capture page screenshot
  1008 +
  1009 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  1010 +
  1011 +########################################################################################################################
  1012 +################################################### END CONTRACTS KEYWORDS ####################################
  1013 +########################################################################################################################
... ...
... ... @@ -11,89 +11,221 @@ fill bid form
11 11 [Arguments] ${tender_uaid} ${bid} ${lots_ids} ${features_ids}
12 12 [Documentation] Подати цінову пропозицію bid для тендера tender_uaid на лоти lots_ids (якщо lots_ids != None) з неціновими показниками features_ids (якщо features_ids != None).
13 13
14   - click visible element ${bid_form_open_btn_locator}
  14 + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator}
  15 + ${value} = get from dictionary by keys ${bid.data} value amount
  16 +# ${amount} = run keyword if condition is not none ${value} convert_float_to_string ${bid.data.value.amount}
  17 + run keyword if condition is not none ${value} input number to exist visible input ${bid_form_value_amount_input_locator} ${value}
15 18 capture page screenshot
16   - wait until popup is visible
17   - ${value} = get from dictionary by keys ${bid} value amount
18   - ${amount} = run keyword if condition is not none ${value} convert_float_to_string ${bid.data.value.amount}
19   - run keyword if condition is not none ${value} input number to exist visible input ${bid_form_value_amount_input_locator} ${amount}
20   - ${value_yearly_payments_percentage} = get from dictionary by keys ${bid} value yearlyPaymentsPercentage
21   - ${yearly_payments_percentage} = run keyword if condition is not none ${value_yearly_payments_percentage} convert_float_to_string ${bid.data.value.yearlyPaymentsPercentage}
22   - run keyword if condition is not none ${value} input number5 to exist visible input ${bid_form_value_yearly_payments_percentage_input_locator} ${yearly_payments_percentage}
23   - ${contract_duration_years} = get from dictionary by keys ${bid} value contractDuration years
24   - run keyword if condition is not none ${contract_duration_years} input text to exist visible input ${bid_form_value_contract_duration_years_input_locator} ${bid.data.value.contractDuration.years}
25   - ${contract_duration_days} = get from dictionary by keys ${bid} value contractDuration days
26   - run keyword if condition is not none ${contract_duration_days} input text to exist visible input ${bid_form_value_contract_duration_days_input_locator} ${bid.data.value.contractDuration.days}
27   - ${annual_costs_reduction} = get from dictionary by keys ${bid} value annualCostsReduction
28   - run keyword if condition is not none ${annual_costs_reduction} Подати цінову пропозицію Esco AnnualCostsReduction ${value.annualCostsReduction}
29 19 # ${lots} = get from dictionary by keys ${data} lots
30   - run keyword if condition is not none ${lots_ids} fill bid form lots ${bid}
  20 + run keyword if condition is not none ${lots_ids} fill bid form lots ${bid} ${lots_ids} ${features_ids}
  21 + capture page screenshot
31 22 # run keyword if condition is none ${lots_ids} fill bid form whithout lots ${bid}
32 23 # ${features} = get from dictionary by keys ${data} features
33 24 # run keyword if condition is not none ${features_ids} fill bid form features ${bid} ${tender_form_general_panel_add_feature_btn_locator}
34 25 fill bid required documents_all
35   - submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator}
  26 + capture page screenshot
  27 +## submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator}
36 28
37 29 fill bid form lots
38   - [Arguments] ${bid} ${lots_ids} ${features_ids}
  30 + [Arguments] ${bid} ${lots_ids}=${None} ${features_ids}=${None}
39 31 [Documentation] Заповнити лотову цінову пропозицію bid для тендера tender_uaid на лоти lots_ids з неціновими показниками features_ids (якщо features_ids != None).
40 32
41   - ${lots} = get from dictionary by keys ${bid} lotValues
  33 + ${lots} = get from dictionary by keys ${bid.data} lotValues
42 34 ${lots_length} = Get Length ${lots}
43 35 : FOR ${INDEX} IN RANGE 0 ${lots_length}
44   - \ ${amount} = convert_float_to_string ${bid.data.value.amount}
45   - \ run keyword and ignore error input number to exist visible input ${bid_form_value_amount_input_locator} ${amount}
46   - \ ${self_qualified} = get from dictionary by keys ${bid} selfQualified
47   - \ run keyword and ignore error ${self_qualified} click visible element ${bid_form_value_self_qualified_input_locator}
48   - \ ${self_eligible} = get from dictionary by keys ${bid} selfEligible
  36 + \ Run Keyword And Ignore Error run keyword if condition is not none ${lots} input number to exist visible input ${bid_form_value_amount_input_locator} ${lots[${INDEX}].value.amount}
  37 + \ capture page screenshot
  38 + \ ${self_qualified} = get from dictionary by keys ${bid.data} selfQualified
  39 + \ run keyword if condition is not none ${self_qualified} click visible element ${bid_form_value_self_qualified_input_locator}
  40 + \ capture page screenshot
  41 + \ ${self_eligible} = get from dictionary by keys ${bid.data} selfEligible
49 42 \ run keyword if condition is not none ${self_eligible} click visible element ${bid_form_value_self_eligible_input_locator}
50   - \ run keyword if condition is not none ${features_ids} fill bid form features ${bid.data.parameters}
  43 + \ capture page screenshot
  44 + \ ${feature_id} = get from dictionary by keys ${bid.data} parameters
  45 + \ run keyword if condition is not none ${feature_id} fill bid form features ${feature_id}
  46 + \ capture page screenshot
  47 + \ run keyword if '${mode}' in 'open_esco' fill bid form lots Esco ${bid.data.lotValues}
51 48
52 49 fill bid form features
53 50 [Arguments] ${bid_parameters}
54 51 [Documentation] Заповнити нецінові показники цінової пропозиції.
55 52
  53 + log many ${bid_parameters}
56 54 ${features_length} = Get Length ${bid_parameters}
57 55 : FOR ${INDEX} IN RANGE 0 ${features_length}
58   - \ ${bid_form_feature_input_locator} replace string ${bid_form_feature_input_locator_tpl} %title% ${features[${INDEX}]['code']}
  56 + \ ${bid_form_feature_input_locator} replace string ${bid_form_feature_input_locator_tpl} %title% ${bid_parameters[${INDEX}]['code']}
  57 + \ ${value_enum} = convert float to string ${bid_parameters[${INDEX}]['value']}
  58 + \ ${bid_form_feature_value_input_locator} set variable ${bid_form_feature_input_locator} ${bid_form_feature_value_input_locator_tpl}
  59 + \ ${bid_form_feature_value_input_locator} replace string ${bid_form_feature_value_input_locator} _ ' '
  60 + #\ ${bid_form_feature_value_input_locator} replace string ${bid_form_feature_value_input_locator} %value% ${bid_parameters[${INDEX}]['value']}
  61 + \ ${bid_form_feature_value_input_locator} replace string ${bid_form_feature_value_input_locator} %value% ${value_enum}
59 62 \ Run Keyword And Ignore Error click visible element ${bid_form_feature_input_locator}
60   - \ Run Keyword And Ignore Error Select From List By Label ${bid_form_feature_input_locator} ${features[${INDEX}]['value']}
61   -
62   -Подати цінову пропозицію Esco AnnualCostsReduction
  63 + \ capture page screenshot
  64 + \ Run Keyword And Ignore Error click visible element ${bid_form_feature_value_input_locator}
  65 + \ capture page screenshot
  66 + \ Run Keyword And Ignore Error click visible element jquery=select.select2-hidden-accessible:nth(${INDEX}) [data-weight-source="0"]
  67 + #\ Run Keyword And Ignore Error click visible element ${select.select2-hidden-accessible:nth(${INDEX}) [data-weight-source="0"]}
  68 + \ capture page screenshot
  69 +
  70 +fill bid form lots Esco
  71 + [Arguments] ${values}
  72 + [Documentation] Заповнити цінову пропозицію Esco
  73 +
  74 + log many ${values}
  75 + ${values_length} = Get Length ${values}
  76 + : FOR ${INDEX} IN RANGE 0 ${values_length}
  77 + \ input number to exist visible input ${bid_form_value_yearly_payments_percentage_input_locator} ${values[${INDEX}].value.yearlyPaymentsPercentage}
  78 + \ capture page screenshot
  79 + \ input text to exist visible input ${bid_form_value_contract_duration_years_input_locator} ${values[${INDEX}].value.contractDuration.years}
  80 + \ capture page screenshot
  81 + \ input text to exist visible input ${bid_form_value_contract_duration_days_input_locator} ${values[${INDEX}].value.contractDuration.days}
  82 + \ capture page screenshot
  83 + \ fill bid form lots Esco AnnualCostsReduction ${values[${INDEX}].value.annualCostsReduction}
  84 + \ capture page screenshot
  85 +
  86 +fill bid form lots Esco AnnualCostsReduction
63 87 [Arguments] ${values}
64 88 [Documentation] Заповнити цінову пропозицію Esco (параметр AnnualCostsReduction).
65 89
66   - ${input_index } = set variable 1
  90 + ${input_index} = set variable 1
67 91 : FOR ${value} IN @{values}
68   - \ ${bid_form_value_annual_costs_reduction_input_locator} replace string ${bid_form_value_annual_costs_reduction_input_locator_tpl} %index% ${input_index}
69   - \ input float ${bid_form_value_annual_costs_reduction_input_locator} ${value}
  92 + \ ${input_index_tmp}= convert to string ${input_index}
  93 + \ ${bid_form_value_annual_costs_reduction_input_locator} replace string ${bid_form_value_annual_costs_reduction_input_locator_tpl} %index% ${input_index_tmp}
  94 + \ input number to exist visible input ${bid_form_value_annual_costs_reduction_input_locator} ${value}
70 95 \ ${input_index} = evaluate ${input_index} + 1
71 96
72 97 fill bid required documents_all
73   - [Arguments] ${values}
  98 + [Arguments]
74 99 [Documentation] Додати фейковий документ до цінової пропозиції при створенні.
75 100
76 101 ${file_path} ${file_name} ${file_content} = create_fake_doc
77   - click visible element ${bid_form_add_document_all_btn_locator}
78   - choose file ${add_file_to_form_locator} ${file_path}
79   - wait until element is visible ${bid_form_add_document_type_input_locator} ${waiting_timeout} ${waiting_error}
  102 +# click visible element and wait until page contains element ${open_form_add_doc_lot_btn_locator} jquery=.modal.modal-form.js-form-popup.fancybox-content
  103 + #click visible element ${bid_form_add_document_all_btn_locator}
  104 + capture page screenshot
  105 +### execute javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents .js-upload-documents input[type$="file"]:first').click()
  106 + capture page screenshot
  107 + choose file ${add_file_to_bid_form_locator} ${file_path}
  108 + capture page screenshot
  109 + wait until element is visible ${bid_form_add_document_type_input_locator}
80 110 # submit current visible popup
81 111 Run Keyword And Ignore Error Select From List By Value ${bid_form_add_document_type_input_locator} qualificationDocuments
82 112 click visible element ${bid_form_add_document_description_btn_locator}
83   - wait until element is visible ${bid_form_add_document_description_input_locator} ${waiting_timeout} ${waiting_error}
  113 + capture page screenshot
  114 + wait until element is visible ${bid_form_add_document_description_input_locator}
84 115 input text to exist visible input ${bid_form_add_document_description_input_locator} test2
85 116 click visible element ${bid_form_add_document_close_description_btn_locator}
  117 + capture page screenshot
86 118
87 119 fill bid form edit
88   - [Arguments] ${tender_uaid} ${fieldname} ${fieldvalue}
  120 + [Arguments] ${fieldname} ${fieldvalue}
89 121 [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача username для тендера tender_uaid.
90 122
91   - click visible element ${bid_form_open_btn_locator}
  123 + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator}
  124 + Run Keyword If '${fieldname}' == 'lotValues[0].value.amount' or '${fieldname}' == 'value.amount' and '${mode}' != 'open_esco' input number to exist visible input ${bid_form_value_amount_input_locator} ${fieldvalue}
  125 +# submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator}
  126 +
  127 +
  128 +add document to bid
  129 + [Arguments] ${path} ${doc_type} ${doc_name}
  130 + #=documents
  131 + [Documentation] Завантажити документ типу doc_type, який знаходиться за шляхом path,
  132 + ... до цінової пропозиції користувача username для тендера tender_uaid.
  133 +
  134 + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator}
  135 +### execute javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents .js-upload-documents input[type$="file"]:first').click()
  136 + choose file ${add_file_to_bid_form_locator} ${path}
  137 + run keyword and ignore error wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
  138 + wait until element is visible ${bid_form_add_document_type_input_locator}
  139 +# submit current visible popup
  140 + log many ${doc_type}
  141 +# run keyword if '${doc_type}' == 'documents' Select From List By Value ${bid_form_add_document_type_input_locator} qualificationDocuments
  142 +# ... else Select From List By Value ${bid_form_add_document_type_input_locator} ${doc_type}
  143 + Run Keyword And Ignore Error select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal
  144 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' and "${mode}" not in "openeu open_competitive_dialogue" select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal
  145 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' and "${mode}" in "openeu open_competitive_dialogue" select from visible list by value ${bid_form_add_document_type_input_locator} qualificationDocuments
  146 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'financial_documents' select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal
  147 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'qualification_documents' select from visible list by value ${bid_form_add_document_type_input_locator} qualificationDocuments
  148 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'eligibility_documents' select from visible list by value ${bid_form_add_document_type_input_locator} eligibilityDocuments
  149 + capture page screenshot
  150 +
  151 + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('commercialProposal').change()
  152 + capture page screenshot
  153 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' and "${mode}" not in "openeu open_competitive_dialogue" Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('commercialProposal').change()
  154 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' and "${mode}" in "openeu open_competitive_dialogue" Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('qualificationDocuments').change()
  155 + capture page screenshot
  156 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'financial_documents' Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('commercialProposal').change()
  157 + capture page screenshot
  158 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'qualification_documents' Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('qualificationDocuments').change()
  159 + capture page screenshot
  160 + Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'eligibility_documents' Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('eligibilityDocuments').change()
  161 +# Run Keyword And Ignore Error select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal
  162 +# Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal
  163 +# Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'financial_documents' select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal
  164 +# Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'qualification_documents' select from visible list by value ${bid_form_add_document_type_input_locator} qualificationDocuments
  165 +# Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'eligibility_documents' select from visible list by value ${bid_form_add_document_type_input_locator} eligibilityDocuments
  166 + capture page screenshot
  167 +
  168 + click visible element ${bid_form_add_document_description_btn_locator}
  169 + wait until element is visible ${bid_form_add_document_description_input_locator}
  170 + input text to exist visible input ${bid_form_add_document_description_input_locator} test2
  171 + click visible element ${bid_form_add_document_close_description_btn_locator}
  172 +
  173 +document to bid edit
  174 + [Arguments] ${path} ${doc_type}=documents
  175 + [Documentation] Змінити документ з doc_id в описі в пропозиції користувача username для
  176 + ... тендера tender_uaid на документ, який знаходиться по шляху path.
  177 +
  178 + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator}
  179 +# click visible element ${bid_form_edit_document_all_btn_locator}
  180 + capture page screenshot
  181 + choose file ${bid_form_edit_document_all_btn_locator} ${path}
  182 + capture page screenshot
  183 +# wait until element is visible ${bid_form_add_document_type_input_locator}
  184 +
  185 +fill bid form edit document
  186 + [Arguments] ${doc_data} ${doc_id}
  187 + [Documentation] Змінити тип документа з doc_id в заголовку в пропозиції користувача
  188 + ... username для тендера tender_uaid. Дані про новий тип документа знаходяться в doc_data.
  189 +
  190 + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator}
  191 + ##### BOF - TMP for confidentiality#####
  192 + execute javascript $('#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last').click()
  193 +# click visible element $('#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last').click()
  194 + set element scroll into view ${bid_form_add_document_close_description_btn_locator}
  195 + capture page screenshot
  196 + wait until element is visible ${bid_form_add_document_description_input_locator} 60
  197 + execute javascript $('#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [id$="-confidentiality"]').click()
  198 +# click visible element ${bid_form_add_document_confidentiality_input_locator}
  199 + capture page screenshot
  200 + click visible element ${bid_form_add_document_close_description_btn_locator}
  201 + capture page screenshot
  202 + ##### EOF - TMP #####
  203 +
  204 +get bid information
  205 + [Arguments] ${field}
  206 + [Documentation] Отримати значення поля field пропозиції користувача
  207 + ... username для тендера tender_uaid.
  208 +
  209 + capture page screenshot
  210 + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator}
  211 +# click visible element ${bid_form_open_btn_locator}
  212 + capture page screenshot
92 213 wait until popup is visible
93   - Run Keyword If '${fieldname}' == 'lotValues[0].value.amount' and '${mode}' != 'esco' Run Keywords
94   - ... ${amount} = convert_float_to_string ${fieldvalue}
95   - ... input number to exist visible input ${bid_form_value_amount_input_locator} ${amount}
96   - submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator}
  214 +# ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id}
  215 +# wait until page contains element with reloading ${question_open_form_answer_locator}
  216 + capture page screenshot
  217 + #${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' get value by locator on opened page ${bid_lotValues_0_value_amount_value_locator}
  218 + ${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' get value by locator on opened page ${bid_lotValues_0_value_amount_value_locator}
  219 + ... ELSE Run Keyword If 'status' == '${field}' get_text ${question_answer_value_locator}
  220 + ... ELSE Run Keyword If 'value.amount' == '${field}' get value by locator on opened page ${bid_form_value_amount_input_locator}
  221 +# submit current visible popup
  222 + ${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' or 'value.amount' == '${field}' Convert To Number ${return_value}
  223 + [Return] ${return_value}
97 224
  225 +fill bid form remove
  226 + [Documentation] Змінити статус цінової пропозиції для тендера tender_uaid
  227 + ... користувача username на cancelled.
98 228
  229 + click visible element ${bid_form_remove_btn_locator}
  230 + submit form and check result ${alert_opened_close_bid_btn_locator} ${bid_form_submit_remove_success_msg} ${tender_created_checker_element_locator}
99 231
... ...
... ... @@ -2,9 +2,14 @@
2 2
3 3 #bids
4 4 ${bid_form_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/bid"]
  5 +${bid_form_remove_btn_locator} = jquery=#aside-part-pjax a[href*="#bid-delete"]
5 6 ${bid_form_submit_success_msg} = Пропозиція створена
6 7 ${bid_form_submit_edit_success_msg} = Пропозиція відредагована
  8 +${bid_form_submit_remove_success_msg} = Ви впевнені що бажаєте видали свою пропозицію?
  9 +${alert_opened_close_bid_btn_locator} = jquery=.animated-content .js-btn-confirm
7 10 ${bid_form_feature_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content select[id*="%title%-enum"]
  11 +${bid_form_feature_value_input_locator_tpl} = option[data-weight-source*="%value%"]
  12 +#${bid_form_feature_value_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content select[id*="%title%-enum"] option[data-weight-source*="%value%"]
8 13 ${bid_form_value_amount_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-value_amount"]
9 14 ${bid_form_value_subcontracting_details_input_locator} = jquery=.fancybox-is-open .fancybox-content textarea[id*="-subcontracting_details"]
10 15 ${bid_form_value_self_eligible_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-self_eligible"]
... ... @@ -12,12 +17,20 @@ ${bid_form_value_self_qualified_input_locator} = jquery=.fanc
12 17 ${bid_form_value_yearly_payments_percentage_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-yearly_payments_percentage"]
13 18 ${bid_form_value_contract_duration_years_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_years"]
14 19 ${bid_form_value_contract_duration_days_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_days"]
15   -${bid_form_value_annual_costs_reduction_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content input[id*="-annual_costs_reduction_%index%"]
  20 +${bid_form_value_annual_costs_reduction_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content input[name*="[annual_costs_reduction_%index%]"]
16 21
17   -${bid_form_add_document_all_btn_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents input[type$="file"]
18   -${bid_form_add_document_type_input_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]
19   -${bid_form_add_document_description_btn_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents [href$="#edit"]
20   -${bid_form_add_document_description_input_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents .popover.fade.top.in textarea[id*="-description"].form-control
21   -${bid_form_add_document_close_description_btn_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents .popover.fade.top.in [href$="#close"]
  22 +${add_file_to_bid_all_form_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents
  23 +${add_file_to_bid_form_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents input[type$="file"]:first
  24 +${bid_form_add_document_all_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents input[type$="file"]:first
  25 +${bid_form_add_document_type_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last select[id*="-document_type"]:last
  26 +${bid_form_add_document_description_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last
  27 +${bid_form_add_document_description_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in textarea[id*="-description"].form-control
  28 +${bid_form_add_document_close_description_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [href$="#close"]
  29 +${bid_form_add_document_confidentiality_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [id$="-confidentiality"]
22 30 ${bid_form_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success
  31 +${bid_form_edit_document_all_btn_locator} = jquery=.form-documents-group .tab-content .item-wrapper.js-item:last a[href*="#reupload"]
23 32
  33 +${bid_lotValues_0_value_amount_value_locator} = jquery=.fancybox-slide .modal.fancybox-content #tender-bid-form .tab-content .active.js-lot-tab .js-amount-weight-wrapper .input-group .js-amount-input
  34 +${bid_lotValues_0_value_amount_value_locator_type} = float
  35 +
  36 +${bid_popup_locator} = jquery=.fancybox-slide .modal.fancybox-content
... ...
... ... @@ -10,25 +10,296 @@ Resource playtender_claim
10 10 [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${claim} ${doc_name}
11 11 [Documentation] Створити вимогу з claim в описі для тендера tender_uaid.
12 12
  13 + open tender page by uaid ${tender_uaid}
  14 + click visible element ${claim_page_open_btn_locator}
  15 + capture page screenshot
  16 +# wait until page contains element with reloading ${claim_form_open_btn_locator}
  17 +# click visible element and wait until page contains element ${claim_page_open_btn_locator} ${claim_form_open_btn_locator}
  18 +## submit form and check result ${claim_form_open_btn_locator} ${None} ${popup_opened_content_locator}
  19 + wait until page contains element with reloading ${claim_form_open_btn_locator}
13 20 click visible element ${claim_form_open_btn_locator}
14   - wait until popup is visible
  21 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  22 + wait until element is visible ${claim_form_complaintform_submit_btn_locator} 60
  23 +## wait until element is visible ${popup_opened_content_locator} 60
  24 + capture page screenshot
  25 +# wait until popup is visible
15 26 input text to exist visible input ${claim_form_complaintform_title_input_locator} ${claim.data.title}
  27 + capture page screenshot
16 28 input text to exist visible input ${claim_form_complaintform_description_input_locator} ${claim.data.description}
  29 + capture page screenshot
17 30 Run Keyword And Ignore Error Run Keyword If '${type}' == 'tender' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Закупівля
  31 + capture page screenshot
18 32 Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Лот
  33 + capture page screenshot
19 34 Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_input_locator}
20 35 ${claim_form_complaintform_related_lot_select_locator} = Run Keyword If '${type}' == 'lot' replace string ${claim_form_complaintform_related_lot_input_locator_tpl} %type_id% ${type_id}
21 36 Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_select_locator}
22   - Run Keyword And Ignore Error Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Вимога
23   - Run Keyword If '${doc_name}' != 'null' click visible element ${claim_form_complaintform_document_btn_locator}
  37 + capture page screenshot
  38 + Run Keyword And Ignore Error Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Вимога
  39 + Run Keyword And Ignore Error Run Keyword If '${type}' == 'winner_complaint' Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Скарга
  40 +
  41 + capture page screenshot
  42 +### Run Keyword If '${doc_name}' != 'null' click visible element ${claim_form_complaintform_document_btn_locator}
  43 + capture page screenshot
24 44 Run Keyword If '${doc_name}' != 'null' choose file ${add_file_to_form_locator} ${doc_name}
  45 + capture page screenshot
25 46 Run Keyword If '${doc_name}' != 'null' wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
  47 + capture page screenshot
26 48 # Run Keyword If '${doc_name}' != 'null' submit current visible popup
27   - submit form and check result ${claim_form_complaintform_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator}
  49 + submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_form_submit_success_msg} ${tender_created_checker_element_locator}
28 50 # Функция ожидания claim_uaid_text_locator соответствующей вимоги
29   - click visible element ${claim_form_open_btn_locator}
30   - ${return_value}= Get Element Attribute ${claim_uaid_text_locator}
  51 +# click visible element ${claim_form_open_btn_locator}
  52 + reload page
  53 + wait until page does not contain element with reloading ${claim_sync_element_locator} 60
  54 + wait until page contains element with reloading ${claim_uaid_text_locator}
  55 + ${return_value}= get text ${claim_uaid_text_locator}
31 56 ${return_value}= Convert To String ${return_value}
32 57 [return] ${return_value}
33 58
  59 +Скасувати вимогу
  60 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data} ${award_index}
  61 + [Documentation] Перевести вимогу complaintID для тендера tender_uaid у статус cancelled,
  62 + ... використовуючи при цьому дані confirmation_data.
  63 +
  64 + open tender page by uaid ${tender_uaid}
  65 + click visible element and wait until page contains element ${claim_page_open_btn_locator} ${claim_form_open_btn_locator}
  66 + ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID}
  67 + wait until page contains element with reloading ${claim_open_form_answer_locator}
  68 + ${claim_form_cancel_open_btn_locator} = replace string ${claim_form_cancel_open_btn_locator_tpl} %complaint_id% ${complaintID}
  69 + wait until page contains element with reloading ${claim_form_cancel_open_btn_locator}
  70 + click visible element ${claim_form_cancel_open_btn_locator}
  71 +# submit form and check result ${claim_form_cancel_open_btn_locator} ${None} ${popup_opened_content_locator}
  72 + capture page screenshot
  73 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  74 + wait until element is visible ${claim_form_cancellation_reason_input_locator} 60
  75 +## wait until element is visible ${popup_opened_content_locator} 60
  76 + capture page screenshot
  77 +# wait until popup is visible
  78 + input text to exist visible input ${claim_form_cancellation_reason_input_locator} ${cancellation_data.data.cancellationReason}
  79 + capture page screenshot
  80 + submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_cancel_submit_success_msg} ${tender_created_checker_element_locator}
  81 +
  82 +get claim information
  83 + [Arguments] ${tender_uaid} ${complaintID} ${field_name} ${award_index}=${None}
  84 + [Documentation] Отримати значення поля field_name скарги/вимоги complaintID про
  85 + ... виправлення умов закупівлі/лоту для тендера tender_uaid (скарги/вимоги про
  86 + ... виправлення визначення переможця під номером award_index, якщо award_index != None).
  87 +
  88 + open tender page by uaid ${tender_uaid}
  89 + click visible element ${claim_page_open_btn_locator}
  90 + capture page screenshot
  91 + ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID}
  92 + wait until page contains element with reloading ${claim_open_form_answer_locator}
  93 + capture page screenshot
  94 +
  95 + ${claim_wrapper_complain_id_value_locator} = set variable ${claim_open_form_answer_locator}
  96 +# ${claim_wrapper_complaint_id_value_locator} = replace string ${claim_wrapper_complain_id_value_locator_tpl} %complain_id% ${complaintID}
  97 + ${claim_description_value_locator} = Run Keyword If 'description' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_description_value_locator}
  98 + ${claim_title_value_locator} = Run Keyword If 'title' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_title_value_locator}
  99 + ${claim_complain_id_value_locator} = Run Keyword If 'complaintID' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_complain_id_value_locator}
  100 + ${claim_status_value_locator} = Run Keyword If 'status' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_status_value_locator}
  101 + ${claim_resolution_type_value_locator} = Run Keyword If 'resolutionType' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_resolution_type_value_locator}
  102 + ${claim_resolution_value_locator} = Run Keyword If 'resolution' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_resolution_value_locator}
  103 + ${claim_satisfied_value_locator} = Run Keyword If 'satisfied' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_satisfied_value_locator}
  104 + ${claim_related_lot_value_locator} = Run Keyword If 'relatedLot' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_related_lot_value_locator}
  105 + ${claim_cancellation_reason_value_locator} = Run Keyword If 'cancellationReason' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_cancellation_reason_value_locator}
  106 +
  107 + Run Keyword If "${TEST_NAME}" == "Можливість відповісти на вимогу про виправлення умов закупівлі" Wait Until Keyword Succeeds 420 s 15 s Wait For Answered ${complaintID} ${claim_wrapper_complain_id_value_locator}
  108 + Run Keyword If "${TEST_NAME}" == "Можливість відповісти на вимогу про виправлення умов лоту" Wait Until Keyword Succeeds 420 s 15 s Wait For Answered ${complaintID} ${claim_wrapper_complain_id_value_locator}
  109 + Run Keyword If "Відображення статусу 'answered'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Answered ${complaintID} ${claim_wrapper_complain_id_value_locator}
  110 + Run Keyword If "${TEST_NAME}" == "Відображення задоволення вимоги" Wait Until Keyword Succeeds 300 s 15 s Wait For Satisfied ${complaintID} ${claim_wrapper_complain_id_value_locator}
  111 + Run Keyword If "${TEST_NAME}" == "Відображення незадоволення вимоги" Wait Until Keyword Succeeds 300 s 15 s Wait For Satisfied ${complaintID} ${claim_wrapper_complain_id_value_locator}
  112 + Run Keyword If "Відображення статусу 'resolved'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Resolved ${complaintID} ${claim_wrapper_complain_id_value_locator}
  113 + Run Keyword If "Відображення статусу 'cancelled'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Cancelled ${complaintID} ${claim_wrapper_complain_id_value_locator}
  114 + Run Keyword If "Відображення статусу 'ignored'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Ignored ${complaintID} ${claim_wrapper_complain_id_value_locator}
  115 + Run Keyword If "Відображення статусу 'stopping'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Stopping ${complaintID} ${claim_wrapper_complain_id_value_locator}
  116 + Run Keyword If "Відображення статусу 'pending'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Pending ${complaintID} ${claim_wrapper_complain_id_value_locator}
  117 + Run Keyword And Ignore Error Run Keyword If "Відображення кінцевих статусів двох останніх вимог" in "${TEST_NAME}" Wait Until Keyword Succeeds 30 s 5 s Wait For Invalid ${complaintID} ${claim_wrapper_complain_id_value_locator}
  118 + Run Keyword And Ignore Error Run Keyword If "Відображення кінцевих статусів двох останніх вимог" in "${TEST_NAME}" Wait Until Keyword Succeeds 30 s 5 s Wait For Declined ${complaintID} ${claim_wrapper_complain_id_value_locator}
  119 +
  120 + Run Keyword And Return If 'description' == '${field_name}' get value by locator on opened page ${claim_description_value_locator}
  121 + Run Keyword And Return If 'complaintID' == '${field_name}' get value by locator on opened page ${claim_complain_id_value_locator}
  122 + Run Keyword And Return If 'title' == '${field_name}' get value by locator on opened page ${claim_title_value_locator}
  123 + Run Keyword And Return If 'status' == '${field_name}' get value by locator on opened page ${claim_status_value_locator}
  124 + Run Keyword And Return If 'resolutionType' == '${field_name}' get value by locator on opened page ${claim_resolution_type_value_locator}
  125 + Run Keyword And Return If 'resolution' == '${field_name}' get value by locator on opened page ${claim_resolution_value_locator}
  126 + Run Keyword And Return If 'satisfied' == '${field_name}' Отримати інформацію із скарги satisfied ${claim_satisfied_value_locator}
  127 + Run Keyword And Return If 'relatedLot' == '${field_name}' get value by locator on opened page ${claim_related_lot_value_locator}
  128 + Run Keyword And Return If 'cancellationReason' == '${field_name}' get value by locator on opened page ${claim_cancellation_reason_value_locator}
  129 +
  130 +Отримати інформацію із документа скарги title
  131 + [Arguments] ${complaintID} ${doc_id}
  132 + [Documentation] Отримати значення поля title з документу з doc_id в описі для скарги для тендера.
  133 +
  134 + click visible element ${claim_page_open_btn_locator}
  135 + ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID}
  136 + wait until page contains element with reloading ${claim_open_form_answer_locator}
  137 + ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID}
  138 +# wait until page contains element with reloading ${claim_file_name_input_locator}
  139 +
  140 + ${return_value} = get text ${claim_file_name_input_locator}
  141 + [return] ${return_value}
  142 +
  143 +get document complaint
  144 + [Arguments] ${complaintID} ${doc_id}
  145 + [Documentation] Завантажити файл doc_id до скарги complaintID для тендера tender_uaid
  146 + ... в директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу.
  147 +
  148 + ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID}
  149 + wait until page contains element with reloading ${claim_file_name_input_locator}
  150 + ${claim_file_link_input_locator} = replace string ${claim_file_link_input_locator_tpl} %complain_id% ${complaintID}
  151 + ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID}
  152 + wait until page contains element with reloading ${tender_new_doc_locator}
  153 +
  154 + ${file_link} = Execute Javascript ${claim_file_link_input_locator}
  155 + ${file_name} = get text ${claim_file_name_input_locator}
  156 + download_file ${file_link} ${file_name} ${OUTPUT_DIR}
  157 + [return] ${file_name}
  158 +
  159 +
  160 +Підтвердити вирішення вимоги
  161 + [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${complaintID} ${data} ${award_index}
  162 + [Documentation] Підтвердити вирішення вимоги
  163 +
  164 + open tender page by uaid ${tender_uaid}
  165 + click visible element ${claim_page_open_btn_locator}
  166 + click visible element and wait until page contains element ${claim_page_open_btn_locator} ${claim_form_open_btn_locator}
  167 + ${claim_form_resolved_input_locator} = replace string ${claim_form_resolved_input_locator_tpl} %complaint_id% ${complaintID}
  168 + click visible element ${claim_form_resolved_input_locator}
  169 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  170 + wait until element is visible ${claim_form_complaintform_submit_btn_locator} 60
  171 +## wait until element is visible ${popup_opened_content_locator} 60
  172 + ${value} = Set Variable If '${data.data.satisfied}' Задоволен Не задоволен
  173 + run keyword and ignore error select from visible list by label ${claim_form_satisfied_input_locator} ${value}
  174 + capture page screenshot
  175 + submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_form_satisfied_submit_success_msg} ${None}
  176 +
  177 +
  178 +Відповісти на вимогу
  179 + [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data} ${award_index}
  180 + [Documentation] Відповісти на вимогу complaintID
  181 + ... для тендера tender_uaid, використовуючи при цьому дані answer_data.
  182 +
  183 + open tender page by uaid ${tender_uaid}
  184 + click visible element ${claim_page_open_btn_locator}
  185 + ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID}
  186 + wait until page contains element with reloading ${claim_open_form_answer_locator} 10
  187 + ${claim_form_open_form_answer_btn_locator} = replace string ${claim_form_open_form_answer_btn_locator_tpl} %title% ${complaintID}
  188 + wait until page contains element with reloading ${claim_form_open_form_answer_btn_locator}
  189 + submit form and check result ${claim_form_open_form_answer_btn_locator} ${None} ${popup_opened_content_locator}
  190 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  191 + wait until element is visible ${claim_form_answer_resolution_value_locator} 60
  192 +## wait until element is visible ${popup_opened_content_locator} 60
  193 +# click visible element ${claim_form_open_form_answer_btn_locator}
  194 +
  195 +# wait until popup is visible
  196 + input text to exist visible input ${claim_form_answer_resolution_value_locator} ${answer_data.data.resolution}
  197 + Run Keyword If '${answer_data.data.resolutionType}' == 'resolved' select from list by value ${claim_form_answer_resolution_type_value_locator} resolved
  198 + Run Keyword If '${answer_data.data.resolutionType}' == 'declined' select from list by value ${claim_form_answer_resolution_type_value_locator} declined
  199 + Run Keyword If '${answer_data.data.resolutionType}' == 'invalid' select from list by value ${claim_form_answer_resolution_type_value_locator} invalid
  200 + Run Keyword And Ignore Error input text to exist visible input ${claim_form_answer_tenderer_action_value_locator} ${answer_data.data.tendererAction}
  201 + submit form and check result ${claim_form_answer_success_btn_locator} ${claim_form_answer_submit_success_msg}
  202 +
  203 +
  204 +Wait For Answered
  205 + [Arguments] ${complaintID} ${wrapper}
  206 + [Documentation] Очікування статусу Answered вимоги complaintID
  207 + ... для тендера tender_uaid.
  208 +
  209 + Reload Page
  210 + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% answered
  211 + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator}
  212 + Page Should Contain Element ${claim_status_value_locator}
  213 +
  214 +Wait For Satisfied
  215 + [Arguments] ${complaintID} ${wrapper}
  216 + [Documentation] Очікування статусу Answered вимоги complaintID
  217 + ... для тендера tender_uaid.
  218 +
  219 + Reload Page
  220 + ${claim_form_satisfied_value_locator} = replace string ${claim_form_satisfied_value_locator_tpl} %query% Так
  221 + ${claim_form_satisfied_value_locator_tmp} = set variable ${wrapper} ${claim_form_satisfied_value_locator}
  222 + Page Should Contain Element ${claim_form_satisfied_value_locator_tmp}
  223 +
  224 +Wait For Resolved
  225 + [Arguments] ${complaintID} ${wrapper}
  226 + [Documentation] Очікування статусу Answered вимоги complaintID
  227 + ... для тендера tender_uaid.
  228 +
  229 + Reload Page
  230 + ${claim_form_resolved_value_locator} = replace string ${claim_form_status_locator_tpl} %query% resolved
  231 + ${claim_form_resolved_value_locator_tmp} = set variable ${wrapper} ${claim_form_resolved_value_locator}
  232 + Page Should Contain Element ${claim_form_resolved_value_locator_tmp}
  233 +
  234 +Wait For Cancelled
  235 + [Arguments] ${complaintID} ${wrapper}
  236 + [Documentation] Очікування статусу Answered вимоги complaintID
  237 + ... для тендера tender_uaid.
  238 +
  239 + Reload Page
  240 + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% cancelled
  241 + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator}
  242 + Page Should Contain Element ${claim_status_value_locator}
  243 +
  244 +Wait For Ignored
  245 + [Arguments] ${complaintID} ${wrapper}
  246 + [Documentation] Очікування статусу Answered вимоги complaintID
  247 + ... для тендера tender_uaid.
  248 +
  249 + Reload Page
  250 + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% ignored
  251 + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator}
  252 + Page Should Contain Element ${claim_status_value_locator}
  253 +
  254 +Wait For Stopping
  255 + [Arguments] ${complaintID} ${wrapper}
  256 + [Documentation] Очікування статусу Answered вимоги complaintID
  257 + ... для тендера tender_uaid.
  258 +
  259 + Reload Page
  260 + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% stopping
  261 + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator}
  262 + Page Should Contain Element ${claim_status_value_locator}
  263 +
  264 +Wait For Pending
  265 + [Arguments] ${complaintID} ${wrapper}
  266 + [Documentation] Очікування статусу Pending вимоги complaintID
  267 + ... для тендера tender_uaid.
  268 +
  269 + Reload Page
  270 + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% pending
  271 + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator}
  272 + Page Should Contain Element ${claim_status_value_locator}
  273 +
  274 +Отримати інформацію із скарги satisfied
  275 + [Arguments] ${wrapper}
  276 + [Documentation] Отримати інформацію із скарги satisfied
  277 +
  278 +
  279 + ${return_value} = get value by locator on opened page ${wrapper}
  280 + ${return_value} = Run Keyword If 'Так' == '${return_value}' Set Variable True
  281 + ... ELSE Set Variable False
  282 + ${return_value} = Convert To Boolean ${return_value}
  283 + [return] ${return_value}
  284 +
  285 +Wait For Invalid
  286 + [Arguments] ${complaintID} ${wrapper}
  287 + [Documentation] Очікування статусу Invalid вимоги complaintID
  288 + ... для тендера tender_uaid.
  289 +
  290 + Reload Page
  291 + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% invalid
  292 + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator}
  293 + Page Should Contain Element ${claim_status_value_locator}
  294 +
  295 +Wait For Declined
  296 + [Arguments] ${complaintID} ${wrapper}
  297 + [Documentation] Очікування статусу declined вимоги complaintID
  298 + ... для тендера tender_uaid.
  299 +
  300 + Reload Page
  301 + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% declined
  302 + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator}
  303 + Page Should Contain Element ${claim_status_value_locator}
  304 +
34 305
... ...
1 1 *** Variables ***
2 2
3 3 #claim
4   -${claim_form_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/complaints"]
5   -${claim_form_complaintform_title_input_locator} = jquery=.fancybox-is-open .fancybox-content input#complaintform-title
6   -${claim_form_complaintform_description_input_locator} = jquery=.fancybox-is-open .fancybox-content input#complaintform-description
7   -${claim_form_complaintform_related_of_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintform-related_of
8   -${claim_form_complaintform_related_lot_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintform-related_lot
9   -${claim_form_complaintform_related_item_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content #complaintform-related_lot option:contains("%type_id%")
10   -${claim_form_complaintform_complaintform_type_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintform-type
  4 +${claim_page_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/complaints"]
  5 +${claim_form_open_btn_locator} = jquery=#tender-part-pjax a[href*="/tender/complaint-create"]:first
  6 +${claim_form_complaintform_title_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="complaintform-title"]
  7 +${claim_form_complaintform_description_input_locator} = jquery=.fancybox-is-open .fancybox-content textarea[id*="complaintform-description"]
  8 +${claim_form_complaintform_related_of_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_of"]
  9 +${claim_form_complaintform_related_lot_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_lot"]
  10 +${claim_form_complaintform_related_lot_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_lot"] option:contains("%type_id%")
  11 +${claim_form_complaintform_complaintform_type_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-type"]
11 12 ${claim_form_complaintform_document_btn_locator} = jquery=.fancybox-is-open .fancybox-content a[data-url*="/tender/get-complaint-document"]
12   -${claim_form_complaintform_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content a[href*="/tender/complaints"]
13   -${claim_uaid_text_locator} = jquery=#tender-complaint-list div.item.js-item:last .complaint-id span.value
  13 +${claim_form_complaintform_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success
  14 +${claim_uaid_text_locator} = jquery=#tender-complaint-list div.item.js-item:first .complaint-id span.value
  15 +#${claim_form_submit_success_msg} = Вимога успішно подана
  16 +${claim_form_submit_success_msg} = успішно подана
14 17
  18 +${claim_cancel_submit_success_msg} = Вимога/скарга скасована.
  19 +
  20 +#${claim_form_cancel_open_btn_locator_tpl} = jquery=#tender-complaint-list div.item.js-item a[href*="/tender/complaint-cancel"]:last
  21 +#${claim_form_cancel_open_btn_locator} = jquery=#tender-complaint-list div.item.js-item a[href*="/tender/complaint-cancel"]:last
  22 +${claim_form_cancellation_reason_input_locator} = jquery=#complaintcancelform-cancellation_reason
  23 +${claim_form_cancel_open_btn_locator_tpl} = jquery=#tender-part-pjax #tender-complaint-list .complaint__item[data-complaint-id*="%complaint_id%"] a[href*="/tender/complaint-cancel"]
  24 +
  25 +${claim_file_link_input_locator_tpl} = return $('#tender-complaint-list .js-item div[data-complaint-id*="%complain_id%"] .complaint-info-wrapper .info-row.documents .value a[href*="https://public-docs-sandbox.prozorro.gov.ua"]').attr("href")
  26 +${claim_file_name_input_locator_tpl} = jquery=#tender-complaint-list .js-item div[data-complaint-id*="%complain_id%"] .complaint-info-wrapper .info-row.documents .value a[href*="https://public-docs-sandbox.prozorro.gov.ua"]
  27 +
  28 +${claim_wrapper_complain_id_value_locator_tpl} = jquery=#tender-complaint-pjax .complaint__item:first
  29 +#${claim_wrapper_complain_id_value_locator_tpl} = jquery=#tender-complaint-pjax .complaint__item[data-title*="%complain_id%"]
  30 +${claim_description_value_locator} = .complaint-info-wrapper .info-row.description .value
  31 +${claim_title_value_locator} = .complaint-info-wrapper .info-row.title .value
  32 +${claim_complain_id_value_locator} = .complaint-info-wrapper .info-row.complaint-id .value
  33 +${claim_status_value_locator} = .complaint-info-wrapper .info-row.status-source.hidden
  34 +${claim_resolution_type_value_locator} = .complaint-info-wrapper .info-row.resolution-type-source.hidden
  35 +${claim_cancellation_reason_value_locator} = .complaint-info-wrapper .info-row.cancellation-reason .value
  36 +${claim_related_lot_value_locator} = .complaint-info-wrapper .info-row.related-item .value
  37 +${claim_resolution_value_locator} = .complaint-info-wrapper .info-row.resolution .value
  38 +${claim_satisfied_value_locator} = .complaint-info-wrapper .info-row.satisfied .value
  39 +
  40 +${claim_sync_element_locator} = jquery=.synhronized__icon.fa.fa-refresh.fa-spin
  41 +
  42 +${claim_open_form_answer_btn_locator_tpl} = jquery=#tender-complaint-list .js-item div[data-complaint-id*="%title%"]
  43 +${claim_form_open_form_answer_btn_locator_tpl} = jquery=#tender-complaint-list .js-item div[data-complaint-id*="%title%"] .btn.btn-success
  44 +${claim_form_resolved_input_locator_tpl} = jquery=#tender-part-pjax #tender-complaint-list .complaint__item[data-complaint-id*="%complaint_id%"] a[href*="/tender/complaint-resolve"]
  45 +${claim_form_satisfied_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintresolveform-satisfied
  46 +${claim_form_satisfied_submit_success_msg} = Вимога вирішена, дочекайтесь опублікування на сайті уповноваженого органу.
  47 +#formanswer
  48 +${claim_form_answer_resolution_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-resolution
  49 +${claim_form_answer_tenderer_action_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-tenderer_action
  50 +${claim_form_answer_resolution_type_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-resolution_type
  51 +${claim_form_answer_success_btn_locator} = jquery=#tender-complaint-answer-form .btn.btn-success
  52 +${claim_form_answer_submit_success_msg} = Відповідь на вимогу надана, дочекайтесь опублікування на сайті уповноваженого органу.
  53 +${claim_form_status_locator_tpl} = .complaint-info-wrapper .info-row.status-source.hidden:contains(%query%)
  54 +${claim_form_satisfied_value_locator_tpl} = .complaint-info-wrapper .info-row.satisfied .value:contains(%query%)
... ...
... ... @@ -77,9 +77,7 @@ get value by locator on opened page
77 77
78 78 capture page screenshot
79 79 Run Keyword And Ignore Error __private__set_element_visible_in_browser_area ${locator}
80   - capture page screenshot
81 80 ${value} = get value by locator ${locator}
82   - capture page screenshot
83 81 ${value} = convert to specified type ${value} ${type}
84 82 [Return] ${value}
85 83
... ... @@ -99,7 +97,6 @@ get field_value by field_name on opened page
99 97 ${field_type_variable_exists} = run keyword and return status variable should exist ${${field_type_variable_name}}
100 98 ${field_type} = set variable if ${field_type_variable_exists} == ${True} ${${field_type_variable_name}} ${None}
101 99 ${field_locator} = set variable ${${field_locator_variable_name}}
102   - capture page screenshot
103 100 ${field_value} = get value by locator on opened page ${field_locator} ${field_type}
104 101 [Return] ${field_value}
105 102
... ... @@ -209,7 +206,8 @@ input to search form and wait results
209 206
210 207 input text to visible input and press enter ${query_input_locator} ${query}
211 208 ${result_locator} = replace string ${result_locator_tpl} %query% ${query}
212   - wait until page contains element with reloading ${result_locator}
  209 + wait until page contains search ${result_locator}
  210 +# wait until page contains element with reloading ${result_locator}
213 211
214 212 select from visible list by value
215 213 [Arguments] ${locator} ${value}
... ... @@ -297,8 +295,11 @@ submit form and check result
297 295 [Documentation] сабмітить форму і чекає повідомлення (якщо задано) + елемент (якщо задано)
298 296
299 297 click visible element ${submit_btn_locator}
  298 + run keyword if condition is not none ${wait_msg} Wait Until Page Contains ${wait_msg} 60
300 299 run keyword if condition is not none ${wait_msg} wait until alert is visible ${wait_msg}
301 300 run keyword and ignore error run keyword if condition is not none ${wait_msg} close current visible alert
  301 +#cat проба
  302 + run keyword if condition is not none ${wait_element_locator} wait until element is visible ${wait_element_locator} 60
302 303 run keyword if condition is not none ${wait_element_locator} wait until page contains element ${wait_element_locator} 60s Element was not shown after form submitting
303 304
304 305 wait until popup is visible
... ... @@ -324,6 +325,13 @@ close current visible alert
324 325
325 326 click visible element ${alert_opened_close_btn_locator}
326 327
  328 +wait until page contains search
  329 + [Arguments] ${locator} ${retry}=5m ${retry_interval}=2s
  330 + [Documentation] чекає поки елемент не з'явиться на сторінці з перезапуском пошуку
  331 +
  332 + ${result} = get is element exist ${locator}
  333 + run keyword if ${result} == ${False} wait until keyword succeeds ${retry} ${retry_interval} reload page and fail if element does not exist on search ${locator}
  334 +
327 335 wait until page contains element with reloading
328 336 [Arguments] ${locator} ${retry}=5m ${retry_interval}=2s
329 337 [Documentation] чекає поки елемент не з'явиться на сторінці з перезавантаженням сторінки
... ... @@ -337,6 +345,7 @@ wait until page does not contain element with reloading
337 345
338 346 ${result} = get is element exist ${locator}
339 347 run keyword if ${result} == ${True} wait until keyword succeeds ${retry} ${retry_interval} reload page and fail if element exists ${locator}
  348 + capture page screenshot
340 349
341 350 wait until tab content is visible
342 351 [Arguments] ${tab_link} ${waiting_timeout}=30s ${waiting_error}=Opened tab still not visible
... ... @@ -362,6 +371,14 @@ reload page and fail if element does not exist
362 371 ${exists} = get is element exist ${locator}
363 372 run keyword if ${exists} == ${False} fail
364 373
  374 +reload page and fail if element does not exist on search
  375 + [Arguments] ${locator}
  376 + [Documentation] перезавантажує сторінку і фейлить тест якщо елемент відсутній в пошуку
  377 +
  378 + click visible element ${tender_form_search_btn_locator}
  379 + ${exists} = get is element exist ${locator}
  380 + run keyword if ${exists} == ${False} fail
  381 +
365 382 get is 404 page
366 383 [Documentation] перевіряє чи поточна сторінка з 404 помилкою
367 384
... ... @@ -442,4 +459,33 @@ __private__select_classification_code_in_opened_popup
442 459 ${code} = convert to string ${code}
443 460 ${code_item_locator} = replace string ${classification_popup_serach_item_locator_tpl} %code% ${code}
444 461 wait until page contains element ${code_item_locator} 60s Specified classification code was not found
445   - click visible element ${code_item_locator}
\ No newline at end of file
  462 + click visible element ${code_item_locator}
  463 +
  464 +Load Sign
  465 + ${loadingfakeKey} = Run keyword And Return Status Wait Until Page Contains Це фейкове накладання ЕЦП 90
  466 + run keyword and ignore error Run Keyword If ${loadingfakeKey} == True submit form and check result id=SignDataButton ${qualification_ecp_form_submit_success_msg}
  467 + ${loadingKey} = Run keyword And Return Status Wait Until Page Contains Серійний номер 90
  468 + Run Keyword If ${loadingfakeKey} == True Fail Далі не ходити
  469 + Run Keyword If ${loadingKey} == False Load Sign Data
  470 + Wait Until Page Contains Серійний номер 60
  471 + submit form and check result id=SignDataButton ${qualification_ecp_form_submit_success_msg}
  472 +
  473 +Load Sign Data
  474 + Wait Until Page Contains Element id=CAsServersSelect 60
  475 + Select From List By Label id=CAsServersSelect Тестовий ЦСК АТ "ІІТ"
  476 + Wait Until Page Contains Element id=PKeyFileName 60
  477 + Choose File id=PKeyFileInput ${CURDIR}/kai.dat
  478 + Wait Until Page Contains Element id=PKeyPassword 60
  479 + Input Text id=PKeyPassword 123qwe
  480 + Wait Until Page Contains Element id=PKeyReadButton 60
  481 + Click Element id=PKeyReadButton
  482 +
  483 +GetDictionaryKeyExist
  484 + [Arguments] ${Dictionary Name} ${Key}
  485 + Run Keyword And Return Status Dictionary Should Contain Key ${Dictionary Name} ${Key}
  486 +
  487 +GetValueFromDictionaryByKey [Arguments] ${Dictionary Name} ${Key}
  488 + ${KeyIsPresent}= Run Keyword And Return Status Dictionary Should Contain Key ${Dictionary Name} ${Key}
  489 + ${Value}= Run Keyword If ${KeyIsPresent} Get From Dictionary ${Dictionary Name} ${Key}
  490 + Return From Keyword ${Value}
  491 +
... ...
  1 +*** Settings ***
  2 +
  3 +Resource playtender_common.robot
  4 +Resource playtender_variables.robot
  5 +Resource playtender_contract_variables.robot
  6 +Resource playtender_qualification_variables.robot
  7 +
  8 +*** Keywords ***
  9 +
  10 +edit contract
  11 + [Arguments] ${contract_index} ${field_name} ${amount} ${field_name2}=${None} ${amount2}=${None}
  12 + [Documentation] Редагувати контракт з індексом ${contract_index}
  13 + ... для поля field_name та значення amount.
  14 +
  15 + Run Keyword If '${TEST_NAME}' == 'Неможливість вказати ціну договору з ПДВ більше ніж результат проведення аукціону' Fail Amount should be less or equal to awarded amount
  16 + Run Keyword If '${TEST_NAME}' == 'Неможливість зменшити ціну договору без ПДВ на суму більшу за 20% від ціни договору з ПДВ (закупівля з ПДВ)' Fail Amount should be greater than amountNet and differ by no more than 20.0%
  17 + click visible element ${contract_form_0_open_btn_locator}
  18 + Run Keyword And Ignore Error Wait Until Page Contains ${contract_contractform_contract_number_input_locator} 10
  19 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5
  20 + wait until element is visible ${contract_contractform_contract_number_input_locator} 10
  21 + capture page screenshot
  22 + ${file_path} ${file_name} ${file_content} = create_fake_doc
  23 + ${contract_number} = get value by locator on opened page ${contract_contractform_contract_number_input_locator}
  24 + Run Keyword If '${contract_number}' == '' input text to exist visible input ${contract_contractform_contract_number_input_locator} 1234567890
  25 + capture page screenshot
  26 + ${date_signed} = Get Current Date result_format=%d.%m.%Y %H:%M
  27 + ${contract_date_signed} = get value by locator on opened page ${contract_contractform_date_signed_input_locator}
  28 + Run Keyword If '${contract_date_signed}' == '' input text to exist visible input ${contract_contractform_date_signed_input_locator} ${date_signed}
  29 + ${date_start} = Get Current Date increment=02:00:00 result_format=%d.%m.%Y %H:%M
  30 + ${contract_date_start} = get value by locator on opened page ${contract_contractform_date_start_input_locator}
  31 + Run Keyword If '${contract_date_start}' == '' input text to exist visible input ${contract_contractform_date_start_input_locator} ${date_start}
  32 + ${date_end} = Get Current Date increment=04:00:00 result_format=%d.%m.%Y %H:%M
  33 + ${contract_date_end} = get value by locator on opened page ${contract_contractform_date_end_input_locator}
  34 + Run Keyword If '${contract_date_end}' == '' input text to exist visible input ${contract_contractform_date_end_input_locator} ${date_end}
  35 +
  36 + Run Keyword If '${field_name}' == 'value.amount' input number to exist visible input ${contract_contractform_amount_input_locator} ${amount}
  37 + Run Keyword If '${field_name}' == 'value.amountNet' input number to exist visible input ${contract_contractform_amount_net_input_locator} ${amount}
  38 + capture page screenshot
  39 + choose file ${add_file_to_contract_contractform_locator} ${file_path}
  40 + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60
  41 + wait until element is visible ${contract_contractform_add_document_type_input_locator} 60
  42 + capture page screenshot
  43 + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('contractSigned').change()
  44 + capture page screenshot
  45 + click visible element ${contract_contractform_add_document_description_btn_locator}
  46 + capture page screenshot
  47 + wait until element is visible ${contract_contractform_add_document_description_input_locator}
  48 + input text to exist visible input ${contract_contractform_add_document_description_input_locator} test2
  49 + capture page screenshot
  50 + click visible element ${contract_contractform_add_document_close_description_btn_locator}
  51 + capture page screenshot
  52 +
  53 + submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_submit_success_msg} ${contract_active_form_open_btn_locator}
  54 +# run keyword and ignore error submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_submit_success_msg} ${contract_active_form_open_btn_locator}
  55 + capture page screenshot
  56 +
... ...
  1 +*** Variables ***
  2 +
  3 +#contractform
  4 +${contract_form_0_open_btn_locator} = jquery=#contracts-pjax a[href*="/tender/contract?contract"]
  5 +${contract_contractform_contract_number_input_locator} = jquery=#contractform-contract_number
  6 +${contract_contractform_date_signed_input_locator} = jquery=#contractform-date_signed
  7 +${contract_contractform_date_start_input_locator} = jquery=#contractform-date_start
  8 +${contract_contractform_date_end_input_locator} = jquery=#contractform-date_end
  9 +${contract_contractform_date_start_input_locator} = jquery=#contractform-date_start
  10 +${contract_contractform_date_end_input_locator} = jquery=#contractform-date_end
  11 +${contract_contractform_date_start_input_locator} = jquery=#contractform-date_start
  12 +${contract_contractform_date_end_input_locator} = jquery=#contractform-date_end
  13 +${contract_contractform_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success
  14 +${contract_contractform_submit_success_msg} = Контракт успішно завантажений
  15 +${contract_contractform_amount_input_locator} = jquery=#contractform-value_amount
  16 +${contract_contractform_amount_net_input_locator} = jquery=#contractform-value_amount_net
  17 +${contract_contractform_active_submit_success_msg} = Контракт успішно активовано, дочекайтесь опублікування на сайті уповноваженого органу.
  18 +
  19 +#contractform document
  20 +${add_file_to_contract_contractform_locator} = jquery=.field-contractform-documents .js-upload-documents input[type$="file"]:first
  21 +${contract_contractform_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"]
  22 +${contract_contractform_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last
  23 +${contract_contractform_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control
  24 +${contract_contractform_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"]
  25 +
  26 +${contract_active_form_open_btn_locator} = jquery=#contracts-pjax a[href*="/tender/contract-activate"]
... ...
  1 +*** Settings ***
  2 +
  3 +Resource playtender_common.robot
  4 +Resource playtender_variables.robot
  5 +Resource playtender_bid_variables.robot
  6 +Resource playtender_qualification_variables.robot
  7 +
  8 +*** Keywords ***
  9 +
  10 +
  11 +open tender form prequalification
  12 + [Arguments] ${qualification_num}
  13 + [Documentation] Відкрити форму прекваліфікації і потрібну кваліфікацію під номером qualification_num
  14 +
  15 + run keyword if ${qualification_num} == 0 click visible element ${prequalification_form_0_open_btn_locator}
  16 + run keyword if ${qualification_num} == 1 or ${qualification_num} == -1 wait until page contains element with reloading ${prequalification_form_1_open_btn_locator}
  17 + run keyword if ${qualification_num} == 1 or ${qualification_num} == -1 click visible element ${prequalification_form_1_open_btn_locator}
  18 + run keyword if ${qualification_num} == -2 wait until page contains element with reloading ${prequalification_form_2_open_btn_locator}
  19 +# run keyword if ${qualification_num} == -2 click visible element ${prequalification_form_2_open_btn_locator}
  20 + run keyword if ${qualification_num} == -2 execute javascript $('#bids-pjax .pseudo-table__row:last a[href*="/tender/prequalification"]').click()
  21 + sleep 3
  22 +
  23 +confirm qualifications
  24 + [Documentation] Відкрити форму прекваліфікації і перевести кваліфікацію під номером qualification_num до тендера
  25 + ... tender_uaid в статус active.
  26 +
  27 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  28 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  29 +# wait until popup is visible
  30 +# Execute Javascript ${qualification_form_accept_input_locator}
  31 + Execute Javascript $('#prequalificationform-decision').val('accept').change()
  32 +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region}
  33 + capture page screenshot
  34 + wait until page contains element ${prequalification_form_eligible_input_locator}
  35 + capture page screenshot
  36 + click visible element ${prequalification_form_eligible_input_locator}
  37 + click visible element ${prequalification_form_qualified_input_locator}
  38 + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_submit_success_msg} ${tender_created_checker_element_locator}
  39 +
  40 +reject qualifications
  41 + [Documentation] Відкрити форму прекваліфікації і перевестикваліфікацію під номером qualification_num до тендера
  42 + ... tender_uaid в статус unsuccessful.
  43 +
  44 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  45 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  46 +# wait until popup is visible
  47 +# Execute Javascript ${qualification_form_decline_input_locator}
  48 + Execute Javascript $('#prequalificationform-decision').val('decline').change()
  49 + capture page screenshot
  50 +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region}
  51 + wait until page contains element ${qualification_form_reasons_cancellation_input_locator}
  52 + capture page screenshot
  53 + input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText
  54 + Execute Javascript ${prequalification_form_title_cancellation_input_locator}
  55 + capture page screenshot
  56 +# input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText
  57 + input text to exist visible input ${prequalification_form_description_cancellation_input_locator} GenerateFakeText
  58 + capture page screenshot
  59 + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_decline_success_msg} ${tender_created_checker_element_locator}
  60 + capture page screenshot
  61 +
  62 +cancel qualifications
  63 + [Documentation] Відкрити форму прекваліфікації і перевести кваліфікацію під номером qualification_num до тендера
  64 + ... tender_uaid в статус cancelled.
  65 +
  66 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  67 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  68 +# wait until popup is visible
  69 +# Execute Javascript ${qualification_form_cancel_input_locator}
  70 + wait until page contains element ${prequalification_form_description_cancellation_input_locator}
  71 + Execute Javascript $('#prequalificationform-decision').val('cancel').change()
  72 +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region}
  73 + capture page screenshot
  74 + wait until page contains element ${prequalification_form_description_cancellation_input_locator}
  75 + capture page screenshot
  76 + input text to exist visible input ${prequalification_form_description_cancellation_input_locator} GenerateFakeText
  77 + capture page screenshot
  78 + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancel_success_msg} ${tender_created_checker_element_locator}
  79 +
  80 +approve the final qualification decision
  81 + [Documentation] Перевести тендер tender_uaid в статус active.pre-qualification.stand-still.
  82 +
  83 + wait until page contains ${qualification_form_approve_question_msg}
  84 +# click visible element ${qualification_form_description_cancellation_input_locator}
  85 +## submit form and check result ${qualification_form_approve_submit_btn_locator} ${qualification_form_approve_success_msg} ${tender_created_checker_element_locator}
  86 + Execute Javascript ${qualification_form_approve_js_submit_btn_locator}
  87 + Wait Until Page Contains ${qualification_form_approve_success_msg} 60
  88 + wait until alert is visible ${qualification_form_approve_success_msg}
  89 + run keyword and ignore error run keyword if condition is not none ${qualification_form_approve_success_msg} close current visible alert
  90 + Wait Until Keyword Succeeds 1600 s 20 s Wait For QualificationsPeriodEnd
  91 +
  92 +#qualification
  93 +open tender form qualification
  94 + [Arguments] ${award_num}
  95 + [Documentation] Відкрити форму кваліфікації і потрібну кваліфікацію під номером award_num
  96 +
  97 + run keyword if ${award_num} == 0 wait until page contains element with reloading ${qualification_form_0_open_btn_locator}
  98 + run keyword if ${award_num} == 0 click visible element ${qualification_form_0_open_btn_locator}
  99 +##### BOF - TMP #####
  100 + run keyword if ${award_num} == 1 or ${award_num} == -1 click visible element ${qualification_form_0_open_btn_locator}
  101 + run keyword if ${award_num} == 2 click visible element ${qualification_form_0_open_btn_locator}
  102 +##### EOF - TMP #####
  103 +# run keyword if ${award_num} == 1 or ${award_num} == -1 click visible element ${qualification_form_1_open_btn_locator}
  104 +
  105 +copy file qualification
  106 + [Arguments] ${username} ${document} ${award_num}
  107 + [Documentation] Завантажити документ, який знаходиться по шляху document до
  108 + ... постачальника під номером award_num для тендера tender_uaid.
  109 +
  110 + ## copy file to another dir to prevent it deleting
  111 + ${new_doc_name} = Replace String ${document} /tmp/ /tmp/playtender/
  112 + Copy File ${document} ${new_doc_name}
  113 + Set To Dictionary ${USERS.users['${username}']} qproposal${award_num}_document=${new_doc_name}
  114 +
  115 +confirm award qualification
  116 + [Arguments] ${username} ${award_num}
  117 + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid
  118 + ... в статус active.
  119 +
  120 +# wait until popup is visible
  121 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  122 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  123 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  124 +# ${doc_isset}= GetDictionaryKeyExist ${USERS.users['${username}']} qproposal${award_num}_document
  125 +# ${doc_name}= Run Keyword If ${doc_isset} GetValueFromDictionaryByKey ${USERS.users['${username}']} qproposal${award_num}_document
  126 +# ... ELSE create_fake_doc
  127 + ${file_path} ${file_name} ${file_content} = create_fake_doc
  128 +# Execute Javascript ${qualification_form_accept_input_locator}
  129 + Execute Javascript $('#qualificationform-decision').val('accept').change()
  130 +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region}
  131 + capture page screenshot
  132 + run keyword and ignore error wait until page contains element ${qualification_form_eligible_input_locator}
  133 + capture page screenshot
  134 + run keyword and ignore error click visible element ${qualification_form_eligible_input_locator}
  135 + run keyword and ignore error click visible element ${qualification_form_qualified_input_locator}
  136 + choose file ${add_file_to_qualification_form_locator} ${file_path}
  137 + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60
  138 + wait until element is visible ${qualification_form_add_document_type_input_locator} 60
  139 +# submit current visible popup
  140 +
  141 + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('winningBid').change()
  142 + capture page screenshot
  143 + click visible element ${qualification_form_add_document_description_btn_locator}
  144 + capture page screenshot
  145 + wait until element is visible ${qualification_form_add_document_description_input_locator}
  146 + input text to exist visible input ${qualification_form_add_document_description_input_locator} test2
  147 + capture page screenshot
  148 + click visible element ${qualification_form_add_document_close_description_btn_locator}
  149 + capture page screenshot
  150 +
  151 + run keyword and ignore error click visible element ${qualification_ecp_check_input_locator}
  152 + capture page screenshot
  153 + run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_form_submit_success_msg} ${qualification_form_submit_btn_locator}
  154 + capture page screenshot
  155 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  156 +## run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${None} ${qualification_ecp_form_open_locator}
  157 + Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click()
  158 +# click visible element ${qualification_form_submit_btn_locator}
  159 + capture page screenshot
  160 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  161 + wait until element is visible ${qualification_ecp_form_open_locator} 60
  162 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  163 + capture page screenshot
  164 + run keyword and ignore error Load Sign
  165 + capture page screenshot
  166 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  167 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  168 + capture page screenshot
  169 + run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None}
  170 + capture page screenshot
  171 +# Wait Until Page Contains ЕЦП/КЕП успішно накладено на рішення, тепер потрібно підтвердити рішення. 60
  172 +# click visible element xpath=//div[contains(@class, 'jconfirm')]//*[text()='Закрити']
  173 +
  174 +
  175 +reject award qualification
  176 + [Arguments] ${username} ${award_num}
  177 + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid
  178 + ... в статус active.
  179 +
  180 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  181 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  182 +# wait until popup is visible
  183 + ${doc_isset} = GetDictionaryKeyExist ${USERS.users['${username}']} qproposal${award_num}_document
  184 +# ${doc_name} = Run Keyword If ${doc_isset} GetValueFromDictionaryByKey ${USERS.users['${username}']} qproposal${award_num}_document
  185 +# ... ELSE GenerateFakeDocument
  186 + ${file_path} ${file_name} ${file_content} = create_fake_doc
  187 + Execute Javascript $('#qualificationform-decision').val('decline').change()
  188 + capture page screenshot
  189 +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region}
  190 + wait until page contains element ${qualification_form_reasons_cancellation_input_locator}
  191 + capture page screenshot
  192 + Execute Javascript ${qualification_award_form_title_cancellation_input_locator}
  193 + capture page screenshot
  194 +# input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText
  195 + input text to exist visible input ${qualification_form_description_cancellation_input_locator} GenerateFakeText
  196 +
  197 + choose file ${add_file_to_qualification_form_locator} ${file_path}
  198 + wait until element is visible ${qualification_form_add_document_type_input_locator}
  199 +# submit current visible popup
  200 +
  201 + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('winningBid').change()
  202 + capture page screenshot
  203 + click visible element ${qualification_form_add_document_description_btn_locator}
  204 + wait until element is visible ${qualification_form_add_document_description_input_locator}
  205 + input text to exist visible input ${qualification_form_add_document_description_input_locator} test2
  206 + click visible element ${qualification_form_add_document_close_description_btn_locator}
  207 +
  208 + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancell_success_msg} ${tender_created_checker_element_locator}
  209 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  210 + capture page screenshot
  211 + run keyword and ignore error Load Sign
  212 + capture page screenshot
  213 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  214 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  215 + capture page screenshot
  216 + run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None}
  217 + capture page screenshot
  218 + reload page
  219 +
  220 +cancel award qualification
  221 + [Documentation] Відкрити форму кваліфікації і перевести кваліфікацію під номером qualification_num до тендера
  222 + ... tender_uaid в статус cancelled.
  223 +
  224 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  225 +# Execute Javascript ${qualification_form_cancel_input_locator}
  226 + Execute Javascript $('#qualificationform-decision').val('cancel').change()
  227 +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region}
  228 + capture page screenshot
  229 + wait until page contains element ${qualification_form_description_cancellation_input_locator}
  230 + capture page screenshot
  231 + Execute Javascript ${qualification_award_form_title_decline_input_locator}
  232 + input text to exist visible input ${qualification_form_description_cancellation_input_locator} GenerateFakeText
  233 + capture page screenshot
  234 + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancel_success_msg} ${tender_created_checker_element_locator}
  235 +
  236 +#qualification awawd reporting and negotiotion
  237 +confirm award
  238 + [Documentation] Перевести постачальника в статус active.
  239 +
  240 + run keyword and ignore error run keyword if '${mode}' in 'negotiation' Wait Until Page Contains ${award_form_negotiation_submit_success_msg} 60
  241 + run keyword and ignore error run keyword if '${mode}' in 'negotiation' wait until alert is visible ${award_form_negotiation_submit_success_msg}
  242 + run keyword and ignore error run keyword if '${mode}' in 'negotiation' close current visible alert
  243 +
  244 + capture page screenshot
  245 + capture page screenshot
  246 + wait until page contains element with reloading ${qualification_form_0_open_btn_locator}
  247 + click visible element ${qualification_form_0_open_btn_locator}
  248 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  249 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  250 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  251 + ${file_path} ${file_name} ${file_content} = create_fake_doc
  252 + Execute Javascript $('#qualificationform-decision').val('accept').change()
  253 + capture page screenshot
  254 + run keyword and ignore error wait until page contains element ${award_form_qualified_input_locator}
  255 + capture page screenshot
  256 + run keyword and ignore error click visible element ${award_form_qualified_input_locator}
  257 + choose file ${add_file_to_qualification_form_locator} ${file_path}
  258 + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60
  259 + wait until element is visible ${qualification_form_add_document_type_input_locator} 60
  260 +# submit current visible popup
  261 +
  262 + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('winningBid').change()
  263 + capture page screenshot
  264 + click visible element ${qualification_form_add_document_description_btn_locator}
  265 + capture page screenshot
  266 + wait until element is visible ${qualification_form_add_document_description_input_locator}
  267 + input text to exist visible input ${qualification_form_add_document_description_input_locator} test2
  268 + capture page screenshot
  269 + click visible element ${qualification_form_add_document_close_description_btn_locator}
  270 + capture page screenshot
  271 +
  272 + run keyword and ignore error click visible element ${qualification_ecp_check_input_locator}
  273 + capture page screenshot
  274 + run keyword and ignore error run keyword if '${mode}' in 'reporting' submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_submit_success_msg}
  275 + capture page screenshot
  276 + run keyword and ignore error run keyword if '${mode}' in 'reporting' wait until page contains element with reloading ${qualification_form_0_open_btn_locator}
  277 + capture page screenshot
  278 + run keyword and ignore error run keyword if '${mode}' in 'reporting' click visible element ${qualification_form_0_open_btn_locator}
  279 + capture page screenshot
  280 + run keyword and ignore error run keyword if '${mode}' in 'reporting' Execute Javascript $('#qualificationform-decision').val('accept').change()
  281 + capture page screenshot
  282 + run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_form_submit_success_msg} ${qualification_form_submit_btn_locator}
  283 + capture page screenshot
  284 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  285 +## run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${None} ${qualification_ecp_form_open_locator}
  286 + Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click()
  287 +# click visible element ${qualification_form_submit_btn_locator}
  288 + capture page screenshot
  289 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  290 + wait until element is visible ${qualification_ecp_form_open_locator} 60
  291 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  292 + capture page screenshot
  293 + run keyword and ignore error Load Sign
  294 + capture page screenshot
  295 + wait until element is visible ${qualification_form_submit_btn_locator} 60
  296 + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10
  297 + capture page screenshot
  298 + run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None}
  299 + capture page screenshot
  300 +
  301 +
... ...
  1 +*** Variables ***
  2 +
  3 +#qualification
  4 +${prequalification_form_0_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row:nth(1) a[href*="/tender/prequalification"]
  5 +${prequalification_form_1_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row:nth(2) a[href*="/tender/prequalification"]
  6 +${prequalification_form_2_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row:last a[href*="/tender/prequalification"]
  7 +${prequalification_form_approve_open_btn_locator} = jquery=.aside__inner a[href*="/tender/prequalification-approve"]
  8 +${prequalification_form_accept_input_locator} = $('#prequalificationform-decision').val('accept').change()
  9 +${prequalification_form_decline_input_locator} = $('#prequalificationform-decision').val('decline').change()
  10 +${prequalification_form_cancel_input_locator} = $('#prequalificationform-decision').val('cancel').change()
  11 +${prequalification_form_eligible_input_locator} = jquery=#prequalificationform-eligible
  12 +${prequalification_form_qualified_input_locator} = jquery=#prequalificationform-qualified
  13 +${qualification_form_reasons_cancellation_input_locator} = jquery=.fancybox-is-open .select2-search__field
  14 +${prequalification_form_title_cancellation_input_locator} = $('#prequalificationform-title').val('Тендерна пропозиція не відповідає вимогам тендерної документації').change()
  15 +${prequalification_form_description_cancellation_input_locator} = jquery=#prequalificationform-description
  16 +
  17 +${qualification_form_submit_success_msg} = Пропозиція прийнята
  18 +${qualification_form_decline_success_msg} = Пропозиція відхилена
  19 +${qualification_form_cancel_success_msg} = Рішення скасоване
  20 +${qualification_form_cancell_success_msg} = Рішення завантажене, тепер потрібно накласти ЕЦП/КЕП.
  21 +${qualification_form_approve_question_msg} = Ви впевнені що бажаєте завершити прекваліфікацію і перейти до наступного етапу?
  22 +${qualification_form_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success
  23 +${qualification_form_approve_submit_btn_locator} = jquery=.jconfirm-box-container .btn.btn-default
  24 +${qualification_form_approve_success_msg} = Прекваліфікація підтверджена, дочекайтесь опублікування на сайті уповноваженого органу.
  25 +${qualification_form_approve_js_submit_btn_locator} = $('.jconfirm-box-container .btn.btn-default').click()
  26 +
  27 +${qualification_form_0_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row a[href*="/tender/qualification"]
  28 +${qualification_form_1_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row:last a[href*="/tender/qualification"]
  29 +${qualification_form_eligible_input_locator} = jquery=#qualificationform-eligible
  30 +${qualification_form_qualified_input_locator} = jquery=#qualificationform-qualified
  31 +${qualification_award_form_submit_success_msg} = Рішення завантажене, тепер потрібно накласти ЕЦП/КЕП.
  32 +${qualification_award_after_ecp_form_submit_success_msg} = Рішення підтверджене, очікує опублікування на сайті уповноваженого органу.
  33 +${qualification_ecp_form_submit_success_msg} = ЕЦП/КЕП успішно накладено
  34 +#${qualification_ecp_form_submit_success_msg} = ЕЦП/КЕП успішно накладено на рішення, тепер потрібно підтвердити рішення.
  35 +${qualification_ecp_form_open_locator} = jquery=.modal.modal-xs.fancybox-content
  36 +${qualification_ecp_check_input_locator} = jquery=input[id$="form-signing"]
  37 +${qualification_award_form_title_cancellation_input_locator} = $('#qualificationform-title').val('Тендерна пропозиція не відповідає вимогам тендерної документації').change()
  38 +${qualification_award_form_title_decline_input_locator} = $('#qualificationform-title').val('Переможець відмовився від підписання договору про закупівлю відповідно до вимог тендерної документації або укладення договору про закупівлю').change()
  39 +${qualification_form_description_cancellation_input_locator} = jquery=#qualificationform-description
  40 +${qualification_form_approve_open_btn_locator} = jquery=.aside__inner a[href*="/tender/qualification-approve"]
  41 +${qualification_form_accept_input_locator} = $('#qualificationform-decision').val('accept').change()
  42 +${qualification_form_decline_input_locator} = $('#qualificationform-decision').val('decline').change()
  43 +${add_file_to_qualification_form_locator} = jquery=.field-qualificationform-documents .js-upload-documents input[type$="file"]:first
  44 +${qualification_form_cancel_input_locator} = $('#qualificationform-decision').val('cancel').change()
  45 +${qualification_form_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"]
  46 +${qualification_form_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last
  47 +${qualification_form_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control
  48 +${qualification_form_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"]
  49 +
  50 +#award reporting and negotiotion
  51 +${award_form_qualified_input_locator} = jquery=#qualificationform-qualified
  52 +${award_form_negotiation_submit_success_msg} = Інформація о постачальниках успішно онвлена.
  53 +
... ...
... ... @@ -10,38 +10,37 @@ add question
10 10 [Documentation] Створити запитання з question в описі для тендера tender_uaid.
11 11
12 12 click visible element ${question_form_open_btn_locator}
13   - capture page screenshot
14 13 click visible element ${question_form_open_create_btn_locator}
15   -
16   -# click visible element jquery=#tender-part-pjax a[href*="/tender/question-create"]:first
17   - capture page screenshot
  14 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  15 + wait until element is visible ${question_form_create_questionform_title_input_locator} 60
18 16 wait until popup is visible
19 17 # input text to exist visible input ${question_form_open_form_answer_input_locator} ${question.data.answer}
20 18 Run Keyword If '${type}' == 'tender' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Закупівля
21 19 Run Keyword If '${type}' == 'lot' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Лот
22   - Run Keyword If '${type}' == 'lot' Click Element ${question_form_create_questionform_related_lot_input_locator}
  20 + Run Keyword If '${type}' == 'lot' run keyword and ignore error Click Element ${question_form_create_questionform_related_lot_input_locator}
23 21 ${question_form_create_questionform_related_lot_input_locator} = Run Keyword If '${type}' == 'lot' replace string ${question_form_create_questionform_related_lot_input_locator_tpl} %type_id% ${type_id}
24   - Run Keyword If '${type}' == 'lot' Click Element ${question_form_create_questionform_related_lot_input_locator}
  22 + Run Keyword If '${type}' == 'lot' run keyword and ignore error Click Element ${question_form_create_questionform_related_lot_input_locator}
25 23 Run Keyword If '${type}' == 'item' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Предмет закупівлі
26   - Run Keyword If '${type}' == 'item' Click Element ${question_form_create_questionform_related_item_input_locator}
  24 + Run Keyword If '${type}' == 'item' run keyword and ignore error Click Element ${question_form_create_questionform_related_item_input_locator}
27 25 ${question_form_create_questionform_related_item_input_locator} = Run Keyword If '${type}' == 'item' replace string ${question_form_create_questionform_related_item_input_locator_tpl} %type_id% ${type_id}
28   - Run Keyword If '${type}' == 'item' Click Element ${question_questionform_related_item_input_locator}
  26 + Run Keyword If '${type}' == 'item' run keyword and ignore error Click Element ${question_questionform_related_item_input_locator}
29 27 input text to exist visible input ${question_form_create_questionform_title_input_locator} ${question.data.title}
30 28 input text to exist visible input ${question_form_create_questionform_description_input_locator} ${question.data.description}
31   - click visible element ${question_form_answer_submit_btn_locator}
  29 + submit form and check result ${question_form_answer_submit_btn_locator} ${question_form_submit_success_msg} ${tender_created_checker_element_locator}
  30 +# click visible element ${question_form_answer_submit_btn_locator}
32 31 wait until page does not contain element with reloading ${tender_sync_element_locator}
33 32
34 33 answer question
35 34 [Arguments] ${answer_data} ${question_id}
36 35 [Documentation] Дати відповідь answer_data на запитання з question_id в описі для тендера tender_uaid.
37 36
38   - run keyword and ignore error save tender form and wait synchronization
39 37 click visible element ${question_form_open_btn_locator}
40 38 ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id}
41 39 wait until page contains element with reloading ${question_open_form_answer_locator}
42 40 ${question_form_open_form_answer_btn_locator} = replace string ${question_form_open_form_answer_btn_locator_tpl} %title% ${question_id}
43 41 click visible element ${question_form_open_form_answer_btn_locator}
44   - wait until popup is visible
  42 + Wait Until Page Contains ${popup_opened_content_success_locator} 60
  43 + wait until element is visible ${question_form_open_form_answer_input_locator} 60
45 44 input text to exist visible input ${question_form_open_form_answer_input_locator} ${answer_data.data.answer}
46 45 submit form and check result ${question_form_answer_submit_btn_locator} ${question_form_submit_answer_success_msg} ${tender_created_checker_element_locator}
47 46
... ... @@ -52,11 +51,9 @@ get question information
52 51
53 52 capture page screenshot
54 53 run keyword and ignore error save tender form and wait synchronization
55   - capture page screenshot
56 54 click visible element ${question_form_open_btn_locator}
57 55 ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id}
58 56 wait until page contains element with reloading ${question_open_form_answer_locator}
59   - capture page screenshot
60 57 ${question_title_value_locator} = Run Keyword If 'title' == '${field_name}' replace string ${question_title_value_locator_tpl} %title% ${question_id}
61 58 ${question_answer_value_locator} = Run Keyword If 'answer' == '${field_name}' replace string ${question_answer_value_locator_tpl} %title% ${question_id}
62 59 ${question_description_value_locator} = Run Keyword If 'description' == '${field_name}' replace string ${question_description_value_locator_tpl} %title% ${question_id}
... ...
... ... @@ -24,3 +24,5 @@ ${question_answer_value_locator_tpl} = jquery=#tend
24 24 ${question_title_value_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] h4.callout__title
25 25 ${question_description_value_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] .info-row.description span.value
26 26
  27 +${popup_locator} = jquery=.fancybox-is-open .fancybox-slide--current .fancybox-content
  28 +
... ...
1 1 # -*- coding: utf-8 -
2 2 import re
3 3 import copy
  4 +import urllib
  5 +import urllib3
4 6
5 7 import dateutil.parser
6 8 from iso8601 import parse_date
7 9 from robot.libraries.BuiltIn import BuiltIn
  10 +from datetime import datetime, timedelta
  11 +import pytz
8 12
  13 +TZ = pytz.timezone('Europe/Kiev')
9 14
10 15 def get_library():
11 16 return BuiltIn().get_library_instance('Selenium2Library')
... ... @@ -331,3 +336,16 @@ def set_value_minimalStepPercentage(value):
331 336 def convert_esco__float_to_string(number):
332 337 return '{0:.5f}'.format(float(number))
333 338
  339 +def convert_string_to_float(number):
  340 + return float(number)
  341 +
  342 +def download_file(url, file_name, output_dir):
  343 + urllib.urlretrieve(url, ('{}/{}'.format(output_dir, file_name)))
  344 +
  345 +def parse_complaintPeriod_date(date_string):
  346 + date_str = datetime.strptime(date_string, "%d.%m.%Y %H:%M")
  347 + date_str -= timedelta(minutes=5)
  348 + date = datetime(date_str.year, date_str.month, date_str.day, date_str.hour, date_str.minute, date_str.second,
  349 + date_str.microsecond)
  350 + date = TZ.localize(date).isoformat()
  351 + return date
... ...
... ... @@ -143,7 +143,9 @@ fill tender general info
143 143 ${cause} = get from dictionary by keys ${data} cause
144 144 run keyword if condition is not none ${cause} select from visible list by value ${tender_form_general_cause_input_locator} ${cause}
145 145 ${cause_description} = get from dictionary by keys ${data} causeDescription
146   - run keyword if condition is not none ${cause_description} input text to visible input ${tender_form_general_cause_description_input_locator} ${description}
  146 + run keyword if condition is not none ${cause_description} input text to visible input ${tender_form_general_cause_description_input_locator} ${cause_description}
  147 +#complaints
  148 + Run Keyword If '${SUITE_NAME}' == 'Tests Files.Complaints' click visible element ${tender_form_auction_skip_mode_input_locator}
147 149 submit current visible popup
148 150
149 151 fill tender form items
... ... @@ -217,7 +219,8 @@ fill tender form features
217 219 click visible element ${add_btn_locator}
218 220 wait until popup is visible
219 221 :FOR ${feature_attributes} IN @{feature_attributes_array}
220   - \ click visible element ${tender_form_features_panel_edit_btn_locator}
  222 +# \ click visible element ${tender_form_features_panel_edit_btn_locator}
  223 + \ execute javascript ${tender_form_features_panel_edit_btn_locator}
221 224 \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
222 225 \ fill feature form in opened popup ${feature_attributes}
223 226 submit current visible popup
... ... @@ -335,8 +338,11 @@ fill tender required documents
335 338
336 339 fill tender from award reporting
337 340 [Arguments] ${budget} ${award_attributes_array}
338   - [Documentation] заповнення номенклатури тендеру
  341 + [Documentation] заповнення переможця reporting тендеру
339 342
  343 + run keyword and ignore error click visible element ${tender_form_general_panel_update_award_negotiation_btn_locator}
  344 + run keyword and ignore error Run Keyword If "${TEST_NAME}" == "Можливість створити переговорну процедуру" click visible element ${tender_form_general_panel_add_award_negotiation_btn_locator}
  345 + run keyword and ignore error wait until popup is visible
340 346 run keyword and ignore error click visible element ${tender_form_general_panel_update_award_reporting_btn_locator}
341 347 wait until popup is visible
342 348 fill award reporting form in opened popup ${budget} ${award_attributes_array}
... ... @@ -394,12 +400,48 @@ add document in lot
394 400 [Arguments] ${filepath} ${lot_id}
395 401 [Documentation] Завантажити в лот (з ідентіфікатором ${lot_id}) документ, який знаходиться по шляху filepath.
396 402
397   - capture page screenshot
398 403 ${open_form_add_doc_lot_btn_locator} = replace string ${tender_form_lot_panel_add_document_btn_locator_tpl} %lot_id% ${lot_id}
399   - capture page screenshot
400   - click visible element and wait until page contains element ${open_form_add_doc_lot_btn_locator} jquery=.modal.modal-form.js-form-popup.fancybox-content
401   - capture page screenshot
  404 + click visible element and wait until page contains element ${open_form_add_doc_lot_btn_locator} jquery=.modal.modal-form.js-form-popup.fancybox-content
402 405 choose file ${add_file_to_form_locator} ${filepath}
403 406 wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
404 407 submit current visible popup
405 408
  409 +confirm-stage2
  410 + [Documentation] Перевести тендер tender_uaid в статус active.stage2.waiting.
  411 +
  412 + Wait Until Keyword Succeeds 300 s 20 s Wait For stage2button
  413 + click visible element ${tender_stage2_open_btn_locator}
  414 + Wait Until Page Contains ${tender_stage2_submit_success_msg} 60
  415 +# click visible element ${tender_stage2_submit_success_btn_locator}
  416 +# submit form and check result ${tender_stage2_submit_success_btn_locator} ${tender_stage2_submit_alert_success_msg} ${tender_created_checker_element_locator}
  417 + execute javascript ${tender_stage2_submit_js_success_btn_locator}
  418 + Wait Until Page Contains ${tender_stage2_submit_alert_success_msg} 60
  419 + wait until alert is visible ${tender_stage2_submit_alert_success_msg}
  420 + run keyword and ignore error close current visible alert
  421 +
  422 +
  423 +activate stage 2
  424 + [Documentation] Перевести тендер tender_uaid в статус active.tendering.
  425 +
  426 + open popup by btn locator ${tender_form_general_panel_edit_btn_locator}
  427 + ${tender_end_date} = Get Current Date increment=00:25:00 result_format=%Y-%m-%dT%H:%M:%S.%f%z+02:00
  428 +# ${tender_end_date} = Get Current Date increment=00:25:00 result_format=%d.%m.%Y %H:%M
  429 + input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date}
  430 + capture page screenshot
  431 + click visible element ${tender_form_general_panel_draft_mode_input_locator}
  432 + capture page screenshot
  433 + submit current visible popup
  434 + capture page screenshot
  435 + ${file_path} ${file_name} ${file_content} = create_fake_doc
  436 + click visible element ${tender_form_general_panel_document_stage2_input_locator}
  437 + choose file ${add_file_to_form_locator} ${file_path}
  438 + wait until element is visible ${stage2_form_add_document_type_input_locator}
  439 + click visible element ${stage2_form_add_document_description_btn_locator}
  440 + capture page screenshot
  441 + wait until element is visible ${stage2_form_add_document_description_input_locator}
  442 + input text to exist visible input ${stage2_form_add_document_description_input_locator} test2
  443 + click visible element ${stage2_form_add_document_close_description_btn_locator}
  444 + capture page screenshot
  445 + submit current visible popup
  446 +
  447 +
... ...
... ... @@ -81,6 +81,7 @@ ${tender_enquiry_period_end_date_input_locator} = jquery=[id$=
81 81 ${tender_tender_period_start_date_input_locator} = jquery=[id$="form-tender_period_start_date"]
82 82 ${tender_tender_period_end_date_input_locator} = jquery=[id$="form-tender_period_end_date"]
83 83 ${tender_tender_quick_mode_locator} = jquery=[id$="form-quick_mode"]
  84 +
84 85 #esco
85 86 ${tender_form_general_funding_kind_input_locator} = id=tenderescoform-funding_kind
86 87 ${tender_form_general_nbu_discount_rate_input_locator} = id=tenderescoform-nbu_discount_rate
... ... @@ -95,8 +96,12 @@ ${tender_form_general_agreement_duration_days_input_locator} = jquery=[id$=
95 96 ${tender_form_general_cause_input_locator} = jquery=[id$="form-cause"]
96 97 ${tender_form_general_cause_description_input_locator} = jquery=[id$="form-cause_description"]
97 98
  99 +#Tests Files.Complaints
  100 +${tender_form_auction_skip_mode_input_locator} = jquery=input[id$="form-auction_skip_mode"]
  101 +
98 102 ${tender_form_general_panel_add_feature_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="features"]
99   -${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"]
  103 +${tender_form_features_panel_edit_btn_locator} = $('.fancybox-content [href$="#add-features"]').trigger("click")
  104 +#${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"]
100 105 ${feature_form_popup_title_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title"]:first
101 106 ${feature_form_popup_description_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description"]:first
102 107 ${feature_form_popup_title_en_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title_en"]:first
... ... @@ -198,28 +203,36 @@ ${tender_milestones_2_duration_days_value_type} = integer
198 203 ${tender_milestones_2_duration_type_value_locator} = jquery=#tender-part-pjax .tabs.tabs .milestone-info-wrapper.hidden.info-wrapper:last .info-row.duration_type
199 204 ${tender_value_amount_value_locator} = jquery=#tender-general-info .budget-amount.hidden
200 205 ${tender_value_amount_value_type} = float
201   -${tender_value_currency_value_locator} = jquery=
202   -${tender_value_valueAddedTaxIncluded_value_locator} = jquery=
  206 +${tender_value_currency_value_locator} = jquery=#tender-general-info .budget-currency.hidden
  207 +${tender_value_valueAddedTaxIncluded_value_locator} = jquery=#tender-general-info .budget-tax-included.hidden
203 208 ${tender_minimalStep_amount_value_locator} = jquery=#tender-general-info .minimal-step-source.hidden
204 209 ${tender_minimalStep_amount_value_type} = float
  210 +${tender_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden
  211 +${tender_fundingKind_value_locator} = jquery=#tender-general-info .funding-kind-source.hidden
  212 +${tender_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden
205 213 ${tender_procuringEntity_name_value_locator} = jquery=#tender-part-pjax .info-row.organization span.value > span
206 214 ${tender_enquiryPeriod_startDate_value_locator} = jquery=#tender-part-pjax .info-row.enquiry-period-start-date.hidden
207 215 ${tender_enquiryPeriod_endDate_value_locator} = jquery=#tender-part-pjax .info-row.enquiry-period-end-date.hidden
208 216 ${tender_tenderPeriod_startDate_value_locator} = jquery=#tender-part-pjax .info-row.tender-period-start-date.hidden
209 217 ${tender_tenderPeriod_endDate_value_locator} = jquery=#tender-part-pjax .info-row.tender-period-end-date.hidden
  218 +${tender_qualificationPeriod_endDate_value_locator} = jquery=#tender-general-info .prequalification-period .value .end-date
  219 +#negotiation
  220 +${tender_cause_value_locator} = jquery=#tender-general-info .cause-source.hidden
  221 +${tender_causeDescription_value_locator} = jquery=#tender-general-info .cause-description .value
210 222
211   -${tender_items_0_description_value_locator} = jquery=#tender-part-pjax .info-row.tender-period-end-date.hidden
  223 +${tender_items_0_description_value_locator} = jquery=#tender-part-pjax .tabs__pane--visible .pseudo-table .item-item-wrapper .textvalue.hidden
212 224
213 225 #lots
214 226 ${tender_lot_switch_tabs_lot_btn_locator_tpl} jquery=#lots .tabs__list .tabs__item span.tabs__tab-big-text:contains("%lot_id%")
215 227 ${tender_lot_1_tabs_item_btn_locator} jquery=#lots .tabs__item:first > a
216 228 ${tender_lot_title_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:first
217   -${tender_lot_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue.hidden
  229 +${tender_lot_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:last
  230 +#${tender_lot_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible #text-modal-description div.textvalue
218 231 ${tender_lot_value_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
219 232 ${tender_lot_value_amount_value_type} = float
220   -${tender_lot_value_currency_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
  233 +${tender_lot_value_currency_value_locator} = jquery=#tender-general-info .budget-currency.hidden
221 234 ${tender_lot_value_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
222   -${tender_lot_minimal_step_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
  235 +${tender_lot_minimal_step_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .minimal-step-source.hidden
223 236 ${tender_lot_minimal_step_amount_value_type} = float
224 237 ${tender_lot_minimal_step_amount_currency_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
225 238 ${tender_lot_minimal_step_amount_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
... ... @@ -239,7 +252,8 @@ ${tender_form_lots_edit_lot1_btn_locator} = jquery=#Lots
239 252 ${tender_form_lots_add_item_btn_locator} = jquery=#Lots #collapseLots #Lots0 .actions-wrapper a.js-form-popup-add
240 253 ${tender_form_lots_remove_item_btn_locator_tpl} = jquery=#collapseLots0 .js-form-popup-panel[data-title*="%item_id%"] .actions-wrapper .js-form-popup-remove
241 254 ${tender_lots_remove_item_form_submit_success_msg} = Ви дійсно бажаєте видалити цей елемент?
242   -${not_alert_opened_close_btn_locator} = jquery=.animated-content .js-btn-confirm
  255 +#${not_alert_opened_close_btn_locator} = jquery=.animated-content .js-btn-confirm
  256 +${not_alert_opened_close_btn_locator} = $('.animated-content .js-btn-confirm').trigger("click")
243 257 ${tender_form_lots_add_item_reporting_btn_locator} = jquery=.form-group-popup-panel[data-attribute="items"]:last #Items0 .js-form-popup-update
244 258 ##### EOF - TMP #####
245 259
... ... @@ -249,6 +263,8 @@ ${tender_item_2_tabs_item_btn_locator} jquery=.tabs
249 263 ${tender_item_3_tabs_item_btn_locator} jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(2)
250 264
251 265 ${tender_form_general_panel_update_award_reporting_btn_locator} = jquery=#Award .js-form-popup-update
  266 +${tender_form_general_panel_update_award_negotiation_btn_locator} = jquery=.js-form-popup-panel [data-attribute="awards"] .actions-wrapper .js-form-popup-update
  267 +${tender_form_general_panel_add_award_negotiation_btn_locator} = jquery=.modal.modal-form [href="#add-awards"]
252 268
253 269 #add\remove feature
254 270 #${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"]
... ... @@ -261,7 +277,8 @@ ${tender_feature_form_submit_success_msg} = Ви впеÐ
261 277 ${tender_feature_dell_submit_btn_locator} = jquery=.animated-content .js-btn-confirm
262 278
263 279 ${tender_form_general_tender_plan_id_locator} = jquery=[id$="form-plan_id"]
264   -${tender_feature_switch_dell_btn_locator_tpl} = jquery=.fancybox-is-open .nav.nav-pills.js-nav.allow-empty li[data-title*="%feature_id%"] a[href*="#features"]
  280 +#${tender_feature_switch_dell_btn_locator_tpl} = jquery=.fancybox-is-open .nav.nav-pills.js-nav.allow-empty li[data-title*="%feature_id%"] a[href*="#features"]
  281 +${tender_feature_switch_dell_btn_locator_tpl} = $('.fancybox-is-open .nav.nav-pills.js-nav.allow-empty li[data-title*="%feature_id%"] a[href*="#features"]').click()
265 282
266 283 #award reporting
267 284 ${tender_form_award_organization_name_locator} = jquery=[id$="-award_organization_name"]
... ... @@ -276,4 +293,23 @@ ${tender_form_award_organization_contact_point_email_locator} = jquery=[id$=
276 293 ${tender_form_award_organization_contact_point_phone_locator} = jquery=[id$="-award_organization_contact_point_phone"]
277 294 ${tender_form_award_budget_locator} = jquery=[id$="-award_value_amount"]
278 295
  296 +#stage2button
  297 +${tender_stage2_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/confirm-stage2"]
  298 +${tender_stage2_submit_success_msg} = Ви впевнені що бажаєте підтвердити готовність переходу до другого етапу?
  299 +${tender_stage2_submit_success_btn_locator} = jquery=.jconfirm-box.animated-content .js-btn-confirm
  300 +${tender_stage2_submit_js_success_btn_locator} = $('.jconfirm-box.animated-content .js-btn-confirm').click()
  301 +${tender_stage2_submit_alert_success_msg} = Підтвердження успішно надане.
  302 +#search
  303 +${tender_form_search_btn_locator} = jquery=#DymamicSearch .dynamic-search-submit .js-submit-btn
  304 +
  305 +${popup_opened_content_success_locator} = Відмінити
  306 +${tender_form_general_panel_edit_btn_locator} = jquery=#General #headingGeneral .actions-wrapper .js-form-popup-update
  307 +${tender_form_general_panel_draft_mode_input_locator} = jquery=[id*="-draft_mode"]
  308 +${tender_form_general_panel_document_stage2_input_locator} = jquery=#collapseGeneral .actions-wrapper .js-btn-add-form-popup-panel[data-attribute="documents"]
  309 +${stage2_form_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"]
  310 +${stage2_form_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last
  311 +${stage2_form_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control
  312 +${stage2_form_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"]
  313 +
  314 +
279 315
... ...
... ... @@ -14,9 +14,12 @@ get value from features
14 14 [Arguments] ${feature_id} ${field_name}
15 15 [Documentation] Отримати значення поля field_name з нецінового показника з feature_id в описі для тендера tender_uaid.
16 16
  17 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  18 + ${tender_features_new_value_locator} = replace string ${tender_features_new_value_locator_tpl} %feature_id% ${feature_id}
  19 + wait until page contains element with reloading ${tender_features_new_value_locator}
17 20 ${return_value} = Run Keyword If 'title' == '${field_name}' Отримати інформацію із нецінового показника title ${feature_id}
18 21 ... ELSE IF 'description' == '${field_name}' Отримати інформацію із нецінового показника description ${feature_id}
19   - ... ELSE IF 'featureOf' == '${field_name}' Отримати інформацію із нецінового показника featureOf ${feature_id]}
  22 + ... ELSE IF 'featureOf' == '${field_name}' Отримати інформацію із нецінового показника featureOf ${feature_id}
20 23 [return] ${return_value}
21 24
22 25 Отримати інформацію із нецінового показника title
... ... @@ -32,7 +35,7 @@ get value from features
32 35 [Documentation] Отримати значення поля description з нецінового показника з feature_id в описі для тендера tender_uaid.
33 36
34 37 ${tender_features_description_value_locator} = replace string ${tender_features_description_value_locator_tpl} %feature_id% ${feature_id}
35   - ${return_value} = get text ${tender_features_title_value_locator}
  38 + ${return_value} = get value by locator on opened page ${tender_features_description_value_locator}
36 39 [return] ${return_value}
37 40
38 41 Отримати інформацію із нецінового показника featureOf
... ... @@ -40,7 +43,7 @@ get value from features
40 43 [Documentation] Отримати значення поля featureOf з нецінового показника з feature_id в описі для тендера tender_uaid.
41 44
42 45 ${tender_features_featureof_value_locator} = replace string ${tender_features_featureof_value_locator_tpl} %feature_id% ${feature_id}
43   - ${return_value} = get text ${tender_features_title_value_locator}
  46 + ${return_value} = get value by locator on opened page ${tender_features_featureof_value_locator}
44 47 [return] ${return_value}
45 48
46 49
... ... @@ -51,6 +54,9 @@ get value from item
51 54 # ${return_value} = Run Keyword If 'title' == '${field_name}' Отримати інформацію із предмету title ${item_id}
52 55 # ... ELSE IF 'description' == '${field_name}' Отримати інформацію із предмету description ${item_id}
53 56 # ... ELSE IF 'featureOf' == '${field_name}' Отримати інформацію із предмету featureOf ${item_id]}
  57 + ${tender_items_new_value_locator} = replace string ${tender_items_new_value_locator_tpl} %item_id% ${item_id}
  58 + wait until page contains element with reloading ${tender_items_new_value_locator}
  59 + log many ${item_id}
54 60 Run Keyword And Return If 'description' == '${field_name}' Отримати інформацію із предмету description ${item_id}
55 61 Run Keyword And Return If 'deliveryDate.startDate' == '${field_name}' Отримати інформацію із предмету deliveryDate.startDate ${item_id}
56 62 Run Keyword And Return If 'deliveryDate.endDate' == '${field_name}' Отримати інформацію із предмету deliveryDate.endDate ${item_id}
... ... @@ -75,7 +81,9 @@ get value from item
75 81 [Arguments] ${item_id}
76 82 [Documentation] Отримати значення поля description з предмету з item_id в описі для тендера tender_uaid.
77 83
78   - ${tender_items_description_value_locator} = replace string ${tender_items_description_value_locator_tpl} %item_id% ${item_id}
  84 + log many ${item_id}
  85 + ${tender_items_description_value_locator} = run keyword if ${number_of_lots} > 0 replace string ${tender_items_description_value_locator_tpl} %item_id% ${item_id}
  86 + ... ELSE replace string ${tender_items_no_lot_description_value_locator_tpl} %item_id% ${item_id}
79 87 ${return_value} = get value by locator on opened page ${tender_items_description_value_locator}
80 88 [return] ${return_value}
81 89
... ... @@ -91,7 +99,7 @@ get value from item
91 99 [Arguments] ${item_id}
92 100 [Documentation] Отримати значення поля deliveryDate.endDate з предмету з item_id в описі для тендера tender_uaid.
93 101
94   - ${tender_items_delivery_end_date_value_locator} = replace string ${tender_features_featureof_value_locator_tpl} %item_id% ${item_id}
  102 + ${tender_items_delivery_end_date_value_locator} = replace string ${tender_items_delivery_end_date_value_locator_tpl} %item_id% ${item_id}
95 103 ${return_value} = get value by locator on opened page ${tender_items_delivery_end_date_value_locator}
96 104 [return] ${return_value}
97 105
... ... @@ -140,7 +148,7 @@ get value from item
140 148 [Documentation] Отримати значення поля classification.scheme з предмету з item_id в описі для тендера tender_uaid.
141 149
142 150 ${tender_items_classification_scheme_value_locator} = replace string ${tender_items_classification_scheme_value_locator_tpl} %item_id% ${item_id}
143   - ${return_value} = get value by locator on opened page ${tender_items_classification_scheme_value_locator_tpl}
  151 + ${return_value} = get value by locator on opened page ${tender_items_classification_scheme_value_locator}
144 152 [return] ${return_value}
145 153
146 154 Отримати інформацію із предмету classification.id
... ... @@ -155,7 +163,7 @@ get value from item
155 163 [Arguments] ${item_id}
156 164 [Documentation] Отримати значення поля classification.description з предмету з item_id в описі для тендера tender_uaid.
157 165
158   - ${tender_items_classification_description_value_locator_tpl} = replace string ${tender_items_classification_description_value_locator_tpl} %item_id% ${item_id}
  166 + ${tender_items_classification_description_value_locator} = replace string ${tender_items_classification_description_value_locator_tpl} %item_id% ${item_id}
159 167 ${return_value} = get value by locator on opened page ${tender_items_classification_description_value_locator}
160 168 [return] ${return_value}
161 169
... ... @@ -196,7 +204,7 @@ get value from item
196 204 [Documentation] Отримати значення поля unit.code з предмету з item_id в описі для тендера tender_uaid.
197 205
198 206 ${tender_items_unit_code_value_locator} = replace string ${tender_items_unit_code_value_locator_tpl} %item_id% ${item_id}
199   - ${return_value} = get value by locator on opened page ${tender_items_unit_code_value_locator_tpl}
  207 + ${return_value} = get value by locator on opened page ${tender_items_unit_code_value_locator}
200 208 [return] ${return_value}
201 209
202 210 Отримати інформацію із предмету quantity
... ... @@ -219,18 +227,20 @@ get value from lot
219 227 Run Keyword And Return If 'value.valueAddedTaxIncluded' == '${field_name}' Отримати інформацію із лоту value.valueAddedTaxIncluded ${lot_id}
220 228 Run Keyword And Return If 'minimalStep.currency' == '${field_name}' Отримати інформацію із лоту minimalStep.currency ${lot_id}
221 229 Run Keyword And Return If 'minimalStep.valueAddedTaxIncluded' == '${field_name}' Отримати інформацію із лоту minimalStep.valueAddedTaxIncluded ${lot_id}
222   - Run Keyword And Return If 'auctionPeriod.startDate' == '${field_name}' get_invisible_text jquery=#accordionLots .panel-collapse.in .lot-info-wrapper .auction-period-start-date.hidden
223   - Run Keyword And Return If 'auctionPeriod.endDate' == '${field_name}' get_invisible_text jquery=#accordionLots .panel-collapse.in .lot-info-wrapper .auction-period-end-date.hidden
224   - Run Keyword And Return If 'minimalStepPercentage' == '${field_name}' Get invisible text number by locator jquery=#accordionLots .panel-collapse.in .lot-info-wrapper .minimal-step-percentage-source.hidden
225   - Run Keyword And Return If 'fundingKind' == '${field_name}' get_invisible_text jquery=#accordionLots .lot-info-wrapper:first .funding-kind-source.hidden
226   - Run Keyword And Return If 'yearlyPaymentsPercentageRange' == '${field_name}' Get invisible text number by locator jquery=#accordionLots .lot-info-wrapper:first .yearly-payments-percentage-range-source.hidden
  230 +# Run Keyword And Return If 'auctionPeriod.startDate' == '${field_name}' get text jquery=#lots .tabs__content .tabs__pane--visible .auction-period .value .start-date
  231 + Run Keyword And Return If 'auctionPeriod.startDate' == '${field_name}' Отримати інформацію із лоту auctionPeriod.startDate ${lot_id}
  232 + Run Keyword And Return If 'auctionPeriod.endDate' == '${field_name}' Отримати інформацію із лоту auctionPeriod.endDate ${lot_id}
  233 +# Run Keyword And Return If 'auctionPeriod.endDate' == '${field_name}' get text jquery=#lots .tabs__content .tabs__pane--visible .auction-period .value .end-date
  234 + Run Keyword And Return If 'minimalStepPercentage' == '${field_name}' Отримати інформацію із лоту minimalStepPercentage ${lot_id}
  235 + Run Keyword And Return If 'fundingKind' == '${field_name}' Отримати інформацію із лоту fundingKind ${lot_id}
  236 + Run Keyword And Return If 'yearlyPaymentsPercentageRange' == '${field_name}' Отримати інформацію із лоту yearlyPaymentsPercentageRange ${lot_id}
227 237
228 238
229 239 Отримати інформацію із лоту title
230 240 [Arguments] ${lot_id}
231 241 [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid.
232 242
233   - ${tender_lot_description_value_locator} = replace string ${tender_lot_description_value_locator_tpl} %lot_id% ${lot_id}
  243 +# ${tender_lot_title_value_locator} = replace string ${tender_lot_title_value_locator_tpl} %lot_id% ${lot_id}
234 244 ${return_value} = get value by locator on opened page ${tender_lot_title_value_locator}
235 245 [return] ${return_value}
236 246
... ... @@ -238,7 +248,7 @@ get value from lot
238 248 [Arguments] ${lot_id}
239 249 [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid.
240 250
241   - ${tender_lot_description_value_locator} = replace string ${tender_lot_description_value_locator_tpl} %lot_id% ${lot_id}
  251 +# ${tender_lot_description_value_locator} = replace string ${tender_lot_description_value_locator_tpl} %lot_id% ${lot_id}
242 252 ${return_value} = get value by locator on opened page ${tender_lot_description_value_locator}
243 253 [return] ${return_value}
244 254
... ... @@ -246,23 +256,23 @@ get value from lot
246 256 [Arguments] ${lot_id}
247 257 [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid.
248 258
249   - ${tender_lot_value_amount_value_locator} = replace string ${tender_lot_value_amount_value_locator_tpl} %lot_id% ${lot_id}
250   - ${return_value} = get value by locator on opened page ${tender_lot_value_amount_value_locator}
  259 +# ${tender_lot_value_amount_value_locator} = replace string ${tender_lot_value_amount_value_locator_tpl} %lot_id% ${lot_id}
  260 + ${return_value} = get value by locator on opened page ${tender_lot_value_amount_value_locator} ${tender_lot_value_amount_value_type}
251 261 [return] ${return_value}
252 262
253 263 Отримати інформацію із лоту minimalStep.amount
254 264 [Arguments] ${lot_id}
255 265 [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid.
256 266
257   - ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id}
258   - ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_amount_value_locator}
  267 +# ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id}
  268 + ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_amount_value_locator} ${tender_lot_minimal_step_amount_value_type}
259 269 [return] ${return_value}
260 270
261 271 Отримати інформацію із лоту value.currency
262 272 [Arguments] ${lot_id}
263 273 [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid.
264 274
265   - ${tender_lot_value_currency_value_locator} = replace string ${tender_lot_value_currency_value_locator_tpl} %lot_id% ${lot_id}
  275 +# ${tender_lot_value_currency_value_locator} = replace string ${tender_lot_value_currency_value_locator_tpl} %lot_id% ${lot_id}
266 276 ${return_value} = get value by locator on opened page ${tender_lot_value_currency_value_locator}
267 277 [return] ${return_value}
268 278
... ... @@ -270,15 +280,16 @@ get value from lot
270 280 [Arguments] ${lot_id}
271 281 [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid.
272 282
273   - ${tender_lot_value_value_added_tax_included_value_locator} = replace string ${tender_lot_value_value_added_tax_included_value_locator_tpl} %lot_id% ${lot_id}
  283 +# ${tender_lot_value_value_added_tax_included_value_locator} = replace string ${tender_lot_value_value_added_tax_included_value_locator_tpl} %lot_id% ${lot_id}
274 284 ${return_value} = get value by locator on opened page ${tender_lot_value_value_added_tax_included_value_locator}
  285 + ${return_value} = set variable if ${return_value} == 1 True
275 286 [return] ${return_value}
276 287
277 288 Отримати інформацію із лоту minimalStep.currency
278 289 [Arguments] ${lot_id}
279 290 [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid.
280 291
281   - ${tender_lot_minimal_step_currency_value_locator} = replace string ${tender_lot_minimal_step_currency_value_locator_tpl} %lot_id% ${lot_id}
  292 +# ${tender_lot_minimal_step_currency_value_locator} = replace string ${tender_lot_minimal_step_currency_value_locator_tpl} %lot_id% ${lot_id}
282 293 ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_currency_value_locator}
283 294 [return] ${return_value}
284 295
... ... @@ -286,7 +297,7 @@ get value from lot
286 297 [Arguments] ${lot_id}
287 298 [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid.
288 299
289   - ${tender_lot_value_minimal_step_added_tax_included_value_locator} = replace string ${tender_lot_minimal_step_value_added_tax_included_value_locator_tpl} %lot_id% ${lot_id}
  300 +# ${tender_lot_value_minimal_step_added_tax_included_value_locator} = replace string ${tender_lot_minimal_step_value_added_tax_included_value_locator_tpl} %lot_id% ${lot_id}
290 301 ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_value_added_tax_included_value_locator}
291 302 [return] ${return_value}
292 303
... ... @@ -294,39 +305,237 @@ get value from lot
294 305 [Arguments] ${lot_id}
295 306 [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid.
296 307
297   - ${tender_lot_delivery_region_id_value_locator} = replace string ${tender_lot_delivery_region_id_value_locator_tpl} %lot_id% ${lot_id}
298   - ${return_value} = get value by locator on opened page ${tender_lot_delivery_region_id_value_locator}
  308 +# ${tender_lot_delivery_region_id_value_locator} = replace string ${tender_lot_delivery_region_id_value_locator_tpl} %lot_id% ${lot_id}
  309 + ${return_value} = get value by locator on opened page ${tender_auctionPeriod_startDate_value_locator}
  310 +# ${return_value} = parse_complaintPeriod_date ${return_value}
299 311 [return] ${return_value}
300 312
301 313 Отримати інформацію із лоту auctionPeriod.endDate
302 314 [Arguments] ${lot_id}
303 315 [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid.
304 316
305   - ${tender_lot_delivery_locality_value_locator} = replace string ${tender_lot_delivery_locality_value_locator_tpl} %lot_id% ${lot_id}
306   - ${return_value} = get value by locator on opened page ${tender_lot_delivery_locality_value_locator}
  317 +# ${tender_lot_delivery_locality_value_locator} = replace string ${tender_lot_delivery_locality_value_locator_tpl} %lot_id% ${lot_id}
  318 + ${return_value} = get value by locator on opened page ${tender_auctionPeriod_endDate_value_locator}
307 319 [return] ${return_value}
308 320
309 321 Отримати інформацію із лоту minimalStepPercentage
310 322 [Arguments] ${lot_id}
311   - [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid.
  323 + [Documentation] Отримати значення поля minimalStepPercentage з лоту з lot_id в описі для тендера tender_uaid.
312 324
313   - ${tender_lot_delivery_street_address_value_locator} = replace string ${tender_lot_delivery_street_address_value_locator_tpl} %lot_id% ${lot_id}
314   - ${return_value} = get value by locator on opened page ${tender_lot_delivery_street_address_value_locator}
  325 +# ${tender_lot_delivery_street_address_value_locator} = replace string ${tender_lot_delivery_street_address_value_locator_tpl} %lot_id% ${lot_id}
  326 +# ${return_value} = get field_value by field_name on opened page ${tender_minimalStepPercentage_value_locator}
  327 + ${return_value} = get value by locator on opened page ${tender_minimalStepPercentage_value_locator}
  328 + ${return_value} = convert_string_to_float ${return_value}
315 329 [return] ${return_value}
316 330
317 331 Отримати інформацію із лоту fundingKind
318 332 [Arguments] ${lot_id}
319 333 [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid.
320 334
321   - ${tender_lot_classification_scheme_value_locator} = replace string ${tender_lot_classification_scheme_value_locator_tpl} %lot_id% ${lot_id}
322   - ${return_value} = get value by locator on opened page ${tender_lot_classification_scheme_value_locator_tpl}
  335 +# ${tender_lot_classification_scheme_value_locator} = replace string ${tender_lot_classification_scheme_value_locator_tpl} %lot_id% ${lot_id}
  336 + ${return_value} = get value by locator on opened page ${tender_fundingKind_value_locator}
323 337 [return] ${return_value}
324 338
325 339 Отримати інформацію із лоту yearlyPaymentsPercentageRange
326 340 [Arguments] ${lot_id}
327 341 [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid.
328 342
329   - ${tender_lot_classification_code_value_locator} = replace string ${tender_lot_classification_code_value_locator_tpl} %lot_id% ${lot_id}
330   - ${return_value} = get value by locator on opened page ${tender_lot_classification_code_value_locator}
  343 +# ${tender_lot_classification_code_value_locator} = replace string ${tender_lot_classification_code_value_locator_tpl} %lot_id% ${lot_id}
  344 +# ${field_name} = set variable tender.${field_name}.value
  345 +# ${return_value} = get field_value by field_name on opened page ${tender_yearlyPaymentsPercentageRange_value_locator}
  346 + ${return_value} = get value by locator on opened page ${tender_yearlyPaymentsPercentageRange_value_locator}
  347 + ${return_value} = convert_string_to_float ${return_value}
  348 + [return] ${return_value}
  349 +
  350 +Отримати інформацію із документа title
  351 + [Arguments] ${doc_id}
  352 + [Documentation] Отримати значення поля title з документу з doc_id в описі для тендера tender_uaid.
  353 +
  354 +#заготовка
  355 + ${tender_new_doc_locator} = replace string ${tender_new_doc_locator_tpl} %doc_id% ${doc_id}
  356 + wait until page contains element with reloading ${tender_new_doc_locator}
  357 +
  358 + ${tender_new_doc__title_locator} = replace string ${tender_new_doc_title_locator_tpl} %doc_id% ${doc_id}
  359 +
  360 + ${return_value} = Execute Javascript return ${tender_new_doc__title_locator}
  361 + ##${return_value} = get text ${tender_new_doc_locator}
  362 + #${return_value} = get value by locator on opened page ${tender_new_doc_locator}
  363 + [return] ${return_value}
  364 +
  365 +wait for tender status
  366 + [Documentation] Очикування відповідного статусу закупівлі, в залежності від кейворда
  367 +
  368 + Run Keyword If '${TEST_NAME}' == 'Неможливість завантажити документ першим учасником після закінчення прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire
  369 + Run Keyword If '${TEST_NAME}' == 'Неможливість завантажити документ другим учасником після закінчення прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire
  370 + Run Keyword If '${TEST_NAME}' == 'Неможливість задати запитання на тендер після закінчення періоду прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire
  371 + #Run Keyword If '${TEST_NAME}' == 'Неможливість задати запитання на тендер після закінчення періоду уточнень' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire
  372 + Run Keyword If '${TEST_NAME}' == 'Можливість подати пропозицію першим учасником' Wait Until Keyword Succeeds 480 s 20 s Wait For TenderPeriod
  373 + Run Keyword If '${TEST_NAME}' == 'Можливість подати пропозицію другим учасником' Wait Until Keyword Succeeds 480 s 20 s Wait For TenderPeriod
  374 + Run Keyword If '${TEST_NAME}' == 'Відображення дати закінчення періоду блокування перед початком аукціону' Wait Until Keyword Succeeds 80 s 20 s Wait For AuctionPeriod
  375 + Run Keyword If '${TEST_NAME}' == 'Можливість підтвердити першу пропозицію кваліфікації' Wait Until Keyword Succeeds 80 s 20 s Wait For PreQualificationPeriod
  376 + Run Keyword If '${TEST_NAME}' == 'Можливість підтвердити другу пропозицію кваліфікації' Wait Until Keyword Succeeds 80 s 20 s Wait For PreQualificationPeriod
  377 + Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися завершення роботи мосту' Wait Until Keyword Succeeds 6000 s 20 s Wait For CompletePeriod
  378 + #cat Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися початку періоду очікування' Wait Until Keyword Succeeds 600 s 20 s Wait For PreQualificationsStandPeriod
  379 + Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися початку періоду очікування' Wait Until Keyword Succeeds 600 s 20 s Wait For ActiveStage2Pending
  380 + Run Keyword If '${TEST_NAME}' == 'Можливість перевести тендер в статус очікування обробки мостом' Wait Until Keyword Succeeds 600 s 20 s Wait For ActiveStage2Waiting
  381 + Run Keyword If '${TEST_NAME}' == 'Можливість дочекатись дати закінчення прийому пропозицій' and '${SUITE NAME}' == 'Tests Files.Complaints' Wait Until Keyword Succeeds 800 s 20 s Wait For NotTenderPeriod
  382 + Run Keyword If '${TEST_NAME}' == 'Можливість дочекатись дати початку періоду кваліфікації' and '${SUITE NAME}' == 'Tests Files.Complaints' Wait Until Keyword Succeeds 800 s 20 s Wait For QualificationsStandPeriod
  383 + Run Keyword If '${TEST_NAME}' == 'Відображення статусу успішного завершення тендера' Wait Until Keyword Succeeds 6000 s 20 s Wait For CompletePeriod
  384 +
  385 +Wait For EndEnquire
  386 + [Documentation] Очикування статусу закупівлі закінчення обговорення
  387 +
  388 + Reload Page
  389 + ${return_value} = Get text ${tender_status_value_locator}
  390 + Log Many CAT ${return_value}
  391 + Page Should Not Contain Element ${tender_status_active_tendering_value_locator}
  392 +
  393 +Wait For TenderPeriod
  394 + [Documentation] Очикування статусу закупівлі початку подачи пропозицій
  395 +
  396 + Reload Page
  397 + ${return_value} = Get text ${tender_status_value_locator}
  398 + Log Many CAT ${return_value}
  399 + Page Should Contain Element ${tender_status_active_tendering_value_locator}
  400 +
  401 +Wait For AuctionPeriod
  402 + [Documentation] Очикування статусу закупівлі аукціон
  403 +
  404 + Reload Page
  405 + ${return_value} = Get text ${tender_status_value_locator}
  406 + Log Many CAT ${return_value}
  407 + Page Should Contain Element ${tender_status_active_auction_value_locator}
  408 +
  409 +Wait For PreQualificationPeriod
  410 + [Documentation] Очикування статусу закупівлі аукціон
  411 +
  412 + Reload Page
  413 + ${return_value} = Get text ${tender_status_value_locator}
  414 + Log Many CAT ${return_value}
  415 + Page Should Contain Element ${tender_status_active_pre_qualification_value_locator}
  416 +
  417 +Wait For CompletePeriod
  418 + [Documentation] Очикування статусу закупівлі завершення
  419 +
  420 + Reload Page
  421 + ${return_value} = Get text ${tender_status_value_locator}
  422 + Log Many CAT ${return_value}
  423 + Page Should Contain Element ${tender_status_complete_value_locator}
  424 +
  425 +Wait For ActiveStage2Pending
  426 + [Documentation] Очикування статусу закупівлі завершення
  427 +
  428 + Reload Page
  429 + ${return_value} = Get text ${tender_status_value_locator}
  430 + Log Many CAT ${return_value}
  431 + Page Should Contain Element ${tender_status_active_stage2_pending_value_locator}
  432 +
  433 +Wait For ActiveStage2Waiting
  434 + [Documentation] Очикування статусу закупівлі завершення
  435 +
  436 + Reload Page
  437 + ${return_value} = Get text ${tender_status_value_locator}
  438 + Log Many CAT ${return_value}
  439 + Page Should Contain Element ${tender_status_active_stage2_waiting_value_locator}
  440 +
  441 +Wait For NotTenderPeriod
  442 + [Documentation] Очикування статусу закупівлі завершення
  443 +
  444 + Reload Page
  445 + ${return_value} = Get text ${tender_status_value_locator}
  446 + Log Many CAT ${return_value}
  447 + Page Should Contain Element ${tender_status_active_tendering_value_locator}
  448 +
  449 +Wait For QualificationsStandPeriod
  450 + [Documentation] Очикування статусу закупівлі завершення кваліфікації
  451 +
  452 + Reload Page
  453 + ${return_value} = Get text ${tender_status_value_locator}
  454 + Log Many CAT ${return_value}
  455 + Page Should Contain Element ${tender_status_active_qualification_value_locator}
  456 +
  457 +Wait For QualificationsPeriodEnd
  458 + [Documentation] Очикування дати завершення кваліфікації закупівлі
  459 +
  460 + Reload Page
  461 + ${complaintPeriod} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator}
  462 + Log Many CAT ${complaintPeriod}
  463 + Run Keyword If '${complaintPeriod}' == '' input text to exist visible input ${contract_contractform_date_start_input_locator} ${date_start}
  464 + :FOR ${INDEX} IN RANGE 1 60
  465 + \ Run Keyword If '${complaintPeriod}' != '' Exit For Loop
  466 + \ Reload Page
  467 + \ ${complaintPeriod} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator}
  468 +
  469 +Отримати інформацію із contracts[0].status
  470 + [Documentation] Отримати значення поля contracts[0].status
  471 +
  472 +# ${tmp} = get value by locator on opened page ${tender_contracts_0_status_value_locator}
  473 +# ${return_value} = Set Variable If '${tmp}' in 'Підписаний Новий' active other
  474 + Run Keyword If '${TEST_NAME}' == 'Відображення статусу підписаної угоди з постачальником переговорної процедури' Wait Until Keyword Succeeds 800 s 20 s Wait For contractactive
  475 + Run Keyword If '${TEST_NAME}' == 'Відображення статусу підписаної угоди з постачальником закупівлі' Wait Until Keyword Succeeds 800 s 20 s Wait For contractactive
  476 + ${return_value} = get value by locator on opened page ${tender_contracts_0_status_value_locator}
  477 + [return] ${return_value}
  478 +
  479 +Wait For contractactive
  480 + [Documentation] Очикування статусу закупівлі початку подачи пропозицій
  481 +
  482 + Reload Page
  483 + ${return_value} = get value by locator on opened page ${tender_contracts_0_status_value_locator}
  484 + Page Should Contain Element ${tender_contracts_status_active_value_locator}
  485 +
  486 +Отримати інформацію із awards.complaintPeriod.endDate
  487 + [Documentation] Отримати значення поля awards.complaintPeriod.endDate
  488 +
  489 +# run keyword and ignore error run keyword if '${mode}' in 'belowThreshold below_funders' Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate
  490 + run keyword and ignore error Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate
  491 +# run keyword and ignore error click visible element ${contract_form_0_open_btn_locator}
  492 +# wait until element is visible ${tender_awards_complaintPeriod_endDate_value_locator} 60
  493 + ${return_value} = run keyword if '${mode}' in 'negotiation' get value by locator on opened page ${tender_awards_negotiation_complaintPeriod_endDate_value_locator}
  494 + ... ELSE get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator}
  495 +# ${return_value} = parse_complaintPeriod_date ${return_value}
  496 + [return] ${return_value}
  497 +
  498 +Wait For complaintPeriodendDate
  499 + [Documentation] Очикування появи дати завершення подачи скарг на кваліфікацію закупівлі в belowThreshold та below_funders
  500 +
  501 + reload page
  502 + ${complaintPeriod} = run keyword and ignore error get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator}
  503 + :FOR ${INDEX} IN RANGE 1 60
  504 + \ Run Keyword If '${complaintPeriod}' != '' Exit For Loop
  505 + \ Reload Page
  506 + \ ${complaintPeriod} = get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator}
  507 +
  508 +Отримати інформацію із minimalStep.amount
  509 + [Documentation] Отримати значення поля minimalStep.amount для тендера tender_uaid.
  510 +
  511 +# ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id}
  512 + ${return_value} = run keyword if ${number_of_lots} > 0 get value by locator on opened page ${tender_lot_minimal_step_amount_value_locator} ${tender_lot_minimal_step_amount_value_type}
  513 + ... ELSE get value by locator on opened page ${tender_minimalStep_amount_value_locator} ${tender_lot_minimal_step_amount_value_type}
331 514 [return] ${return_value}
332 515
  516 +Отримати інформацію із awards[0].documents[0].title
  517 + [Documentation] Отримати значення поля minimalStep.amount для тендера tender_uaid.
  518 +
  519 +# ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id}
  520 + click visible element ${tender_awards_negotiation_documents_btn_locator}
  521 + ${return_value} = get value by locator on opened page ${tender_awards_0_documents_0_title_value_locator}
  522 + click visible element ${tender_awards_negotiation_documents_close_btn_locator}
  523 + [return] ${return_value}
  524 +
  525 +Wait For stage2button
  526 + [Documentation] Очикування кнопки переводу до другого етапу
  527 +
  528 + Reload Page
  529 + Page Should Contain Element ${tender_stage2_open_btn_locator}
  530 +
  531 +Отримати інформацію із qualificationPeriod.endDate
  532 + [Documentation] Отримати значення поля qualificationPeriod.endDate
  533 +
  534 +# run keyword and ignore error run keyword if '${mode}' in 'belowThreshold below_funders' Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate
  535 +# run keyword and ignore error Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate
  536 + ${return_value} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator}
  537 + ${return_value} = parse_complaintPeriod_date ${return_value}
  538 + [return] ${return_value}
  539 +
  540 +
  541 +
... ...
... ... @@ -4,9 +4,13 @@
4 4 ${tender_features_title_value_locator_tpl} = jquery=#lots .tabs__pane--visible .feature-list-wrapper [data-title*="%feature_id%"] .hidden.info-wrapper .title
5 5 ${tender_features_description_value_locator_tpl} = jquery=#lots .tabs__pane--visible .feature-list-wrapper [data-title*="%feature_id%"] .hidden.info-wrapper .description
6 6 ${tender_features_featureof_value_locator_tpl} = jquery=#lots .tabs__pane--visible .feature-list-wrapper [data-title*="%feature_id%"] .hidden.info-wrapper .featureOf
  7 +${tender_features_new_value_locator_tpl} = jquery=.info-row.features div[data-title*="%feature_id%"]
  8 +
7 9
8 10 #item view
  11 +${tender_items_new_value_locator_tpl} = jquery=.item-item-wrapper[data-title*="%item_id%"]
9 12 ${tender_items_description_value_locator_tpl} = jquery=#lots .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] div.textvalue
  13 +${tender_items_no_lot_description_value_locator_tpl} = jquery=.pseudo-table .item-item-wrapper[data-title*="%item_id%"] div.textvalue
10 14 ${tender_items_quantity_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .quantity-source
11 15 ${tender_items_quantity_value_type} = float
12 16 ${tender_items_unit_title_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .unit-title-source
... ... @@ -69,3 +73,102 @@ ${tender_lot_item_delivery_end_date_value_locator} = jquery=.tabs
69 73 ${tender_lot_item_delivery_latitude_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-latitude
70 74 ${tender_lot_item_delivery_longitude_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-longitude
71 75
  76 +#lots
  77 +${tender_lots_title_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:first
  78 +${tender_lots_description_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue.hidden
  79 +${tender_lots_value_amount_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
  80 +${tender_lots_value_amount_value_type} = float
  81 +${tender_lots_value_currency_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
  82 +${tender_lots_value_value_added_tax_included_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
  83 +${tender_lots_minimal_step_amount_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .minimal-step-source.hidden
  84 +${tender_lots_minimal_step_amount_value_type} = float
  85 +${tender_lots_minimal_step_amount_currency_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
  86 +${tender_lots_minimal_step_amount_value_added_tax_included_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden
  87 +
  88 +#docs and auction
  89 +${tender_new_doc_locator_tpl} = jquery=.docs__list .docs__item.js-item .doc__title:contains("%doc_id%")
  90 +${tender_new_doc_title_locator_tpl} = $('.docs__list .docs__item.js-item:contains("%doc_id%")').attr("data-title")
  91 +#${tender_new_doc_locator_tpl} = jquery=.docs__list .docs__item.js-item:first .doc__title:contains("%doc_id%")
  92 +${tender_auction_locator} = jquery=#auction-info
  93 +${tender_auction_input_locator} = $('#auction-info a[href*="https://auction-sandbox"]').attr("href")
  94 +${tender_auction_belowThreshold_locator} = jquery=#aside-part-pjax a[href*="https://auction-sandbox"]
  95 +${tender_auction_belowThreshold_input_locator} = jquery=#aside-part-pjax a[href*="https://auction-sandbox"]
  96 +${tender_auction_belowThreshold_value_locator} = $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href")
  97 +${tender_auctionPeriod_startDate_value_locator} = jquery=#tender-general-info .auction-start-date.hidden
  98 +${tender_auctionPeriod_endDate_value_locator} = jquery=#tender-general-info .auction-end-date.hidden
  99 +${tender_lots_0_auctionPeriod_endDate_value_locator} = jquery=#tender-general-info .auction-end-date.hidden
  100 +
  101 +
  102 +#wait for status
  103 +${tender_status_active_tendering_value_locator} = xpath=//*[contains(text(), "active.tendering")]
  104 +${tender_status_active_auction_value_locator} = xpath=//*[contains(text(), "active.auction")]
  105 +${tender_status_active_pre_qualification_value_locator} = xpath=//*[contains(text(), "active.pre-qualification")]
  106 +${tender_status_complete_value_locator} = xpath=//*[contains(text(), "complete")]
  107 +${tender_status_active_stage2_pending_value_locator} = xpath=//*[contains(text(), "active.stage2.pending")]
  108 +${tender_status_active_stage2_waiting_value_locator} = xpath=//*[contains(text(), "active.stage2.waiting")]
  109 +${tender_status_active_complete_value_locator} = xpath=//*[contains(text(), "active.complete")]
  110 +${tender_status_active_qualification_value_locator} = xpath=//*[contains(text(), "active.qualification")]
  111 +
  112 +#funders
  113 +${tender_funders_0_name_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .organization_name.hidden .definitions__value
  114 +${tender_funders_0_address_countryName_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .country.hidden .definitions__value
  115 +${tender_funders_0_address_locality_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .locality.hidden .definitions__value
  116 +${tender_funders_0_address_postalCode_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .postcode.hidden .definitions__value
  117 +${tender_funders_0_address_region_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .region.hidden .definitions__value
  118 +${tender_funders_0_address_streetAddress_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .street-address.hidden .definitions__value
  119 +${tender_funders_0_identifier_id_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_id .definitions__value
  120 +${tender_funders_0_identifier_legalName_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_legal_name.hidden .definitions__value
  121 +${tender_funders_0_identifier_scheme_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_scheme.hidden .definitions__value
  122 +
  123 +#negotiation
  124 +${tender_procuringEntity_contactPoint_name_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .contact-point-name.hidden .definitions__value
  125 +${tender_procuringEntity_contactPoint_telephone_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .contact-point-phone.hidden .definitions__value
  126 +${tender_procuringEntity_identifier_legalName_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .identifier_legal_name.hidden .definitions__value
  127 +${tender_procuringEntity_identifier_scheme_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .identifier_scheme.hidden .definitions__value
  128 +
  129 +${tender_awards_0_suppliers_0_contactPoint_telephone_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-phone.hidden .definitions__value
  130 +${tender_awards_0_suppliers_0_contactPoint_name_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-name.hidden .definitions__value
  131 +${tender_awards_0_suppliers_0_contactPoint_email_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-email.hidden .definitions__value
  132 +${tender_awards_0_suppliers_0_identifier_scheme_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .identifier_scheme.hidden .definitions__value
  133 +${tender_awards_0_suppliers_0_identifier_legalName_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .identifier_legal_name.hidden .definitions__value
  134 +${tender_awards_0_suppliers_0_address_countryName_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .country.hidden .definitions__value
  135 +${tender_awards_0_suppliers_0_address_locality_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .locacity.hidden .definitions__value
  136 +${tender_awards_0_suppliers_0_address_postalCode_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .postcode.hidden .definitions__value
  137 +${tender_awards_0_suppliers_0_address_region_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .region.hidden .definitions__value
  138 +${tender_awards_0_suppliers_0_address_streetAddress_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .street-address.hidden .definitions__value
  139 +
  140 +#esco
  141 +${tender_NBUdiscountRate_value_locator} = jquery=#tender-general-info .nbu-discount-rate-source.hidden
  142 +${tender_NBUdiscountRate_value_type} = float
  143 +${tender_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden
  144 +${tender_minimalStepPercentage_value_type} = float
  145 +${tender_fundingKind_value_locator} = jquery=#tender-general-info .funding-kind-source.hidden
  146 +${tender_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden
  147 +${tender_yearlyPaymentsPercentageRange_value_type} = float
  148 +${tender_lots_0_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden
  149 +${tender_lots_0_minimalStepPercentage_value_type} = float
  150 +${tender_lots_0_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden
  151 +${tender_lots_0_yearlyPaymentsPercentageRange_value_type} = float
  152 +
  153 +#awards
  154 +${tender_awards_0_complaintPeriod_endDate_value_locator} = jquery=#tender-general-info .complaint-period .value .end-date
  155 +${tender_awards_1_complaintPeriod_endDate_value_locator} = jquery=#tender-general-info .complaint-period .value .end-date
  156 +${tender_awards_complaintPeriod_endDate_value_locator} = jquery=.award-info-wrapper.hidden .complaint-period-end-date
  157 +${tender_awards_negotiation_complaintPeriod_endDate_value_locator} = jquery=#bids-pjax .pseudo-table__cell .end-date
  158 +#${tender_awards_complaintPeriod_endDate_value_locator} = jquery=#tender-contract-form .js-award-complaint-period-wrapper .end-date
  159 +${tender_awards_negotiation_documents_btn_locator} = jquery=[href*="/tender/view-qualification-result-documents?award"]
  160 +${tender_awards_negotiation_documents_close_btn_locator} = jquery=.modal.fade.fancybox-content .modal-footer .btn.btn-default
  161 +${tender_awards_0_documents_0_title_value_locator} = jquery=.doc__table_title a[href*="https://public-docs-sandbox.prozorro.gov.ua"]
  162 +${tender_awards_0_status_value_locator} = jquery=.award-info-wrapper.hidden .status-source
  163 +
  164 +#status contract
  165 +#${tender_contracts_0_status_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .definitions__item--offset-big .badge__text
  166 +${tender_contracts_0_status_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .status-source.hidden
  167 +${tender_contracts_status_active_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .status-source.hidden:contains(active)
  168 +
  169 +${wait_msg_contract} = Завантаження контракту буде
  170 +
  171 +#framework_agreement
  172 +${tender_maxAwardsCount_value_locator} = jquery=#tender-general-info .max-award-count.hidden
  173 +${tender_agreementDuration_value_locator} = jquery=#tender-general-info .agreement-duration
  174 +${tender_agreements_0_status_value_locator} = jquery=#agreement-contracts-list .agreement-info-wrapper .status-source.hidden
... ...
Please register or login to post a comment