Commit cbcf25725ee3dc20e87d3008fd5e560aac980323

Authored by yboi
2 parents db5165a5 f3c95be4

тестовий коміт

@@ -5,15 +5,6 @@ Library DateTime @@ -5,15 +5,6 @@ Library DateTime
5 5
6 *** Variables *** 6 *** Variables ***
7 ${locator.tenderId} jquery=h3 7 ${locator.tenderId} jquery=h3
8 -${locator.title} jquery=tender-subject-info>div.row:contains("Назва закупівлі:")>:eq(1)>  
9 -${locator.description} jquery=tender-subject-info>div.row:contains("Детальний опис закупівлі:")>:eq(1)>  
10 -${locator.minimalStep.amount} jquery=tender-subject-info>div.row:contains("Мінімальний крок аукціону, грн.:")>:eq(1)>  
11 -${locator.procuringEntity.name} jquery=customer-info>div.row:contains("Найменування:")>:eq(1)>  
12 -${locator.value.amount} jquery=tender-subject-info>div.row:contains("Повний доступний бюджет закупівлі, грн.:")>:eq(1)>  
13 -${locator.tenderPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок прийому пропозицій:")>:eq(1)>  
14 -${locator.tenderPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення прийому пропозицій:")>:eq(1)>  
15 -${locator.enquiryPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок періоду уточнень:")>:eq(1)>  
16 -${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення періоду уточнень:")>:eq(1)>  
17 ##Використовую такий шлях у кожного буде мінятись /yboi/. Міняйте на сві шлях до файлу 8 ##Використовую такий шлях у кожного буде мінятись /yboi/. Міняйте на сві шлях до файлу
18 ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx 9 ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
19 10
@@ -25,7 +16,6 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx @@ -25,7 +16,6 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
25 Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]} 16 Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
26 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} 17 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
27 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} 18 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
28 -  
29 # login 19 # login
30 Wait Until Page Contains Element id=inputUsername 100 20 Wait Until Page Contains Element id=inputUsername 100
31 Input text id=inputUsername ${USERS.users['${username}'].login} 21 Input text id=inputUsername ${USERS.users['${username}'].login}
@@ -38,31 +28,30 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx @@ -38,31 +28,30 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
38 [Documentation] 28 [Documentation]
39 ... ${ARGUMENTS[0]} == username 29 ... ${ARGUMENTS[0]} == username
40 ... ${ARGUMENTS[1]} == tender_data 30 ... ${ARGUMENTS[1]} == tender_data
41 -  
42 - ${items}= Get From Dictionary ${ARGUMENTS[1].data} items  
43 - ${title}= Get From Dictionary ${ARGUMENTS[1].data} title  
44 - ${description}= Get From Dictionary ${ARGUMENTS[1].data} description  
45 - ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount  
46 - ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount  
47 - ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description 31 + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]}
  32 + ${items}= Get From Dictionary ${tender_data.data} items
  33 + ${title}= Get From Dictionary ${tender_data.data} title
  34 + ${description}= Get From Dictionary ${tender_data.data} description
  35 + ${budget}= Get From Dictionary ${tender_data.data.value} amount
  36 + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount
  37 + ${items_description}= Get From Dictionary ${tender_data.data} description
48 ${quantity}= Get From Dictionary ${items[0]} quantity 38 ${quantity}= Get From Dictionary ${items[0]} quantity
49 ${cpv}= Get From Dictionary ${items[0].classification} id 39 ${cpv}= Get From Dictionary ${items[0].classification} id
50 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description 40 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
51 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id 41 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
52 ${unit}= Get From Dictionary ${items[0].unit} name 42 ${unit}= Get From Dictionary ${items[0].unit} name
53 - ${start_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate 43 + ${start_date}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate
54 ${start_date}= convert_date_to_etender_format ${start_date} 44 ${start_date}= convert_date_to_etender_format ${start_date}
55 - ${start_time}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate 45 + ${start_time}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate
56 ${start_time}= convert_time_to_etender_format ${start_time} 46 ${start_time}= convert_time_to_etender_format ${start_time}
57 - ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate 47 + ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate
58 ${end_date}= convert_date_to_etender_format ${end_date} 48 ${end_date}= convert_date_to_etender_format ${end_date}
59 - ${end_time}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate 49 + ${end_time}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate
60 ${end_time}= convert_time_to_etender_format ${end_time} 50 ${end_time}= convert_time_to_etender_format ${end_time}
61 - ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate 51 + ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate
62 ${enquiry_end_date}= convert_date_to_etender_format ${enquiry_end_date} 52 ${enquiry_end_date}= convert_date_to_etender_format ${enquiry_end_date}
63 - ${enquiry_end_time}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate 53 + ${enquiry_end_time}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate
64 ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time} 54 ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time}
65 -  
66 Selenium2Library.Switch Browser ${ARGUMENTS[0]} 55 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
67 Wait Until Page Contains Мої закупівлі 100 56 Wait Until Page Contains Мої закупівлі 100
68 Click Element xpath=//a[contains(@class, 'ng-binding')][./text()='Мої закупівлі'] 57 Click Element xpath=//a[contains(@class, 'ng-binding')][./text()='Мої закупівлі']
@@ -102,29 +91,34 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx @@ -102,29 +91,34 @@ ${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
102 Wait Until Page Contains [ТЕСТУВАННЯ] 100 91 Wait Until Page Contains [ТЕСТУВАННЯ] 100
103 Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a 92 Click Element xpath=//table[contains(@class, 'table table-hover table-striped table-bordered ng-scope ng-table')]//tr[1]//a
104 ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid 93 ${tender_UAid}= Wait Until Keyword Succeeds 240sec 2sec get tender UAid
105 -## harcode Idis bacause issues on the E-tender side, to remove, 1 line: 94 +### harcode Idis bacause issues on the E-tender side, to remove, 1 line:
106 ${tender_UAid}= Convert To String UA-2015-08-03-000025 95 ${tender_UAid}= Convert To String UA-2015-08-03-000025
107 - ${id}= Oтримати internal id по UAid ${ARGUMENTS[0]} ${tender_UAid}  
108 - ${Ids} Create List ${tender_UAid} ${id} 96 + ${Ids}= Convert To String ${tender_UAid}
  97 + Run keyword if '${mode}' == 'multi' Set Multi Ids ${ARGUMENTS[0]} ${tender_UAid}
109 [return] ${Ids} 98 [return] ${Ids}
110 99
  100 +Set Multi Ids
  101 + [Arguments] @{ARGUMENTS}
  102 + [Documentation]
  103 + ... ${ARGUMENTS[0]} == username
  104 + ... ${ARGUMENTS[1]} == ${tender_UAid}
  105 + ${id}= Oтримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  106 + ${Ids}= Create List ${tender_UAid} ${id}
111 107
112 get tender UAid 108 get tender UAid
113 ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")] 109 ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")]
114 ${tender_UAid}= Get Substring ${tender_UAid} 7 27 110 ${tender_UAid}= Get Substring ${tender_UAid} 7 27
115 111
116 -  
117 Oтримати internal id по UAid 112 Oтримати internal id по UAid
118 [Arguments] @{ARGUMENTS} 113 [Arguments] @{ARGUMENTS}
119 [Documentation] 114 [Documentation]
120 ... ${ARGUMENTS[0]} == username 115 ... ${ARGUMENTS[0]} == username
121 - ... ${ARGUMENTS[1]} == tenderid 116 + ... ${ARGUMENTS[1]} == ${tender_UAid}
122 etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} 117 etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
123 ${current_location}= Get Location 118 ${current_location}= Get Location
124 ${tender_id}= Fetch From Right ${current_location} / 119 ${tender_id}= Fetch From Right ${current_location} /
125 ## harcode Idis bacause issues on the E-tender side, to remove, 1 line: 120 ## harcode Idis bacause issues on the E-tender side, to remove, 1 line:
126 ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2 121 ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2
127 - log ${tender_id}  
128 [return] ${tender_id} 122 [return] ${tender_id}
129 123
130 Додати предмет 124 Додати предмет
@@ -170,8 +164,7 @@ Oтримати internal id по UAid @@ -170,8 +164,7 @@ Oтримати internal id по UAid
170 [Arguments] @{ARGUMENTS} 164 [Arguments] @{ARGUMENTS}
171 [Documentation] 165 [Documentation]
172 ... ${ARGUMENTS[0]} == username 166 ... ${ARGUMENTS[0]} == username
173 - ... ${ARGUMENTS[1]} == tenderId  
174 - 167 + ... ${ARGUMENTS[1]} == ${TENDER_UAID}
175 Switch browser ${ARGUMENTS[0]} 168 Switch browser ${ARGUMENTS[0]}
176 Go to ${BROKERS['${USERS.users['${username}'].broker}'].url} 169 Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
177 Wait Until Page Contains Список закупівель 10 170 Wait Until Page Contains Список закупівель 10
@@ -184,6 +177,57 @@ Oтримати internal id по UAid @@ -184,6 +177,57 @@ Oтримати internal id по UAid
184 sleep 1 177 sleep 1
185 Capture Page Screenshot 178 Capture Page Screenshot
186 179
  180 +Подати цінову пропозицію
  181 + [Arguments] @{ARGUMENTS}
  182 + [Documentation]
  183 + ... ${ARGUMENTS[0]} == username
  184 + ... ${ARGUMENTS[1]} == ${TENDER_UAID}
  185 + ... ${ARGUMENTS[2]} == test_bid_data
  186 +
  187 + ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount
  188 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  189 + Wait Until Page Contains Інформація про процедуру закупівлі 100
  190 + Wait Until Page Contains Element id=amount 10
  191 + Input text id=amount ${bid}
  192 + Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції']
  193 +
  194 +Задати питання
  195 + [Arguments] @{ARGUMENTS}
  196 + [Documentation]
  197 + ... ${ARGUMENTS[0]} = username
  198 + ... ${ARGUMENTS[1]} = ${TENDER_UAID}
  199 + ... ${ARGUMENTS[2]} = question_data
  200 +
  201 + ${title}= Get From Dictionary ${ARGUMENTS[2].data} title
  202 + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
  203 +
  204 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  205 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  206 +
  207 + Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100
  208 + Click Element jquery=a[href^="#/addQuestion/"]
  209 + Wait Until Page Contains Element id=title
  210 + Input text id=title ${title}
  211 + Input text id=description ${description}
  212 + Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
  213 +
  214 +Відповісти на питання
  215 + [Arguments] @{ARGUMENTS}
  216 + [Documentation]
  217 + ... ${ARGUMENTS[0]} = username
  218 + ... ${ARGUMENTS[1]} = ${TENDER_UAID}
  219 + ... ${ARGUMENTS[2]} = 0
  220 + ... ${ARGUMENTS[3]} = answer_data
  221 +
  222 + ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer
  223 +
  224 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  225 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  226 +
  227 + Click Element xpath=//div[div/pre[1]]/div[1]
  228 + Input text xpath=//div[textarea]/textarea ${answer}
  229 + Click Element xpath=//div[textarea]/span/button[1]
  230 +
187 обновити сторінку з тендером 231 обновити сторінку з тендером
188 [Arguments] @{ARGUMENTS} 232 [Arguments] @{ARGUMENTS}
189 [Documentation] 233 [Documentation]
@@ -319,56 +363,6 @@ Oтримати internal id по UAid @@ -319,56 +363,6 @@ Oтримати internal id по UAid
319 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last> 363 ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last>
320 [return] ${return_value} 364 [return] ${return_value}
321 365
322 -Подати цінову пропозицію  
323 - [Arguments] @{ARGUMENTS}  
324 - [Documentation]  
325 - ... ${ARGUMENTS[0]} == username  
326 - ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID}  
327 - ... ${ARGUMENTS[2]} == test_bid_data  
328 -  
329 - ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount  
330 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
331 - Wait Until Page Contains Інформація про процедуру закупівлі 100  
332 - Wait Until Page Contains Element id=amount 10  
333 - Input text id=amount ${bid}  
334 - Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції']  
335 -  
336 -Задати питання  
337 - [Arguments] @{ARGUMENTS}  
338 - [Documentation]  
339 - ... ${ARGUMENTS[0]} = username  
340 - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}  
341 - ... ${ARGUMENTS[2]} = question_data  
342 -  
343 - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title  
344 - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description  
345 -  
346 - Selenium2Library.Switch Browser ${ARGUMENTS[0]}  
347 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}  
348 -  
349 - Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100  
350 - Click Element jquery=a[href^="#/addQuestion/"]  
351 - Wait Until Page Contains Element id=title  
352 - Input text id=title ${title}  
353 - Input text id=description ${description}  
354 - Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']  
355 -  
356 -Відповісти на питання  
357 - [Arguments] @{ARGUMENTS}  
358 - [Documentation]  
359 - ... ${ARGUMENTS[0]} = username  
360 - ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}  
361 - ... ${ARGUMENTS[2]} = 0  
362 - ... ${ARGUMENTS[3]} = answer_data  
363 -  
364 - ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer  
365 -  
366 - Selenium2Library.Switch Browser ${ARGUMENTS[0]}  
367 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}  
368 -  
369 - Click Element xpath=//div[div/pre[1]]/div[1]  
370 - Input text xpath=//div[textarea]/textarea ${answer}  
371 - Click Element xpath=//div[textarea]/span/button[1]  
372 366
373 Завантажити документ 367 Завантажити документ
374 [Arguments] @{ARGUMENTS} 368 [Arguments] @{ARGUMENTS}
@@ -5,16 +5,6 @@ Library DateTime @@ -5,16 +5,6 @@ Library DateTime
5 5
6 *** Variables *** 6 *** Variables ***
7 ${locator.tenderId} jquery=h3 7 ${locator.tenderId} jquery=h3
8 -${locator.title} jquery=tender-subject-info>div.row:contains("Назва закупівлі:")>:eq(1)>  
9 -${locator.description} jquery=tender-subject-info>div.row:contains("Детальний опис закупівлі:")>:eq(1)>  
10 -${locator.minimalStep.amount} jquery=tender-subject-info>div.row:contains("Мінімальний крок аукціону, грн.:")>:eq(1)>  
11 -${locator.procuringEntity.name} jquery=customer-info>div.row:contains("Найменування:")>:eq(1)>  
12 -${locator.value.amount} jquery=tender-subject-info>div.row:contains("Повний доступний бюджет закупівлі, грн.:")>:eq(1)>  
13 -${locator.tenderPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок прийому пропозицій:")>:eq(1)>  
14 -${locator.tenderPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення прийому пропозицій:")>:eq(1)>  
15 -${locator.enquiryPeriod.startDate} jquery=tender-procedure-info>div.row:contains("Початок періоду уточнень:")>:eq(1)>  
16 -${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contains("Завершення періоду уточнень:")>:eq(1)>  
17 -  
18 8
19 *** Keywords *** 9 *** Keywords ***
20 Підготувати клієнт для користувача 10 Підготувати клієнт для користувача
@@ -24,16 +14,11 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai @@ -24,16 +14,11 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
24 Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]} 14 Open Browser ${BROKERS['${USERS.users['${ARGUMENTS[0]}'].broker}'].url} ${USERS.users['${ARGUMENTS[0]}'].browser} alias=${ARGUMENTS[0]}
25 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} 15 Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
26 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} 16 Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
27 -  
28 -# login  
29 - Wait Until Page Contains Element name=siteLogin 100  
30 - Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login}  
31 - Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password}  
32 - Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input 17 + Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]}
33 18
34 Wait Until Page Contains Element jquery=a[href="/cabinet"] 19 Wait Until Page Contains Element jquery=a[href="/cabinet"]
35 Click Element jquery=a[href="/cabinet"] 20 Click Element jquery=a[href="/cabinet"]
36 - Wait Until Page Contains Element name=email 100 21 + Wait Until Page Contains Element name=email 10
37 Input text name=email mail 22 Input text name=email mail
38 Sleep 1 23 Sleep 1
39 Input text name=email ${USERS.users['${username}'].login} 24 Input text name=email ${USERS.users['${username}'].login}
@@ -42,20 +27,29 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai @@ -42,20 +27,29 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
42 Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100 27 Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 100
43 Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 28 Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет']
44 29
  30 +Pre Login
  31 + [Arguments] @{ARGUMENTS}
  32 + [Documentation]
  33 + ... ${ARGUMENTS[0]} == username
  34 + Wait Until Page Contains Element name=siteLogin 10
  35 + Input text name=siteLogin ${BROKERS['${USERS.users['${username}'].broker}'].login}
  36 + Input text name=sitePass ${BROKERS['${USERS.users['${username}'].broker}'].password}
  37 + Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input
  38 +
45 Створити тендер 39 Створити тендер
46 [Arguments] @{ARGUMENTS} 40 [Arguments] @{ARGUMENTS}
47 [Documentation] 41 [Documentation]
48 ... ${ARGUMENTS[0]} == username 42 ... ${ARGUMENTS[0]} == username
49 ... ${ARGUMENTS[1]} == tender_data 43 ... ${ARGUMENTS[1]} == tender_data
50 -  
51 - ${items}= Get From Dictionary ${ARGUMENTS[1].data} items  
52 - ${title}= Get From Dictionary ${ARGUMENTS[1].data} title  
53 - ${description}= Get From Dictionary ${ARGUMENTS[1].data} description  
54 - ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount  
55 - ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount  
56 - ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description 44 + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]}
  45 + ${items}= Get From Dictionary ${tender_data.data} items
  46 + ${title}= Get From Dictionary ${tender_data.data} title
  47 + ${description}= Get From Dictionary ${tender_data.data} description
  48 + ${budget}= Get From Dictionary ${tender_data.data.value} amount
  49 + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount
  50 + ${items_description}= Get From Dictionary ${tender_data.data} description
57 ${quantity}= Get From Dictionary ${items[0]} quantity 51 ${quantity}= Get From Dictionary ${items[0]} quantity
58 - ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName 52 + ${countryName}= Get From Dictionary ${tender_data.data.procuringEntity.address} countryName
59 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate 53 ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate
60 ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} 54 ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date}
61 ${cpv}= Get From Dictionary ${items[0].classification} description_ua 55 ${cpv}= Get From Dictionary ${items[0].classification} description_ua
@@ -64,9 +58,9 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai @@ -64,9 +58,9 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
64 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description 58 ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
65 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id 59 ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
66 ${dkpp_id1}= Replace String ${dkpp_id} - _ 60 ${dkpp_id1}= Replace String ${dkpp_id} - _
67 - ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate 61 + ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate
68 ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date} 62 ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date}
69 - ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate 63 + ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate
70 ${end_date}= convert_date_to_slash_format ${end_date} 64 ${end_date}= convert_date_to_slash_format ${end_date}
71 65
72 Selenium2Library.Switch Browser ${ARGUMENTS[0]} 66 Selenium2Library.Switch Browser ${ARGUMENTS[0]}
@@ -103,11 +97,18 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai @@ -103,11 +97,18 @@ ${locator.enquiryPeriod.endDate} jquery=tender-procedure-info>div.row:contai
103 Wait Until Page Contains Element xpath=//a[contains(@class, 'button pubBtn')] 100 97 Wait Until Page Contains Element xpath=//a[contains(@class, 'button pubBtn')] 100
104 Click Element xpath=//a[contains(@class, 'button pubBtn')] 98 Click Element xpath=//a[contains(@class, 'button pubBtn')]
105 Wait Until Page Contains Тендер опубліковано 100 99 Wait Until Page Contains Тендер опубліковано 100
106 - ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2]  
107 - ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2]  
108 - ${Ids} Create List ${tender_UAid} ${id} 100 + ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2]
  101 + ${Ids}= Convert To String ${tender_UAid}
  102 + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid}
109 [return] ${Ids} 103 [return] ${Ids}
110 104
  105 +Set Multi Ids
  106 + [Arguments] @{ARGUMENTS}
  107 + [Documentation]
  108 + ... ${ARGUMENTS[1]} == ${tender_UAid}
  109 + ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2]
  110 + ${Ids}= Create List ${tender_UAid} ${id}
  111 +
111 Додати предмет 112 Додати предмет
112 [Arguments] @{ARGUMENTS} 113 [Arguments] @{ARGUMENTS}
113 [Documentation] 114 [Documentation]
  1 +*** Setting ***
  2 +Library Selenium2Screenshots
  3 +Library String
  4 +Library DateTime
  5 +
  6 +*** Variables ***
  7 +${locator.tenderId} jquery=h3
  8 +
  9 +*** Keywords ***
  10 +Підготувати дані для оголошення тендера
  11 + ${INITIAL_TENDER_DATA}= prepare_test_tender_data
  12 + [return] ${INITIAL_TENDER_DATA}
  13 +
  14 +Підготувати клієнт для користувача
  15 + [Arguments] @{ARGUMENTS}
  16 + [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
  17 + ... ${ARGUMENTS[0]} == username
  18 +
  19 + Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
  20 + Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
  21 + Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
  22 + Wait Until Page Contains Element id=indexpage_login 100
  23 + Click Element id=indexpage_login
  24 + Wait Until Page Contains Element id=password 100
  25 + Input text id=login-email ${USERS.users['${username}'].login}
  26 + Input text id=password ${USERS.users['${username}'].password}
  27 + Click Element id=submit-login-button
  28 + Wait Until Page Contains Element xpath=//div[@class="introjs-overlay"] 100
  29 +
  30 +Створити тендер
  31 + [Arguments] @{ARGUMENTS}
  32 + [Documentation]
  33 + ... ${ARGUMENTS[0]} == username
  34 + ... ${ARGUMENTS[1]} == tender_data
  35 +
  36 +## Inicialisation
  37 + ${items}= Get From Dictionary ${ARGUMENTS[1].data} items
  38 + ${title}= Get From Dictionary ${ARGUMENTS[1].data} title
  39 + ${description}= Get From Dictionary ${ARGUMENTS[1].data} description
  40 + ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount
  41 + ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount
  42 + ${start_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} startDate
  43 + ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate
  44 + ${enquiry_start_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} startDate
  45 + ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate
  46 +
  47 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  48 + Go To ${USERS.users['${username}'].homepage}
  49 + Wait Until Page Contains Element xpath=//a[@href="#/create-tender"] 100
  50 + Click Link xpath=//a[@href="#/create-tender"]
  51 + Wait Until Page Contains Новый тендер 100
  52 +# Input fields tender
  53 + Input text name=tenderName ${title}
  54 + Input text name=tenderDescription ${description}
  55 + Input text id=budget ${budget}
  56 + Click Element id=with-nds
  57 + Input text id=step ${step_rate}
  58 +# Add Item(s)
  59 + Додати придмет ${items[0]} 0
  60 + Run Keyword If '${mode}' == 'multi' Додати багато придметів items
  61 +# Set tender datatimes
  62 + Set datetime start-date-registration ${start_date}
  63 + Set datetime end-date-registration ${end_date}
  64 + Set datetime end-date-qualification ${enquiry_end_date}
  65 + Set datetime start-date-qualification ${enquiry_start_date}
  66 +# Save
  67 + Click Element xpath=//button[@class="btn btn-lg btn-default cancel pull-right ng-binding"]
  68 + Wait Until Page Contains Element xpath=//div[@ng-click="goHome()"] 30
  69 + Click Element xpath=//div[@ng-click="goHome()"]
  70 +# Get Ids
  71 + Wait Until Page Contains Element xpath=//div[@class="title"] 30
  72 + ${tender_UAid}= Get Text xpath=//div[@class="title"]
  73 + ${Ids}= Convert To String ${tender_UAid}
  74 + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid}
  75 + [return] ${Ids}
  76 +
  77 +Set Multi Ids
  78 + [Arguments] @{ARGUMENTS}
  79 + [Documentation]
  80 + ... ${ARGUMENTS[0]} == ${tender_UAid}
  81 + ${current_location}= Get Location
  82 + ${id}= Get Substring ${current_location} -41 -9
  83 + ${Ids}= Create List ${tender_UAid} ${id}
  84 +
  85 +Set datetime
  86 + [Arguments] @{ARGUMENTS}
  87 + [Documentation]
  88 + ... ${ARGUMENTS[0]} == control_id
  89 + ... ${ARGUMENTS[1]} == date
  90 +#Pick Date
  91 + Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/../span[@class="calendar-btn"]
  92 + Wait Until Page Contains Element xpath=//td[@class="text-center ng-scope"] 30
  93 + ${datapicker_id}= Get Element Attribute xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@class="text-center ng-scope"]@id
  94 + ${datapicker_id}= Get Substring ${datapicker_id} 0 -1
  95 + ${date_index}= newtend_date_picker_index ${ARGUMENTS[1]}
  96 + ${datapicker_id}= Convert To String ${datapicker_id}${date_index}
  97 + Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@id="${datapicker_id}"]/button
  98 +#Set time
  99 + ${hous}= Get Substring ${ARGUMENTS[1]} 11 13
  100 + ${minutes}= Get Substring ${ARGUMENTS[1]} 14 16
  101 + Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="hours"] ${hous}
  102 + Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="minutes"] ${minutes}
  103 +
  104 +Додати придмет
  105 + [Arguments] @{ARGUMENTS}
  106 + [Documentation]
  107 + ... ${ARGUMENTS[0]} == items_n
  108 + ... ${ARGUMENTS[1]} == index
  109 +## Get values for item
  110 + ${items_description}= Get From Dictionary ${ARGUMENTS[0]} description
  111 + ${quantity}= Get From Dictionary ${ARGUMENTS[0]} quantity
  112 + ${cpv}= Get From Dictionary ${ARGUMENTS[0].classification} description_ua
  113 + ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description
  114 + ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id
  115 + ${unit}= Get From Dictionary ${ARGUMENTS[0].unit} name
  116 + ${deliverydate_end_date}= Get From Dictionary ${ARGUMENTS[0].deliveryDate} endDate
  117 + ${countryName}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} countryName
  118 + ${ZIP}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} postalCode
  119 + ${region}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} region
  120 + ${locality}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} locality
  121 + ${streetAddress}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} streetAddress
  122 +# Add item
  123 + Input text id=itemDescription${ARGUMENTS[1]} ${items_description}
  124 + Input text id=quantity${ARGUMENTS[1]} ${quantity}
  125 + Click Element xpath=//a[contains(text(), "единицы измерения")]
  126 + Click Element xpath=//a[contains(text(), "единицы измерения")]/..//a[contains(text(), '${unit}')]
  127 +# Set CPV
  128 + Click Element id=classifier1${ARGUMENTS[1]}
  129 + Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100
  130 + Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${cpv}
  131 + Wait Until Page Contains Element xpath=//span[contains(text(),'${cpv}')] 20
  132 + Click Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"]
  133 + Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"]
  134 +# Set ДКПП
  135 + Click Element id=classifier2${ARGUMENTS[1]}
  136 + Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100
  137 + Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${dkpp_desc}
  138 + Wait Until Page Contains Element xpath=//span[contains(text(),'${dkpp_id}')] 100
  139 + Click Element xpath=//span[contains(text(),'${dkpp_id}')]/../..//input[@class="ng-pristine ng-untouched ng-valid"]
  140 + Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"]
  141 +# Set Delivery Address
  142 + Click Element id=deliveryAddress${ARGUMENTS[1]}
  143 + Wait Until Page Contains Element xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] 100
  144 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${countryName}
  145 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${ZIP}
  146 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${region}
  147 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${locality}
  148 + Input text xpath=//input[1][@class="form-control ng-pristine ng-untouched ng-valid"] ${streetAddress}
  149 + Click Element xpath=//button[@class="btn btn-lg single-btn ng-binding"]
  150 +# Set Item Datetime
  151 + Set datetime end-date-delivery${ARGUMENTS[1]} ${deliverydate_end_date}
  152 +
  153 +Додати багато придметів
  154 + [Arguments] @{ARGUMENTS}
  155 + [Documentation]
  156 + ... ${ARGUMENTS[0]} == items
  157 + ${Items_length}= Get Length ${items}
  158 + : FOR ${INDEX} IN RANGE 1 ${Items_length}
  159 + \ Click Element xpath=//a[@class="icon-black plus-black remove-field ng-scope"]
  160 + \ Додати придмет ${items[${INDEX}]} ${INDEX}
  161 +
  162 +
  163 +
  164 +
  165 +
  166 +
  167 +
  168 +#### Not reworked for Newtend ####
  169 +
  170 +Oтримати internal id по UAid
  171 + [Arguments] @{ARGUMENTS}
  172 + [Documentation]
  173 + ... ${ARGUMENTS[0]} == username
  174 + ... ${ARGUMENTS[1]} == tenderid
  175 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  176 + ${current_location}= Get Location
  177 + ${tender_id}= Fetch From Right ${current_location} /
  178 +### harcode Idis bacause issues on the E-tender side, to remove, 1 line:
  179 + ${tender_id}= Convert To String 94ffe180019d459787aafe290cd300e2
  180 + log ${internal_id}
  181 + [return] ${internal_id}
  182 +
  183 +Пошук тендера по ідентифікатору
  184 + [Arguments] @{ARGUMENTS}
  185 + [Documentation]
  186 + ... ${ARGUMENTS[0]} == username
  187 + ... ${ARGUMENTS[1]} == tenderId
  188 +
  189 + Switch browser ${ARGUMENTS[0]}
  190 + Go to ${BROKERS['${USERS.users['${username}'].broker}'].url}
  191 + Wait Until Page Contains Список закупівель 10
  192 + sleep 1
  193 + Input Text jquery=input[ng-change='search()'] ${ARGUMENTS[1]}
  194 + Click Link jquery=a[ng-click='search()']
  195 + sleep 2
  196 + Click Link jquery=a[href^="#/tenderDetailes"]
  197 + Wait Until Page Contains ${ARGUMENTS[1]} 10
  198 + sleep 1
  199 + Capture Page Screenshot
  200 +
  201 +обновити сторінку з тендером
  202 + [Arguments] @{ARGUMENTS}
  203 + [Documentation]
  204 + ... ${ARGUMENTS[0]} == username
  205 + ... ${ARGUMENTS[1]} == tenderId
  206 + ... ${ARGUMENTS[2]} == id
  207 + ${current_location}= Get Location
  208 + Run keyword if '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Reload Page
  209 + Run keyword unless '${BROKERS['${USERS.users['${username}'].broker}'].url}/#/tenderDetailes/${ARGUMENTS[2]}'=='${current_location}' Пошук тендера по ідентифікатору @{ARGUMENTS}
  210 + Wait Until Page Contains ${ARGUMENTS[1]} 10
  211 + sleep 1
  212 +
  213 +отримати інформацію із тендера
  214 + [Arguments] @{ARGUMENTS}
  215 + [Documentation]
  216 + ... ${ARGUMENTS[0]} == username
  217 + ... ${ARGUMENTS[1]} == fieldname
  218 + Switch browser ${ARGUMENTS[0]}
  219 + ${return_value}= run keyword отримати інформацію про ${ARGUMENTS[1]}
  220 + [return] ${return_value}
  221 +
  222 +Відмітити на сторінці поле з тендера
  223 + [Arguments] ${fieldname} ${locator}
  224 + ${last_note_id}= Add pointy note ${locator} Found ${fieldname} width=200 position=bottom
  225 + Align elements horizontally ${locator} ${last_note_id}
  226 + sleep 1
  227 + Remove element ${last_note_id}
  228 +
  229 +Отримати тест із поля і показати на сторінці
  230 + [Arguments] ${fieldname}
  231 + sleep 3
  232 +# відмітити на сторінці поле з тендера ${fieldname} ${locator.${fieldname}}
  233 + ${return_value}= Get Text ${locator.${fieldname}}
  234 + [return] ${return_value}
  235 +
  236 +отримати інформацію про tenderId
  237 + ${return_value}= Отримати тест із поля і показати на сторінці tenderId
  238 + [return] ${return_value.split(' ')[1]}
  239 +
  240 +отримати інформацію про title
  241 + ${return_value}= Отримати тест із поля і показати на сторінці title
  242 + [return] ${return_value}
  243 +
  244 +отримати інформацію про description
  245 + ${return_value}= Отримати тест із поля і показати на сторінці description
  246 + [return] ${return_value}
  247 +
  248 +отримати інформацію про minimalStep.amount
  249 + ${return_value}= Отримати тест із поля і показати на сторінці minimalStep.amount
  250 + ${return_value}= Convert To Number ${return_value.split(' ')[0]}
  251 + [return] ${return_value}
  252 +
  253 +отримати інформацію про procuringEntity.name
  254 + ${return_value}= Отримати тест із поля і показати на сторінці procuringEntity.name
  255 + [return] ${return_value}
  256 +
  257 +
  258 +отримати інформацію про value.amount
  259 + ${return_value}= Отримати тест із поля і показати на сторінці value.amount
  260 + ${return_value}= Evaluate "".join("${return_value}".split(' ')[:-3])
  261 + ${return_value}= Convert To Number ${return_value}
  262 + [return] ${return_value}
  263 +
  264 +отримати інформацію про tenderPeriod.startDate
  265 + ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.startDate
  266 + [return] ${return_value}
  267 +
  268 +отримати інформацію про tenderPeriod.endDate
  269 + ${return_value}= Отримати тест із поля і показати на сторінці tenderPeriod.endDate
  270 + [return] ${return_value}
  271 +
  272 +отримати інформацію про enquiryPeriod.startDate
  273 + ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.startDate
  274 + [return] ${return_value}
  275 +
  276 +отримати інформацію про enquiryPeriod.endDate
  277 + ${return_value}= Отримати тест із поля і показати на сторінці enquiryPeriod.endDate
  278 + [return] ${return_value}
  279 +
  280 +
  281 +отримати інформацію про items[${item_id}].description
  282 + відмітити на сторінці поле з тендера items[${item_id}].description jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)>
  283 + ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Детальний опис предмету закупівлі:")>:eq(1)>
  284 + [return] ${return_value}
  285 +
  286 +отримати інформацію про items[${item_id}].quantity
  287 + відмітити на сторінці поле з тендера items[${item_id}].quantity jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Кількість:")>:eq(1)>
  288 + ${return_value}= Get Text jquery=tender-subject-info.ng-isolate-scope>div.row:contains("Кількість:")>:eq(1)>
  289 + ${return_value}= Convert To Number ${return_value}
  290 + [return] ${return_value}
  291 +
  292 +отримати інформацію про items[${item_id}].classification.id
  293 + відмітити на сторінці поле з тендера items[0].classification.id jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  294 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  295 + [return] ${return_value.split(' ')[0]}
  296 +
  297 +отримати інформацію про items[${item_id}].classification.scheme
  298 + відмітити на сторінці поле з тендера items[0].classification.id jquery=tender-subject-info>div.row:contains("CPV")>:eq(1)>
  299 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("CPV")>:eq(1)>
  300 + [return] ${return_value.split(' ')[0]}
  301 +
  302 +отримати інформацію про items[${item_id}].classification.description
  303 + відмітити на сторінці поле з тендера classification.description jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  304 + ${return_value}= Get Text jquery=tender-subject-info>div.row:contains("Класифікатор CPV:")>:eq(1)>
  305 + ${return_value}= catenate @{return_value.split(' ')[1:]}
  306 + [return] ${return_value}
  307 +
  308 +отримати інформацію про items[${item_id}].deliveryAddress
  309 + ${return_value}= Отримати тест із поля і показати на сторінці items[${item_id}].deliveryAddress
  310 + [return] ${return_value}
  311 +
  312 +отримати інформацію про items[${item_id}].deliveryDate
  313 + ${return_value}= Отримати тест із поля і показати на сторінці items[${item_id}].deliveryDate
  314 + [return] ${return_value}
  315 +
  316 +отримати інформацію про questions[${question_id}].title
  317 + відмітити на сторінці поле з тендера questions title jquery=tender-questions>div:eq(1)>div.row:contains("Тема:")>:eq(1)>
  318 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Тема:")>:eq(1)>
  319 + [return] ${return_value}
  320 +
  321 +отримати інформацію про questions[${question_id}].description
  322 + відмітити на сторінці поле з тендера questions description jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
  323 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
  324 + [return] ${return_value}
  325 +
  326 +отримати інформацію про questions[${question_id}].date
  327 + відмітити на сторінці поле з тендера question date jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
  328 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
  329 + [return] ${return_value}
  330 +
  331 +отримати інформацію про questions[${question_id}].answer
  332 + відмітити на сторінці поле з тендера question answer jquery=tender-questions>div:eq(1)>div:last>
  333 + ${return_value}= Get Text jquery=tender-questions>div:eq(1)>div:last>
  334 + [return] ${return_value}
  335 +
  336 +Подати цінову пропозицію
  337 + [Arguments] @{ARGUMENTS}
  338 + [Documentation]
  339 + ... ${ARGUMENTS[0]} == username
  340 + ... ${ARGUMENTS[1]} == ${INTERNAL_TENDER_ID}
  341 + ... ${ARGUMENTS[2]} == test_bid_data
  342 +
  343 + ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount
  344 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}
  345 + Wait Until Page Contains Інформація про процедуру закупівлі 100
  346 + Wait Until Page Contains Element id=amount 10
  347 + Input text id=amount ${bid}
  348 + Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції']
  349 +
  350 +Задати питання
  351 + [Arguments] @{ARGUMENTS}
  352 + [Documentation]
  353 + ... ${ARGUMENTS[0]} = username
  354 + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
  355 + ... ${ARGUMENTS[2]} = question_data
  356 +
  357 + ${title}= Get From Dictionary ${ARGUMENTS[2].data} title
  358 + ${description}= Get From Dictionary ${ARGUMENTS[2].data} description
  359 +
  360 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  361 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
  362 +
  363 + Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 100
  364 + Click Element jquery=a[href^="#/addQuestion/"]
  365 + Wait Until Page Contains Element id=title
  366 + Input text id=title ${title}
  367 + Input text id=description ${description}
  368 + Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']
  369 +
  370 +Відповісти на питання
  371 + [Arguments] @{ARGUMENTS}
  372 + [Documentation]
  373 + ... ${ARGUMENTS[0]} = username
  374 + ... ${ARGUMENTS[1]} = ${INTERNAL_TENDER_ID}
  375 + ... ${ARGUMENTS[2]} = 0
  376 + ... ${ARGUMENTS[3]} = answer_data
  377 +
  378 + ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer
  379 +
  380 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  381 + etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${TENDER_ID}
  382 +
  383 + Click Element xpath=//div[div/pre[1]]/div[1]
  384 + Input text xpath=//div[textarea]/textarea ${answer}
  385 + Click Element xpath=//div[textarea]/span/button[1]
@@ -9,7 +9,7 @@ ${question_id} 0 @@ -9,7 +9,7 @@ ${question_id} 0
9 *** Keywords *** 9 *** Keywords ***
10 отримати internal id по UAid 10 отримати internal id по UAid
11 [Arguments] @{ARGUMENTS} 11 [Arguments] @{ARGUMENTS}
12 - [Documentation] 12 + [Documentation]
13 ... ${ARGUMENTS[0]} == username 13 ... ${ARGUMENTS[0]} == username
14 ... ${ARGUMENTS[1]} == tenderid 14 ... ${ARGUMENTS[1]} == tenderid
15 log many @{ARGUMENTS} 15 log many @{ARGUMENTS}
@@ -42,10 +42,11 @@ ${question_id} 0 @@ -42,10 +42,11 @@ ${question_id} 0
42 Log object data ${TENDER_DATA} cteated_tender 42 Log object data ${TENDER_DATA} cteated_tender
43 ${access_token}= Get Variable Value ${TENDER_DATA.access.token} 43 ${access_token}= Get Variable Value ${TENDER_DATA.access.token}
44 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} access_token ${access_token} 44 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} access_token ${access_token}
45 - Log access_token: ${access_token}  
46 - Log tender_id: ${TENDER_DATA.data.id}  
47 - Set Global Variable ${TENDER_DATA}  
48 - [return] ${TENDER_DATA.data.tenderID} ${TENDER_DATA.data.id} 45 + Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} TENDER_DATA ${TENDER_DATA}
  46 + Log ${access_token}
  47 + Log ${TENDER_DATA.data.id}
  48 + Log ${USERS.users['${ARGUMENTS[0]}'].TENDER_DATA}
  49 + [return] ${TENDER_DATA.data.tenderID}
49 50
50 Створити багатопредметний тендер 51 Створити багатопредметний тендер
51 [Arguments] @{ARGUMENTS} 52 [Arguments] @{ARGUMENTS}
@@ -66,19 +67,16 @@ ${question_id} 0 @@ -66,19 +67,16 @@ ${question_id} 0
66 [Documentation] 67 [Documentation]
67 ... ${ARGUMENTS[0]} == username 68 ... ${ARGUMENTS[0]} == username
68 ... ${ARGUMENTS[1]} == tenderId 69 ... ${ARGUMENTS[1]} == tenderId
69 - ... ${ARGUMENTS[2]} == id  
70 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} 70 ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
71 ${tender_data}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid} 71 ${tender_data}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
72 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} tender_data ${tender_data} 72 Set To Dictionary ${USERS.users['${ARGUMENTS[0]}']} tender_data ${tender_data}
73 [return] ${tender_data} 73 [return] ${tender_data}
74 74
75 -  
76 Обновити сторінку з тендером 75 Обновити сторінку з тендером
77 [Arguments] @{ARGUMENTS} 76 [Arguments] @{ARGUMENTS}
78 [Documentation] 77 [Documentation]
79 ... ${ARGUMENTS[0]} == username 78 ... ${ARGUMENTS[0]} == username
80 ... ${ARGUMENTS[1]} == tenderId 79 ... ${ARGUMENTS[1]} == tenderId
81 - ... ${ARGUMENTS[2]} == id  
82 openprocurement_client.Пошук тендера по ідентифікатору @{ARGUMENTS} 80 openprocurement_client.Пошук тендера по ідентифікатору @{ARGUMENTS}
83 81
84 отримати інформацію із тендера 82 отримати інформацію із тендера
@@ -281,48 +279,49 @@ ${question_id} 0 @@ -281,48 +279,49 @@ ${question_id} 0
281 Завантажити документ в ставку 279 Завантажити документ в ставку
282 [Documentation] 280 [Documentation]
283 ... ${ARGUMENTS[0]} == username 281 ... ${ARGUMENTS[0]} == username
284 - ... ${ARGUMENTS[1]} == token  
285 - ... ${ARGUMENTS[2]} == bid_id 282 + ... ${ARGUMENTS[1]} == path
  283 + ... ${ARGUMENTS[2]} == tenderid
286 [Arguments] @{ARGUMENTS} 284 [Arguments] @{ARGUMENTS}
287 log ${ARGUMENTS[0]} 285 log ${ARGUMENTS[0]}
288 log ${ARGUMENTS[1]} 286 log ${ARGUMENTS[1]}
289 -  
290 - # Built-in variables related to the operating system ease making the test data operating-system-agnostic.  
291 - log ${TEMPDIR} # An absolute path to the directory where the test data file is located. This variable is case-sensitive.  
292 - log ${CURDIR} # An absolute path to the system temporary directory. In UNIX-like systems this is typically /tmp, and in Windows c:\Documents and Settings\<user>\Local Settings\Temp.  
293 -  
294 - ${filecontent} = Set Variable somestring  
295 - ${created_file_path}= create_file ${filecontent}  
296 - ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id}  
297 - ${tender}= set_access_key ${tender} ${ARGUMENTS[1]}  
298 - ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_bid_document ${created_file_path} ${tender} ${ARGUMENTS[2]}  
299 - ${uploaded_file} = Create Dictionary filepath ${created_file_path} filecontent ${filecontent} upload_responce ${responce} 287 + log ${ARGUMENTS[2]}
  288 + ${bid_id}= Get Variable Value ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].data.id}
  289 + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]}
  290 + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
  291 + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token}
  292 + ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_bid_document ${ARGUMENTS[1]} ${tender} ${bid_id}
  293 + ${uploaded_file} = Create Dictionary filepath ${ARGUMENTS[1]} upload_responce ${responce}
  294 + log ${responce}
300 Log object data ${uploaded_file} 295 Log object data ${uploaded_file}
301 [return] ${uploaded_file} 296 [return] ${uploaded_file}
302 297
303 Змінити документ в ставці 298 Змінити документ в ставці
304 [Documentation] 299 [Documentation]
305 ... ${ARGUMENTS[0]} == username 300 ... ${ARGUMENTS[0]} == username
306 - ... ${ARGUMENTS[1]} == token  
307 - ... ${ARGUMENTS[2]} == bid_id  
308 - ... ${ARGUMENTS[3]} == file_id 301 + ... ${ARGUMENTS[1]} == path
  302 + ... ${ARGUMENTS[2]} == bidid
  303 + ... ${ARGUMENTS[3]} == docid
309 [Arguments] @{ARGUMENTS} 304 [Arguments] @{ARGUMENTS}
310 log ${ARGUMENTS[0]} 305 log ${ARGUMENTS[0]}
311 log ${ARGUMENTS[1]} 306 log ${ARGUMENTS[1]}
312 log ${ARGUMENTS[2]} 307 log ${ARGUMENTS[2]}
313 - log ${ARGUMENTS[3]}  
314 - ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${TENDER_DATA.data.id}  
315 - ${tender}= set_access_key ${tender} ${ARGUMENTS[1]}  
316 - ${filename}= Set Variable newfile.txt  
317 - Set_To_Object ${TENDER_DATA.data} documents.title ${filename}  
318 - ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${filename} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]}  
319 - Log object data ${reply} reply 308 + ${internalid}= отримати internal id по UAid ${ARGUMENTS[0]} ${TENDER['TENDER_UAID']}
  309 + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${internalid}
  310 + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token}
  311 + ${responce}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} update_bid_document ${ARGUMENTS[1]} ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]}
  312 + ${uploaded_file} = Create Dictionary filepath ${ARGUMENTS[1]} upload_responce ${responce}
  313 + log ${responce}
  314 + Log object data ${uploaded_file}
  315 + [return] ${uploaded_file}
320 316
321 -Завантажити документ 317 +
  318 +
  319 +
  320 +Завантажити документ
322 [Documentation] 321 [Documentation]
323 ... ${ARGUMENTS[0]} == username 322 ... ${ARGUMENTS[0]} == username
324 - ... ${ARGUMENTS[1]} == filename  
325 - ... ${ARGUMENTS[2]} == tenderID 323 + ... ${ARGUMENTS[1]} == filepath
  324 + ... ${ARGUMENTS[2]} == tenderUAID
326 [Arguments] @{ARGUMENTS} 325 [Arguments] @{ARGUMENTS}
327 log ${ARGUMENTS[0]} 326 log ${ARGUMENTS[0]}
328 log ${ARGUMENTS[1]} 327 log ${ARGUMENTS[1]}
@@ -330,10 +329,10 @@ ${question_id} 0 @@ -330,10 +329,10 @@ ${question_id} 0
330 ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]} 329 ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]}
331 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} 330 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID}
332 ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} 331 ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token}
333 - Set_To_Object ${TENDER_DATA.data} documents.title ${filename}  
334 - ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_tender_document ${filename} ${tender} 332 + ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} upload_document ${tender} ${ARGUMENTS[1]}
335 Log object data ${reply} reply 333 Log object data ${reply} reply
336 - 334 + [return] ${reply}
  335 +
337 Отримати пропозиції 336 Отримати пропозиції
338 [Documentation] 337 [Documentation]
339 ... ${ARGUMENTS[0]} == username 338 ... ${ARGUMENTS[0]} == username
@@ -352,13 +351,13 @@ ${question_id} 0 @@ -352,13 +351,13 @@ ${question_id} 0
352 ... ${ARGUMENTS[0]} == username 351 ... ${ARGUMENTS[0]} == username
353 ... ${ARGUMENTS[1]} == tenderUaID 352 ... ${ARGUMENTS[1]} == tenderUaID
354 ... ${ARGUMENTS[2]} == url 353 ... ${ARGUMENTS[2]} == url
355 - ... ${ARGUMENTS[3]} == token  
356 [Arguments] @{ARGUMENTS} 354 [Arguments] @{ARGUMENTS}
357 log ${ARGUMENTS[0]} 355 log ${ARGUMENTS[0]}
358 log ${ARGUMENTS[1]} 356 log ${ARGUMENTS[1]}
359 log ${ARGUMENTS[2]} 357 log ${ARGUMENTS[2]}
360 ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} 358 ${tenderID}= openprocurement_client.отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]}
361 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} 359 ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID}
  360 + ${token}= Get Variable Value ${USERS.users['${ARGUMENTS[0]}'].bidresponces['resp'].access.token}
362 ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]} 361 ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${ARGUMENTS[3]}
363 log ${contents} 362 log ${contents}
364 log ${filename} 363 log ${filename}
@@ -3,14 +3,153 @@ Library Selenium2Screenshots @@ -3,14 +3,153 @@ Library Selenium2Screenshots
3 Library String 3 Library String
4 Library DateTime 4 Library DateTime
5 5
  6 +*** Variables ***
  7 +##Використовую такий шлях у кожного буде мінятись /yboi/. Міняйте на сві шлях до файлу
  8 +#${file_path} /home/yboi/openprocurement.robottests.buildout/Document.docx
  9 +${file_path} /home/vbilos/openprocurement.robottests.buildout/Document.docx
  10 +${mail} test@mail.com
  11 +${telephone} +380976535447
  12 +
6 *** Keywords *** 13 *** Keywords ***
7 Підготувати клієнт для користувача 14 Підготувати клієнт для користувача
8 - [Arguments] ${username} 15 + [Arguments] @{ARGUMENTS}
9 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо 16 [Documentation] Відкрити брaвзер, створити обєкт api wrapper, тощо
10 - Open Browser ${BROKERS['${USERS.users['${username}'].broker}'].url} ${USERS.users['${username}'].browser} alias=${username}  
11 - Set Window Position @{USERS.users['${username}'].position}  
12 - Set Window Size @{USERS.users['${username}'].size}  
13 - Log Variables 17 + ... ${ARGUMENTS[0]} == username
  18 + Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}
  19 + Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}
  20 + Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}
  21 +
  22 +# login
  23 + Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:j_idt54 10
  24 + Click Element id=mForm:j_idt54
  25 + Run Keyword And Ignore Error Wait Until Page Contains Element id=mForm:email 10
  26 + Input text id=mForm:email ${USERS.users['${username}'].login}
  27 + Input text id=mForm:pwd ${USERS.users['${username}'].password}
  28 + Click Button id=mForm:login
  29 +
  30 +Створити тендер
  31 + [Arguments] @{ARGUMENTS}
  32 + [Documentation]
  33 + ... ${ARGUMENTS[0]} == username
  34 + ... ${ARGUMENTS[1]} == tender_data
  35 + ${tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]}
  36 + ${items}= Get From Dictionary ${tender_data.data} items
  37 + ${title}= Get From Dictionary ${tender_data.data} title
  38 + ${description}= Get From Dictionary ${tender_data.data} description
  39 + ${budget}= Get From Dictionary ${tender_data.data.value} amount
  40 + ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount
  41 + ${countryName}= Get From Dictionary ${tender_data.data.procuringEntity.address} countryName
  42 + ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate
  43 + ${delivery_end_date}= convert_date_to_prom_format ${delivery_end_date}
  44 + ${cpv}= Get From Dictionary ${items[0].classification} description_ua
  45 + ${cpv_id}= Get From Dictionary ${items[0].classification} id
  46 + ${cpv_id_1}= Get Substring ${cpv_id} 0 3
  47 + ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description
  48 + ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id
  49 + ${code}= Get From Dictionary ${items[0].unit} code
  50 + ${quantity}= Get From Dictionary ${items[0]} quantity
  51 + ${name}= Get From Dictionary ${tender_data.data.procuringEntity.contactPoint} name
  52 +
  53 + Selenium2Library.Switch Browser ${ARGUMENTS[0]}
  54 + Wait Until Page Contains Element xpath=//*[contains(@class, 'ui-button-text ui-c')][./text()='Нова закупівля'] 10
  55 + Click Element xpath=//*[contains(@class, 'ui-button-text ui-c')][./text()='Нова закупівля']
  56 + Wait Until Page Contains Element id=mForm:data:name
  57 + Input text id=mForm:data:name ${title}
  58 + Input text id=mForm:data:desc ${description}
  59 + Input text id=mForm:data:budget ${budget}
  60 + Input text id=mForm:data:step ${step_rate}
  61 + Click Element xpath=//*[@id='mForm:data:vat']/tbody/tr/td[1]//span
  62 + Input text id=mForm:data:dEPr_input ${delivery_end_date}
  63 + Click Element id=mForm:data:cKind_label
  64 + Click Element xpath=//div[@id='mForm:data:cKind_panel']//li[3]
  65 + Input text id=mForm:data:cCpvGr_input ${cpv_id_1}
  66 + Wait Until Page Contains Element xpath=.//*[@id='mForm:data:cCpvGr_panel']/table/tbody/tr/td[2]/span 10
  67 + Click Element xpath=.//*[@id='mForm:data:cCpvGr_panel']/table/tbody/tr/td[2]/span
  68 + Input text id=mForm:data:subject0 ${dkpp_desc}
  69 + Input text id=mForm:data:cCpv0_input ${cpv_id}
  70 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv0_panel']//td[1]/span 10
  71 + Click Element xpath=//div[@id='mForm:data:cCpv0_panel']//td[1]/span
  72 + Input text id=mForm:data:unit0_input ${code}
  73 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit0_panel']//tr/td[1] 10
  74 + Click Element xpath=//div[@id='mForm:data:unit0_panel']//tr/td[1]
  75 + Input text id=mForm:data:amount0 ${quantity}
  76 + Input text id=mForm:data:cDkpp0_input ${dkpp_id}
  77 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp0_panel']//tr[1]/td[2]/span 10
  78 + Click Element xpath=//div[@id='mForm:data:cDkpp0_panel']//tr[1]/td[2]/span
  79 + Input text id=mForm:data:rName ${name}
  80 + Input text id=mForm:data:rPhone ${telephone}
  81 + Input text id=mForm:data:rMail ${mail}
  82 + Choose File id=mForm:data:docFile_input ${file_path}
  83 + Run Keyword if '${mode}' == 'multi' Додати предмет items
  84 + Click Element id=mForm:bSave
  85 + Sleep 5
  86 + ${tender_UAid}= Get Text id=mForm:nBid
  87 + ${tender_UAid}= Get Substring ${tender_UAid} 19
  88 + ${Ids} Convert To String ${tender_UAid}
  89 + Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid}
  90 + [return] ${Ids}
  91 +
  92 +Set Multi Ids
  93 + [Arguments] @{ARGUMENTS}
  94 + [Documentation]
  95 + ... ${ARGUMENTS[0]} == ${tender_UAid}
  96 + ${id}= Get Text id=mForm:nBid
  97 + ${Ids} Create List ${tender_UAid} ${id}
  98 +
  99 +Додати предмет
  100 + [Arguments] @{ARGUMENTS}
  101 + [Documentation]
  102 + ... ${ARGUMENTS[0]} == items
  103 + ${dkpp_desc1}= Get From Dictionary ${items[1].additionalClassifications[0]} description
  104 + ${dkpp_id11}= Get From Dictionary ${items[1].additionalClassifications[0]} id
  105 + ${dkpp_desc2}= Get From Dictionary ${items[2].additionalClassifications[0]} description
  106 + ${dkpp_id2}= Get From Dictionary ${items[2].additionalClassifications[0]} id
  107 + ${dkpp_desc3}= Get From Dictionary ${items[3].additionalClassifications[0]} description
  108 + ${dkpp_id3}= Get From Dictionary ${items[3].additionalClassifications[0]} id
  109 +
  110 + Wait Until Page Contains Element xpath=//button[@class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"] 10
  111 + Wait Until Page Contains Element xpath=//button[contains(@class, 'ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only')] 10
  112 + Wait Until Page Contains Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"] 10
  113 + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"]
  114 + Wait Until Page Contains Element id=mForm:data:subject1 10
  115 + Input text id=mForm:data:subject1 ${dkpp_desc1}
  116 + Input text id=mForm:data:cCpv1_input ${cpv_id}
  117 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv1_panel']/table/tbody/tr/td[1]/span 10
  118 + Click Element xpath=//div[@id='mForm:data:cCpv1_panel']/table/tbody/tr/td[1]/span
  119 + Input text id=mForm:data:unit1_input ${code}
  120 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit1_panel']/table/tbody/tr/td[1] 10
  121 + Click Element xpath=//div[@id='mForm:data:unit1_panel']/table/tbody/tr/td[1]
  122 + Input text id=mForm:data:amount1 ${quantity}
  123 + Input text id=mForm:data:cDkpp1_input ${dkpp_id11}
  124 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp1_panel']/table/tbody/tr/td[1]/span 10
  125 + Click Element xpath=//div[@id='mForm:data:cDkpp1_panel']/table/tbody/tr/td[1]/span
  126 + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"]
  127 + Wait Until Page Contains Element id=mForm:data:subject2 10
  128 + Input text id=mForm:data:subject2 ${dkpp_desc2}
  129 + Input text id=mForm:data:cCpv2_input ${cpv_id}
  130 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv2_panel']/table/tbody/tr/td[1]/span 10
  131 + Click Element xpath=//div[@id='mForm:data:cCpv2_panel']/table/tbody/tr/td[1]/span
  132 + Input text id=mForm:data:unit2_input ${code}
  133 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit2_panel']/table/tbody/tr/td[1] 10
  134 + Click Element xpath=//div[@id='mForm:data:unit2_panel']/table/tbody/tr/td[1]
  135 + Input text id=mForm:data:amount2 ${quantity}
  136 + Input text id=mForm:data:cDkpp2_input ${dkpp_id2}
  137 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp2_panel']/table/tbody/tr/td[1]/span 10
  138 + Click Element xpath=//div[@id='mForm:data:cDkpp2_panel']/table/tbody/tr/td[1]/span
  139 + Click Element xpath=//button[@id="mForm:data:j_idt911"]|//button[@id="mForm:data:j_idt726"]
  140 + Wait Until Page Contains Element id=mForm:data:subject3 10
  141 + Input text id=mForm:data:subject3 ${dkpp_desc3}
  142 + Input text id=mForm:data:cCpv3_input ${cpv_id}
  143 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cCpv3_panel']/table/tbody/tr/td[1]/span 10
  144 + Click Element xpath=//div[@id='mForm:data:cCpv3_panel']/table/tbody/tr/td[1]/span
  145 + Input text id=mForm:data:unit3_input ${code}
  146 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:unit3_panel']/table/tbody/tr/td[1] 10
  147 + Click Element xpath=//div[@id='mForm:data:unit3_panel']/table/tbody/tr/td[1]
  148 + Input text id=mForm:data:amount3 ${quantity}
  149 + Input text id=mForm:data:cDkpp3_input ${dkpp_id3}
  150 + Wait Until Page Contains Element xpath=//div[@id='mForm:data:cDkpp3_panel']/table/tbody/tr/td[1]/span 10
  151 + Click Element xpath=//div[@id='mForm:data:cDkpp3_panel']/table/tbody/tr/td[1]/span
  152 +
14 153
15 Пошук тендера по ідентифікатору 154 Пошук тендера по ідентифікатору
16 [Arguments] @{ARGUMENTS} 155 [Arguments] @{ARGUMENTS}
@@ -24,7 +24,9 @@ Publicbid: @@ -24,7 +24,9 @@ Publicbid:
24 period_interval: 2 24 period_interval: 2
25 Netcast: 25 Netcast:
26 keywords_file: netcast 26 keywords_file: netcast
27 - url: http://dz2.byustudio.in.ua 27 + url: "http://dz2.byustudio.in.ua"
  28 + login: admin
  29 + password: uStudio
28 timout_on_wait: 15 30 timout_on_wait: 15
29 period_interval: 2 31 period_interval: 2
30 Netcast: 32 Netcast:
@@ -34,3 +36,8 @@ Netcast: @@ -34,3 +36,8 @@ Netcast:
34 password: uStudio 36 password: uStudio
35 timout_on_wait: 15 37 timout_on_wait: 15
36 period_interval: 2 38 period_interval: 2
  39 +Newtend:
  40 + keywords_file: newtend
  41 + url: http://openprocurement:test@dev23.newtend.com
  42 + timout_on_wait: 15
  43 + period_interval: 2
@@ -27,7 +27,7 @@ users: @@ -27,7 +27,7 @@ users:
27 login: st_org 27 login: st_org
28 password: 12345678 28 password: 12345678
29 browser: firefox 29 browser: firefox
30 - position: [0, 0] 30 + position: [700, 0]
31 size: [640, 450] 31 size: [640, 450]
32 E-tender_Provider2: 32 E-tender_Provider2:
33 broker: E-tender 33 broker: E-tender
@@ -41,7 +41,7 @@ users: @@ -41,7 +41,7 @@ users:
41 E-tender_Viewer: 41 E-tender_Viewer:
42 broker: E-tender 42 broker: E-tender
43 username: E-tendertest 43 username: E-tendertest
44 - browser: chrome 44 + browser: firefox
45 position: [0, 0] 45 position: [0, 0]
46 size: [640, 450] 46 size: [640, 450]
47 Prom_Owner: 47 Prom_Owner:
@@ -74,6 +74,15 @@ users: @@ -74,6 +74,15 @@ users:
74 browser: chrome 74 browser: chrome
75 position: [0, 450] 75 position: [0, 450]
76 size: [640, 450] 76 size: [640, 450]
  77 + Newtend_Owner:
  78 + broker: Newtend
  79 + username: Newtendtest
  80 + homepage: "http://dev23.newtend.com/openprocurement/#/home/page/1"
  81 + login: openprocurement@mailinator.com
  82 + password: 123123
  83 + browser: firefox
  84 + position: [0, 0]
  85 + size: [640, 450]
77 Netcast_Owner: 86 Netcast_Owner:
78 broker: Netcast 87 broker: Netcast
79 username: Netcasttest 88 username: Netcasttest
@@ -83,6 +92,15 @@ users: @@ -83,6 +92,15 @@ users:
83 browser: firefox 92 browser: firefox
84 position: [0, 450] 93 position: [0, 450]
85 size: [640, 450] 94 size: [640, 450]
  95 + Newtend_Provider1:
  96 + broker: Newtend
  97 + username: Newtendtest
  98 + homepage: "http://dev23.newtend.com/openprocurement/tenders"
  99 + login: qtest@mailinator.com
  100 + password: 123123
  101 + browser: firefox
  102 + position: [0, 450]
  103 + size: [640, 450]
86 Publicbid_Owner: 104 Publicbid_Owner:
87 broker: Publicbid 105 broker: Publicbid
88 username: Publicbid 106 username: Publicbid
@@ -91,4 +109,19 @@ users: @@ -91,4 +109,19 @@ users:
91 password: Password1 109 password: Password1
92 browser: firefox 110 browser: firefox
93 position: [0, 0] 111 position: [0, 0]
94 - size: [740, 550]  
  112 + size: [740, 550]
  113 + Newtend_Provider2:
  114 + broker: Newtend
  115 + username: Newtendtest
  116 + homepage: "http://dev23.newtend.com/openprocurement/tenders"
  117 + login: openprocboss@mailinator.com
  118 + password: 123123
  119 + browser: firefox
  120 + position: [700, 0]
  121 + size: [640, 450]
  122 + Newtend_Viewer:
  123 + broker: Newtend
  124 + username: Newtendtest
  125 + browser: firefox
  126 + position: [0, 0]
  127 + size: [640, 450]
  1 +from iso8601 import parse_date
  2 +from robot.output import LOGGER
  3 +from robot.output.loggerhelper import Message
  4 +from robot.libraries.BuiltIn import BuiltIn
  5 +from robot.errors import HandlerExecutionFailed
  6 +from datetime import datetime, timedelta, date
  7 +from dateutil.parser import parse
  8 +from dateutil.tz import tzlocal
  9 +from pytz import timezone
  10 +from jsonpath_rw import parse as parse_path
  11 +import time
  12 +from op_robot_tests.tests_files.initial_data import (
  13 + test_tender_data
  14 +)
  15 +
  16 +TIMEZONE = timezone('Europe/Kiev')
  17 +
  18 +def convert_date_to_etender_format(isodate):
  19 + iso_dt=parse_date(isodate)
  20 + date_string = iso_dt.strftime("%d-%m-%Y")
  21 + return date_string
  22 +
  23 +def convert_time_to_etender_format(isodate):
  24 + iso_dt=parse_date(isodate)
  25 + time_string = iso_dt.strftime("%H:%M")
  26 + return time_string
@@ -6,6 +6,14 @@ from faker import Factory @@ -6,6 +6,14 @@ from faker import Factory
6 fake = Factory.create('uk_UA') 6 fake = Factory.create('uk_UA')
7 fake_ru = Factory.create('ru') 7 fake_ru = Factory.create('ru')
8 fake_en = Factory.create() 8 fake_en = Factory.create()
  9 +from tempfile import NamedTemporaryFile
  10 +
  11 +def create_fake_doc():
  12 + content = fake.text()
  13 + tf = NamedTemporaryFile(delete=False)
  14 + tf.write(content)
  15 + tf.close()
  16 + return tf.name
9 17
10 def test_tender_data(period_interval=2): 18 def test_tender_data(period_interval=2):
11 now = datetime.now() 19 now = datetime.now()
@@ -35,7 +43,6 @@ def test_tender_data(period_interval=2): @@ -35,7 +43,6 @@ def test_tender_data(period_interval=2):
35 "contactPoint": { 43 "contactPoint": {
36 "name": fake.name(), 44 "name": fake.name(),
37 "telephone": fake.phone_number() 45 "telephone": fake.phone_number()
38 -  
39 } 46 }
40 }, 47 },
41 "value": { 48 "value": {
@@ -84,8 +91,8 @@ def test_tender_data(period_interval=2): @@ -84,8 +91,8 @@ def test_tender_data(period_interval=2):
84 } 91 }
85 ], 92 ],
86 "enquiryPeriod": { 93 "enquiryPeriod": {
87 - "startDate": (now + timedelta(minutes=2)).isoformat(),  
88 - "endDate": (now + timedelta(minutes=3)).isoformat() 94 + "startDate": (now).isoformat(),
  95 + "endDate": (now + timedelta(minutes=1)).isoformat()
89 }, 96 },
90 "tenderPeriod": { 97 "tenderPeriod": {
91 "startDate": (now + timedelta(minutes=2)).isoformat(), 98 "startDate": (now + timedelta(minutes=2)).isoformat(),
@@ -152,7 +159,7 @@ def prom_test_tender_data(): @@ -152,7 +159,7 @@ def prom_test_tender_data():
152 "classification": { 159 "classification": {
153 "scheme": u"CPV", 160 "scheme": u"CPV",
154 "id": u"44617100-9", 161 "id": u"44617100-9",
155 - "description": u"Cartons" 162 + "description": u"Cartons",
156 }, 163 },
157 "additionalClassifications": [ 164 "additionalClassifications": [
158 { 165 {
@@ -181,38 +188,38 @@ def prom_test_tender_data(): @@ -181,38 +188,38 @@ def prom_test_tender_data():
181 def test_tender_data_multiple_lots(period_interval=2): 188 def test_tender_data_multiple_lots(period_interval=2):
182 now = datetime.now() 189 now = datetime.now()
183 return { 190 return {
184 - "title": fake.catch_phrase(),  
185 - "mode": "test",  
186 - "submissionMethodDetails": "quick",  
187 - "description": u"Тестовий тендер",  
188 - "description_en": "Test tender",  
189 - "description_ru": "Тестовый тендер",  
190 - "procuringEntity": {  
191 - "name": fake.company(),  
192 - "name_ru": fake_ru.company(),  
193 - "name_en": fake_en.company(),  
194 - "identifier": {  
195 - "scheme": u"UA-EDR",  
196 - "id": u"0000{}".format(fake.pyint()),  
197 - "uri": fake.image_url(width=None, height=None)  
198 - },  
199 - "address": {  
200 - "countryName": u"Україна",  
201 - "postalCode": fake.postalcode(),  
202 - "region": u"м. Київ",  
203 - "locality": u"м. Київ",  
204 - "streetAddress": fake.street_address()  
205 - },  
206 - "contactPoint": {  
207 - "name": fake.name(),  
208 - "telephone": fake.phone_number()  
209 - } 191 + "title": fake.catch_phrase(),
  192 + "mode": "test",
  193 + "submissionMethodDetails": "quick",
  194 + "description": u"Тестовий тендер",
  195 + "description_en": "Test tender",
  196 + "description_ru": "Тестовый тендер",
  197 + "procuringEntity": {
  198 + "name": fake.company(),
  199 + "name_ru": fake_ru.company(),
  200 + "name_en": fake_en.company(),
  201 + "identifier": {
  202 + "scheme": u"UA-EDR",
  203 + "id": u"0000{}".format(fake.pyint()),
  204 + "uri": fake.image_url(width=None, height=None)
  205 + },
  206 + "address": {
  207 + "countryName": u"Україна",
  208 + "postalCode": fake.postalcode(),
  209 + "region": u"м. Київ",
  210 + "locality": u"м. Київ",
  211 + "streetAddress": fake.street_address()
  212 + },
  213 + "contactPoint": {
  214 + "name": fake.name(),
  215 + "telephone": fake.phone_number()
  216 + }
210 }, 217 },
211 "value": { 218 "value": {
212 - "amount": 50000,  
213 - "currency": u"UAH"  
214 - },  
215 - "minimalStep": { 219 + "amount": 50000,
  220 + "currency": u"UAH"
  221 + },
  222 + "minimalStep": {
216 "amount": 100, 223 "amount": 100,
217 "currency": u"UAH" 224 "currency": u"UAH"
218 }, 225 },
@@ -252,7 +259,7 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -252,7 +259,7 @@ def test_tender_data_multiple_lots(period_interval=2):
252 }, 259 },
253 "quantity": fake.pyint() 260 "quantity": fake.pyint()
254 }, 261 },
255 - { 262 + {
256 "description": fake.catch_phrase(), 263 "description": fake.catch_phrase(),
257 "deliveryDate": { 264 "deliveryDate": {
258 "endDate": (now + timedelta(days=5)).isoformat() 265 "endDate": (now + timedelta(days=5)).isoformat()
@@ -271,7 +278,8 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -271,7 +278,8 @@ def test_tender_data_multiple_lots(period_interval=2):
271 "classification": { 278 "classification": {
272 "scheme": u"CPV", 279 "scheme": u"CPV",
273 "id": u"44617100-9", 280 "id": u"44617100-9",
274 - "description": u"Cartons" 281 + "description": u"Cartons",
  282 + "description_ua": u"Картонки"
275 }, 283 },
276 "additionalClassifications": [ 284 "additionalClassifications": [
277 { 285 {
@@ -286,7 +294,7 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -286,7 +294,7 @@ def test_tender_data_multiple_lots(period_interval=2):
286 }, 294 },
287 "quantity": fake.pyint() 295 "quantity": fake.pyint()
288 }, 296 },
289 - { 297 + {
290 "description": fake.catch_phrase(), 298 "description": fake.catch_phrase(),
291 "deliveryDate": { 299 "deliveryDate": {
292 "endDate": (now + timedelta(days=5)).isoformat() 300 "endDate": (now + timedelta(days=5)).isoformat()
@@ -305,7 +313,8 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -305,7 +313,8 @@ def test_tender_data_multiple_lots(period_interval=2):
305 "classification": { 313 "classification": {
306 "scheme": u"CPV", 314 "scheme": u"CPV",
307 "id": u"44617100-9", 315 "id": u"44617100-9",
308 - "description": u"Cartons" 316 + "description": u"Cartons",
  317 + "description_ua": u"Картонки"
309 }, 318 },
310 "additionalClassifications": [ 319 "additionalClassifications": [
311 { 320 {
@@ -320,7 +329,7 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -320,7 +329,7 @@ def test_tender_data_multiple_lots(period_interval=2):
320 }, 329 },
321 "quantity": fake.pyint() 330 "quantity": fake.pyint()
322 }, 331 },
323 - { 332 + {
324 "description": fake.catch_phrase(), 333 "description": fake.catch_phrase(),
325 "deliveryDate": { 334 "deliveryDate": {
326 "endDate": (now + timedelta(days=5)).isoformat() 335 "endDate": (now + timedelta(days=5)).isoformat()
@@ -339,7 +348,8 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -339,7 +348,8 @@ def test_tender_data_multiple_lots(period_interval=2):
339 "classification": { 348 "classification": {
340 "scheme": u"CPV", 349 "scheme": u"CPV",
341 "id": u"44617100-9", 350 "id": u"44617100-9",
342 - "description": u"Cartons" 351 + "description": u"Cartons",
  352 + "description_ua": u"Картонки"
343 }, 353 },
344 "additionalClassifications": [ 354 "additionalClassifications": [
345 { 355 {
@@ -356,12 +366,12 @@ def test_tender_data_multiple_lots(period_interval=2): @@ -356,12 +366,12 @@ def test_tender_data_multiple_lots(period_interval=2):
356 } 366 }
357 ], 367 ],
358 "enquiryPeriod": { 368 "enquiryPeriod": {
359 - "startDate": (now + timedelta(minutes=3)).isoformat(),  
360 - "endDate": (now + timedelta(minutes=4)).isoformat() 369 + "startDate": (now).isoformat(),
  370 + "endDate": (now + timedelta(minutes=1)).isoformat()
361 }, 371 },
362 "tenderPeriod": { 372 "tenderPeriod": {
363 - "startDate": (now + timedelta(minutes=4)).isoformat(),  
364 - "endDate": (now + timedelta(minutes=(5+period_interval))).isoformat() 373 + "startDate": (now + timedelta(minutes=2)).isoformat(),
  374 + "endDate": (now + timedelta(minutes=(2+period_interval))).isoformat()
365 } 375 }
366 } 376 }
367 377
@@ -56,6 +56,9 @@ TestSuiteSetup @@ -56,6 +56,9 @@ TestSuiteSetup
56 Set Global Variable ${REPLIES} 56 Set Global Variable ${REPLIES}
57 ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode} 57 ${INITIAL_TENDER_DATA}= prepare_test_tender_data ${BROKERS['${USERS.users['${tender_owner}'].broker}'].period_interval} ${mode}
58 Set Global Variable ${INITIAL_TENDER_DATA} 58 Set Global Variable ${INITIAL_TENDER_DATA}
  59 + ${TENDER}= Create Dictionary
  60 + Set Global Variable ${TENDER}
  61 + Log ${TENDER}
59 Log ${INITIAL_TENDER_DATA} 62 Log ${INITIAL_TENDER_DATA}
60 63
61 Завантажуємо бібліотеку з реалізацією ${keywords_file} площадки 64 Завантажуємо бібліотеку з реалізацією ${keywords_file} площадки
@@ -71,7 +74,7 @@ TestSuiteSetup @@ -71,7 +74,7 @@ TestSuiteSetup
71 ... ${ARGUMENTS[2]} == id 74 ... ${ARGUMENTS[2]} == id
72 75
73 ${now}= Get Current Date 76 ${now}= Get Current Date
74 - ${delta}= Subtract Date From Date ${now} ${LAST_MODIFICATION_DATE} 77 + ${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']}
75 ${wait_timout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timout_on_wait} ${delta} 78 ${wait_timout}= Subtract Time From Time ${BROKERS['${USERS.users['${username}'].broker}'].timout_on_wait} ${delta}
76 Run Keyword If ${wait_timout}>0 Sleep ${wait_timout} 79 Run Keyword If ${wait_timout}>0 Sleep ${wait_timout}
77 80
@@ -83,23 +86,29 @@ TestSuiteSetup @@ -83,23 +86,29 @@ TestSuiteSetup
83 Звірити поле 86 Звірити поле
84 [Arguments] ${username} ${field} ${subject} 87 [Arguments] ${username} ${field} ${subject}
85 ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field} 88 ${field_response}= Викликати для учасника ${username} отримати інформацію із тендера ${field}
  89 + Should Not Be Equal ${field_response} ${None}
86 Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker} 90 Should Be Equal ${subject} ${field_response} Майданчик ${USERS.users['${username}'].broker}
87 91
88 Звірити поле створеного тендера 92 Звірити поле створеного тендера
89 [Arguments] ${initial} ${tender_data} ${field} 93 [Arguments] ${initial} ${tender_data} ${field}
90 ${field_value}= Get_From_Object ${initial} ${field} 94 ${field_value}= Get_From_Object ${initial} ${field}
91 ${field_response}= Get_From_Object ${tender_data} ${field} 95 ${field_response}= Get_From_Object ${tender_data} ${field}
  96 + Should Not Be Equal ${field_response} ${None}
  97 + Should Not Be Equal ${field_value} ${None}
92 Should Be Equal ${field_value} ${field_response} 98 Should Be Equal ${field_value} ${field_response}
93 99
94 Звірити дату тендера 100 Звірити дату тендера
95 [Arguments] ${username} ${field} 101 [Arguments] ${username} ${field}
96 ${isodate}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field} 102 ${isodate}= Get_From_Object ${INITIAL_TENDER_DATA.data} ${field}
  103 + Should Not Be Equal ${isodate} ${None}
97 Звірити дату ${username} ${field} ${isodate} 104 Звірити дату ${username} ${field} ${isodate}
98 105
99 Звірити дату 106 Звірити дату
100 [Arguments] ${username} ${field} ${subject} 107 [Arguments] ${username} ${field} ${subject}
101 ${field_date}= Викликати для учасника ${username} отримати інформацію із тендера ${field} 108 ${field_date}= Викликати для учасника ${username} отримати інформацію із тендера ${field}
102 ${returned}= compare_date ${subject} ${field_date} 109 ${returned}= compare_date ${subject} ${field_date}
  110 + Should Not Be Equal ${field_date} ${None}
  111 + Should Not Be Equal ${returned} ${None}
103 Should Be True '${returned}' == 'True' 112 Should Be True '${returned}' == 'True'
104 113
105 Звірити поля предметів закупівлі багатопредметного тендера 114 Звірити поля предметів закупівлі багатопредметного тендера
@@ -25,9 +25,9 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] @@ -25,9 +25,9 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"]
25 25
26 Можливість оголосити багатопредметний тендер 26 Можливість оголосити багатопредметний тендер
27 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер 27 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
28 - ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA}  
29 - ${TENDER_ID}= Get From List ${ids} 0  
30 - ${INTERNAL_TENDER_ID}= Get From List ${ids} 1 28 + ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA}
  29 + ${TENDER_ID}= Get From List ${ids} 0
  30 + ${INTERNAL_TENDER_ID}= Get From List ${ids} 1
31 Set Global Variable ${INTERNAL_TENDER_ID} 31 Set Global Variable ${INTERNAL_TENDER_ID}
32 Set Global Variable ${TENDER_ID} 32 Set Global Variable ${TENDER_ID}
33 ${LAST_MODIFICATION_DATE}= Get Current Date 33 ${LAST_MODIFICATION_DATE}= Get Current Date
@@ -36,12 +36,12 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] @@ -36,12 +36,12 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"]
36 Отримати багатопредметний тендер по ідентифікатору 36 Отримати багатопредметний тендер по ідентифікатору
37 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору 37 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору
38 Дочекатись синхронізації з майданчиком ${viewer} 38 Дочекатись синхронізації з майданчиком ${viewer}
39 - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} ${INTERNAL_TENDER_ID}  
40 - 39 + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID} ${INTERNAL_TENDER_ID}
  40 +
41 Відображення опису позицій закупівлі багатопредметного тендера 41 Відображення опису позицій закупівлі багатопредметного тендера
42 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 42 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
43 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} description 43 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} description
44 - 44 +
45 Відображення дати доставки позицій закупівлі багатопредметного тендера 45 Відображення дати доставки позицій закупівлі багатопредметного тендера
46 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 46 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
47 Звірити дату предметів закупівлі багатопредметного тендера ${viewer} deliveryDate.endDate 47 Звірити дату предметів закупівлі багатопредметного тендера ${viewer} deliveryDate.endDate
@@ -49,11 +49,11 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] @@ -49,11 +49,11 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"]
49 Відображення координат широти доставки позицій закупівлі багатопредметного тендера 49 Відображення координат широти доставки позицій закупівлі багатопредметного тендера
50 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 50 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
51 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.latitude 51 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.latitude
52 - 52 +
53 Відображення координат довготи доставки позицій закупівлі багатопредметного тендера 53 Відображення координат довготи доставки позицій закупівлі багатопредметного тендера
54 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 54 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
55 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.longitude 55 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryLocation.longitude
56 - 56 +
57 Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера 57 Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера
58 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 58 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
59 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.countryName 59 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.countryName
@@ -61,53 +61,53 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"] @@ -61,53 +61,53 @@ ${LOAD_USERS} ["${tender_owner}", "${provider}", "${viewer}"]
61 Відображення пошт коду доставки позицій закупівлі багатопредметного тендера 61 Відображення пошт коду доставки позицій закупівлі багатопредметного тендера
62 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 62 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
63 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.postalCode 63 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.postalCode
64 - 64 +
65 Відображення регіону доставки позицій закупівлі багатопредметного тендера 65 Відображення регіону доставки позицій закупівлі багатопредметного тендера
66 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 66 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
67 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.region 67 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.region
68 - 68 +
69 Відображення locality адреси доставки позицій закупівлі багатопредметного тендера 69 Відображення locality адреси доставки позицій закупівлі багатопредметного тендера
70 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 70 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
71 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.locality 71 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.locality
72 - 72 +
73 Відображення вулиці доставки позицій закупівлі багатопредметного тендера 73 Відображення вулиці доставки позицій закупівлі багатопредметного тендера
74 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 74 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
75 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.streetAddress 75 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} deliveryAddress.streetAddress
76 - 76 +
77 Відображення схеми класифікації позицій закупівлі багатопредметного тендера 77 Відображення схеми класифікації позицій закупівлі багатопредметного тендера
78 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 78 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
79 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.scheme 79 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.scheme
80 - 80 +
81 Відображення ідентифйікатора класифікації позицій закупівлі багатопредметного тендера 81 Відображення ідентифйікатора класифікації позицій закупівлі багатопредметного тендера
82 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 82 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
83 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.id 83 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.id
84 - 84 +
85 Відображення опису класифікації позицій закупівлі багатопредметного тендера 85 Відображення опису класифікації позицій закупівлі багатопредметного тендера
86 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 86 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
87 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.description 87 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} classification.description
88 - 88 +
89 Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера 89 Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера
90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
91 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.scheme 91 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.scheme
92 - 92 +
93 Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера 93 Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера
94 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 94 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
95 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.id 95 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.id
96 - 96 +
97 Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера 97 Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера
98 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 98 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
99 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.description 99 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} additionalClassifications.description
100 - 100 +
101 Відображення назви одиниці позицій закупівлі багатопредметного тендера 101 Відображення назви одиниці позицій закупівлі багатопредметного тендера
102 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 102 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
103 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.name 103 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.name
104 - 104 +
105 Відображення коду одиниці позицій закупівлі багатопредметного тендера 105 Відображення коду одиниці позицій закупівлі багатопредметного тендера
106 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 106 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
107 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.code 107 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} unit.code
108 - 108 +
109 Відображення кількості позицій закупівлі багатопредметного тендера 109 Відображення кількості позицій закупівлі багатопредметного тендера
110 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера 110 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів багатопредметного тендера
111 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} quantity 111 Звірити поля предметів закупівлі багатопредметного тендера ${viewer} quantity
112 -  
113 - 112 +
  113 +
@@ -18,8 +18,9 @@ import time @@ -18,8 +18,9 @@ import time
18 from .initial_data import ( 18 from .initial_data import (
19 test_tender_data, test_question_data, test_question_answer_data, 19 test_tender_data, test_question_data, test_question_answer_data,
20 test_bid_data, test_award_data, test_complaint_data, test_complaint_reply_data, test_tender_data_multiple_lots, 20 test_bid_data, test_award_data, test_complaint_data, test_complaint_reply_data, test_tender_data_multiple_lots,
21 - auction_bid, prom_test_tender_data 21 + auction_bid, prom_test_tender_data, create_fake_doc
22 ) 22 )
  23 +import calendar
23 24
24 TIMEZONE = timezone('Europe/Kiev') 25 TIMEZONE = timezone('Europe/Kiev')
25 26
@@ -162,4 +163,24 @@ def wait_to_date(date_stamp): @@ -162,4 +163,24 @@ def wait_to_date(date_stamp):
162 wait_seconds += 2 163 wait_seconds += 2
163 if wait_seconds < 0: 164 if wait_seconds < 0:
164 return 0 165 return 0
165 - return wait_seconds  
  166 + return wait_seconds
  167 +
  168 +def newtend_date_picker_index(isodate):
  169 + now = datetime.today()
  170 + date_str = '01' + str(now.month) + str(now.year)
  171 + first_day_of_month = datetime.strptime(date_str, "%d%m%Y")
  172 + mod = first_day_of_month.isoweekday() - 2
  173 + iso_dt=parse_date(isodate)
  174 + last_day_of_month = calendar.monthrange(now.year, now.month)[1]
  175 + #LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO"))
  176 + if now.day>iso_dt.day:
  177 + mod = calendar.monthrange(now.year, now.month)[1] + mod
  178 + return mod + iso_dt.day
  179 +
  180 +def Add_time_for_GUI_FrontEnds(INITIAL_TENDER_DATA):
  181 + now = datetime.now()
  182 + INITIAL_TENDER_DATA.data.enquiryPeriod['startDate'] = (now + timedelta(minutes=2)).isoformat()
  183 + INITIAL_TENDER_DATA.data.enquiryPeriod['endDate'] = (now + timedelta(minutes=3)).isoformat()
  184 + INITIAL_TENDER_DATA.data.tenderPeriod['startDate'] = (now + timedelta(minutes=4)).isoformat()
  185 + INITIAL_TENDER_DATA.data.tenderPeriod['endDate'] = (now + timedelta(minutes=5)).isoformat()
  186 + return INITIAL_TENDER_DATA
@@ -26,41 +26,47 @@ ${question_id} 0 @@ -26,41 +26,47 @@ ${question_id} 0
26 *** Test Cases *** 26 *** Test Cases ***
27 Можливість оголосити однопредметний тендер 27 Можливість оголосити однопредметний тендер
28 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер 28 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
29 - log ${TEMPDIR}  
30 - log ${CURDIR}  
31 - ${ids}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA}  
32 - ${TENDER_ID}= Get From List ${ids} 0  
33 - Set Global Variable ${TENDER_ID} 29 + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера),
  30 + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${INITIAL_TENDER_DATA}
34 ${LAST_MODIFICATION_DATE}= Get Current Date 31 ${LAST_MODIFICATION_DATE}= Get Current Date
35 - Set Global Variable ${LAST_MODIFICATION_DATE} 32 + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID}
  33 + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE}
  34 + log ${TENDER}
36 35
37 Можливасть додати тендерну документацію 36 Можливасть додати тендерну документацію
38 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ 37 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ
39 - ${filename}= Set Variable file.txt  
40 - Викликати для учасника ${tender_owner} Завантажити документ ${filename} ${TENDER_ID} 38 + [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі
  39 + ${filepath}= create_fake_doc
  40 + ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']}
  41 + ${file_upload_process_data} = Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply}
  42 + log ${file_upload_process_data}
  43 + Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data}
  44 + Log ${USERS.users['${tender_owner}']}
  45 +
41 46
42 Можливість подати скаргу на умови 47 Можливість подати скаргу на умови
43 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови 48 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови
44 - Викликати для учасника ${provider} Подати скаргу ${TENDER_ID} ${COMPLAINTS[0]} 49 + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі
  50 + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
45 ${LAST_MODIFICATION_DATE}= Get Current Date 51 ${LAST_MODIFICATION_DATE}= Get Current Date
46 - Set Global Variable ${LAST_MODIFICATION_DATE} 52 + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE}
47 53
48 Можливість побачити скаргу користувачем 54 Можливість побачити скаргу користувачем
49 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера 55 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
50 - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} 56 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
51 57
52 можливість побачити скаргу анонімом 58 можливість побачити скаргу анонімом
53 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера 59 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
54 - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} 60 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
55 61
56 Пошук однопредметного тендера по ідентифікатору 62 Пошук однопредметного тендера по ідентифікатору
57 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору 63 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору
58 Дочекатись синхронізації з майданчиком ${viewer} 64 Дочекатись синхронізації з майданчиком ${viewer}
59 - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER_ID}  
60 - 65 + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
  66 +
61 ###### 67 ######
62 #Відображення основних даних оголошеного тендера: 68 #Відображення основних даних оголошеного тендера:
63 -#заголовок, опис, бюджет, тендерна документація, 69 +#заголовок, опис, бюджет, тендерна документація,
64 #procuringEntity, періоди уточнень/прийому-пропозицій, мінімального кроку 70 #procuringEntity, періоди уточнень/прийому-пропозицій, мінімального кроку
65 71
66 Відображення заголовоку оголошеного тендера 72 Відображення заголовоку оголошеного тендера
@@ -78,7 +84,7 @@ ${question_id} 0 @@ -78,7 +84,7 @@ ${question_id} 0
78 Відображення tenderID оголошеного тендера 84 Відображення tenderID оголошеного тендера
79 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера 85 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
80 ${field_response}= Викликати для учасника ${viewer} отримати інформацію із тендера tenderID 86 ${field_response}= Викликати для учасника ${viewer} отримати інформацію із тендера tenderID
81 - Should Be Equal ${TENDER_ID} ${field_response} Майданчик ${USERS.users['${viewer}'].broker} 87 + Should Be Equal ${TENDER['TENDER_UAID']} ${field_response} Майданчик ${USERS.users['${viewer}'].broker}
82 88
83 Відображення procuringEntity.name оголошеного тендера 89 Відображення procuringEntity.name оголошеного тендера
84 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера 90 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
@@ -104,26 +110,18 @@ ${question_id} 0 @@ -104,26 +110,18 @@ ${question_id} 0
104 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера 110 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
105 Звірити поле тендера ${viewer} minimalStep.amount 111 Звірити поле тендера ${viewer} minimalStep.amount
106 112
107 -Відображення тендерної документації оголошеного тендера  
108 - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера  
109 - Звірити поле тендера ${viewer} documents.title  
110 - #documents.format  
111 - #documents.url  
112 - #documents.datePublished  
113 - #documents.dateModified  
114 - #documents.id  
115 -  
116 Можливість редагувати однопредметний тендер 113 Можливість редагувати однопредметний тендер
117 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер 114 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
118 - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER_ID} description description 115 + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description
  116 +
  117 +Можливість додати позицію закупівлі в тендер
  118 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  119 + Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER['TENDER_UAID']} 3
  120 +
  121 +Можливість видалити позиції закупівлі тендера
  122 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  123 + Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER['TENDER_UAID']} 2
119 124
120 -#Можливість додати позицію закупівлі в тендер  
121 -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер  
122 -# Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER_ID} 3  
123 -#  
124 -#Можливість видалити позиції закупівлі тендера  
125 -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер  
126 -# Викликати для учасника ${tender_owner} додати предмети закупівлі ${TENDER_ID} 2  
127 125
128 ####### 126 #######
129 #Відображення однопредметного тендера 127 #Відображення однопредметного тендера
@@ -179,15 +177,15 @@ ${question_id} 0 @@ -179,15 +177,15 @@ ${question_id} 0
179 177
180 Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера 178 Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера
181 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера 179 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
182 - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.scheme 180 + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].scheme
183 181
184 Відображення ідентифікатора додаткової класифікації позицій закупівлі однопредметного тендера 182 Відображення ідентифікатора додаткової класифікації позицій закупівлі однопредметного тендера
185 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера 183 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
186 - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.id 184 + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].id
187 185
188 Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера 186 Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера
189 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера 187 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
190 - Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications.description 188 + Звірити поле тендера ${viewer} items[${item_id}].additionalClassifications[0].description
191 189
192 Відображення назви одиниці позицій закупівлі однопредметного тендера 190 Відображення назви одиниці позицій закупівлі однопредметного тендера
193 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера 191 [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів пердметів однопредметного тендера
@@ -206,14 +204,14 @@ ${question_id} 0 @@ -206,14 +204,14 @@ ${question_id} 0
206 204
207 Задати питання 205 Задати питання
208 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання 206 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання
209 - Викликати для учасника ${provider} Задати питання ${TENDER_ID} ${QUESTIONS[${question_id}]} 207 + Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]}
210 ${now}= Get Current Date 208 ${now}= Get Current Date
211 Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} 209 Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now}
212 210
213 Відображення заголовоку анонімного питання без відповіді 211 Відображення заголовоку анонімного питання без відповіді
214 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей 212 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
215 Дочекатись синхронізації з майданчиком ${viewer} 213 Дочекатись синхронізації з майданчиком ${viewer}
216 - Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_ID} 214 + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER['TENDER_UAID']}
217 Звірити поле ${viewer} questions[${question_id}].title ${QUESTIONS[${question_id}].data.title} 215 Звірити поле ${viewer} questions[${question_id}].title ${QUESTIONS[${question_id}].data.title}
218 216
219 Відображення опис анонімного питання без відповіді 217 Відображення опис анонімного питання без відповіді
@@ -222,208 +220,187 @@ ${question_id} 0 @@ -222,208 +220,187 @@ ${question_id} 0
222 220
223 Відображення дати анонімного питання без відповіді 221 Відображення дати анонімного питання без відповіді
224 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей 222 [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
225 - Звірити дату ${viewer} questions[${question_id}].date ${QUESTIONS[${question_id}].data.date} 223 + Звірити дату ${viewer} questions[${question_id}].date ${QUESTIONS[${question_id}].data.date}
226 224
227 Неможливість подати цінову пропозицію до початку періоду подачі пропозицій bidder1 225 Неможливість подати цінову пропозицію до початку періоду подачі пропозицій bidder1
228 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію 226 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
229 ${bid}= test bid data 227 ${bid}= test bid data
230 Log ${bid} 228 Log ${bid}
231 - ${biddingresponce1}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER_ID} ${bid} 229 + ${bidresponces}= Create Dictionary
  230 + ${bid_before_biddperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid}
  231 + Set To Dictionary ${bidresponces} bid_before_biddperiod_resp ${bid_before_biddperiod_resp}
  232 + Set To Dictionary ${USERS.users['${provider}']} bidresponces ${bidresponces}
  233 + log ${USERS.users['${provider}']}
232 234
233 ####### 235 #######
234 #Відображення відповіді на запитання 236 #Відображення відповіді на запитання
235 # 237 #
236 Відповісти на запитання 238 Відповісти на запитання
237 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання 239 [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання
238 - Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER_ID} 0 ${ANSWERS[0]} 240 + Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]}
239 ${now}= Get Current Date 241 ${now}= Get Current Date
240 Set To Dictionary ${ANSWERS[${question_id}].data} date ${now} 242 Set To Dictionary ${ANSWERS[${question_id}].data} date ${now}
241 243
242 Відображення відповіді на запитання 244 Відображення відповіді на запитання
243 [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання 245 [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання
244 Дочекатись синхронізації з майданчиком ${viewer} 246 Дочекатись синхронізації з майданчиком ${viewer}
245 - Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER_ID} 247 + Викликати для учасника ${viewer} обновити сторінку з тендером ${TENDER['TENDER_UAID']}
246 Звірити поле ${viewer} questions[${question_id}].answer ${ANSWERS[${question_id}].data.answer} 248 Звірити поле ${viewer} questions[${question_id}].answer ${ANSWERS[${question_id}].data.answer}
247 249
248 Можливість побачити скаргу користувачем під час періоду уточнень 250 Можливість побачити скаргу користувачем під час періоду уточнень
249 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера 251 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
250 - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} 252 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
251 253
252 можливість побачити скаргу анонімом під час періоду уточнень 254 можливість побачити скаргу анонімом під час періоду уточнень
253 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера 255 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
254 - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} 256 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
255 257
256 Подати цінову пропозицію bidder 258 Подати цінову пропозицію bidder
257 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію 259 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
258 Дочекатись дати початоку прийому пропозицій 260 Дочекатись дати початоку прийому пропозицій
259 ${bid}= test bid data 261 ${bid}= test bid data
260 Log ${bid} 262 Log ${bid}
261 - ${biddingresponce0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER_ID} ${bid} 263 + ${biddingresponce0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
262 Set Global Variable ${biddingresponce0} 264 Set Global Variable ${biddingresponce0}
263 log ${biddingresponce0} 265 log ${biddingresponce0}
264 266
265 Можливість скасувати цінову пропозицію 267 Можливість скасувати цінову пропозицію
266 [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію 268 [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію
267 - ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER_ID} ${biddingresponce0} 269 + ${biddingresponce_0}= Викликати для учасника ${provider} скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponce0}
268 270
269 Подати повторно цінову пропозицію першим учасником 271 Подати повторно цінову пропозицію першим учасником
270 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію 272 [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
271 Дочекатись дати початоку прийому пропозицій 273 Дочекатись дати початоку прийому пропозицій
272 ${bid}= test bid data 274 ${bid}= test bid data
273 Log ${bid} 275 Log ${bid}
274 - ${biddingresponce1}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER_ID} ${bid}  
275 - Set Global Variable ${biddingresponce1}  
276 - log ${biddingresponce1} 276 + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  277 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} resp ${resp}
  278 + log ${resp}
  279 + log ${USERS.users['${provider}'].bidresponces}
277 280
278 Можливість змінити повторну цінову пропозицію до 50000 281 Можливість змінити повторну цінову пропозицію до 50000
279 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію 282 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
280 - Set To Dictionary ${biddingresponce1.data.value} amount 50000  
281 - Log ${biddingresponce1.data.value}  
282 - ${biddingresponce2}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1}  
283 - Set Global Variable ${biddingresponce2}  
284 - log ${biddingresponce2} 283 + Set To Dictionary ${USERS.users['${provider}'].bidresponces['resp'].data.value} amount 50000
  284 + Log ${USERS.users['${provider}'].bidresponces['resp'].data.value}
  285 + ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponces['resp']}
  286 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} fixbidto50000resp ${fixbidto50000resp}
  287 + log ${fixbidto50000resp}
285 288
286 -Можливість змінити повторну цінову пропозицію до 400 289 +Можливість змінити повторну цінову пропозицію до 10
287 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію 290 [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
288 - Set To Dictionary ${biddingresponce1.data.value} amount 400  
289 - Log ${biddingresponce1.data.value}  
290 - ${biddingresponce3}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER_ID} ${biddingresponce1}  
291 - Set Global Variable ${biddingresponce3}  
292 - log ${biddingresponce3} 291 + Set To Dictionary ${USERS.users['${provider}'].bidresponces['resp'].data.value} amount 10
  292 + Log ${USERS.users['${provider}'].bidresponces['fixbidto50000resp'].data.value}
  293 + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponces['resp']}
  294 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} fixbidto10resp ${fixbidto10resp}
  295 + log ${fixbidto10resp}
293 296
294 Завантажити документ першим учасником в повторну пропозицію 297 Завантажити документ першим учасником в повторну пропозицію
295 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця 298 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
296 log ${USERS.users['${provider}'].broker} 299 log ${USERS.users['${provider}'].broker}
297 - log ${biddingresponce1}  
298 - ${bid_id}= get variable value ${biddingresponce1.data.id}  
299 - ${token1}= Get Variable Value ${biddingresponce1.access.token}  
300 - log ${token1}  
301 - ${uploaded_file_data}= Викликати для учасника ${provider} Завантажити документ в ставку ${token1} ${bid_id}  
302 - log ${uploaded_file_data}  
303 - Set Global Variable ${uploaded_file_data}  
304 - 300 + ${filepath}= create_fake_doc
  301 + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']}
  302 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_upload ${bid_doc_upload}
305 303
306 порівняти документ 304 порівняти документ
307 [Tags] ${USERS.users['${provider}'].broker}: вичитати документ 305 [Tags] ${USERS.users['${provider}'].broker}: вичитати документ
308 - ${flcntnt}= Get From Dictionary ${uploaded_file_data} filecontent  
309 - ${resp}= Get From Dictionary ${uploaded_file_data} upload_responce  
310 - ${flpth}= Get From Dictionary ${uploaded_file_data} filepath  
311 - ${url} = Get Variable Value ${resp.data.url}  
312 - ${token1}= Get Variable Value ${biddingresponce1.access.token}  
313 - ${doc} ${flnnm}= Викликати для учасника ${provider} отримати документ ${TENDER_ID} ${url} ${token1} 306 + ${url}= Get Variable Value ${USERS.users['${provider}'].bidresponces['bid_doc_upload']['upload_responce'].data.url}
  307 + ${doc} ${flnnm}= Викликати для учасника ${provider} отримати документ ${TENDER['TENDER_UAID']} ${url}
  308 +
  309 + FIXME: finish the keyword
  310 +
314 Should Be Equal ${flcntnt} ${doc} 311 Should Be Equal ${flcntnt} ${doc}
315 Should Be Equal ${flpth} ${flnnm} 312 Should Be Equal ${flpth} ${flnnm}
316 313
317 -  
318 Можливість змінити документацію цінової пропозиції 314 Можливість змінити документацію цінової пропозиції
319 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця 315 [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця
320 log ${USERS.users['${provider}'].broker} 316 log ${USERS.users['${provider}'].broker}
321 - log ${biddingresponce1}  
322 - ${bid_id}= get variable value ${biddingresponce1.data.id}  
323 - ${token1}= Get Variable Value ${biddingresponce1.access.token}  
324 - ${resp}= Get From Dictionary ${uploaded_file_data} upload_responce  
325 - ${upload_doc_responce_id}= get variable value ${resp.data.id}  
326 - log ${token1}  
327 - Викликати для учасника ${provider} Змінити документ в ставці ${token1} ${bid_id} ${upload_doc_responce_id} 317 + ${filepath}= create_fake_doc
  318 + ${bidid}= Get Variable Value ${USERS.users['${provider}'].bidresponces['resp'].data.id}
  319 + ${docid}= Get Variable Value ${USERS.users['${provider}'].bidresponces['bid_doc_upload']['upload_responce'].data.id}
  320 + ${bid_doc_modified}= Викликати для учасника ${provider} Змінити документ в ставці ${filepath} ${bidid} ${docid}
  321 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_modified ${bid_doc_modified}
328 322
329 Неможливість задати запитання після закінчення періоду уточнень 323 Неможливість задати запитання після закінчення періоду уточнень
330 [Documentation] 324 [Documentation]
331 ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" 325 ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed"
332 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання 326 [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання
333 - ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER_ID} ${questions[${question_id}]} 327 + ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER['TENDER_UAID']} ${questions[${question_id}]}
334 328
335 Подати цінову пропозицію другим учасником 329 Подати цінову пропозицію другим учасником
336 [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію 330 [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
337 Дочекатись дати початоку прийому пропозицій 331 Дочекатись дати початоку прийому пропозицій
338 ${bid}= test bid data 332 ${bid}= test bid data
339 Log ${bid} 333 Log ${bid}
340 - ${biddingresponce5}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER_ID} ${bid}  
341 - Set Global Variable ${biddingresponce5}  
342 - log ${biddingresponce5} 334 + ${bidresponces}= Create Dictionary
  335 + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  336 + Set To Dictionary ${bidresponces} resp ${resp}
  337 + Set To Dictionary ${USERS.users['${provider1}']} bidresponces ${bidresponces}
  338 + log ${resp}
  339 + log ${USERS.users['${provider1}'].bidresponces}
343 340
344 Неможливість побачити цінові пропозиції учасників під час прийому пропозицій 341 Неможливість побачити цінові пропозиції учасників під час прийому пропозицій
345 [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію 342 [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію
346 - ${field_date}= Викликати для учасника ${viewer} отримати інформацію із тендера B 343 +
  344 + FIXME: finish the keyword
  345 +
  346 + ${field_date}= Викликати для учасника ${viewer} отримати інформацію із тендера
347 347
348 Завантажити документ другим учасником 348 Завантажити документ другим учасником
349 - [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця 349 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість прийняти пропозицію переможця
350 log ${USERS.users['${provider1}'].broker} 350 log ${USERS.users['${provider1}'].broker}
351 - ${bid_id2}= get variable value ${biddingresponce5.data.id}  
352 - ${token2}= Get Variable Value ${biddingresponce5.access.token}  
353 - log ${token2}  
354 - Викликати для учасника ${provider1} Завантажити документ в ставку ${token2} ${bid_id2} 351 + ${filepath}= create_fake_doc
  352 + ${bid_doc_upload}= Викликати для учасника ${provider1} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']}
  353 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} bid_doc_upload ${bid_doc_upload}
355 354
356 Можливість побачити скаргу користувачем під час подачі пропозицій 355 Можливість побачити скаргу користувачем під час подачі пропозицій
357 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера 356 [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера
358 - Викликати для учасника ${provider} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} 357 + Викликати для учасника ${provider} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
359 358
360 можливість побачити скаргу анонімом під час подачі пропозицій 359 можливість побачити скаргу анонімом під час подачі пропозицій
361 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера 360 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
362 - Викликати для учасника ${viewer} порівняти скаргу ${TENDER_ID} ${COMPLAINTS[0]} 361 + Викликати для учасника ${viewer} порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
363 362
364 Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій 363 Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій
365 [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій 364 [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій
366 Дочекатись дати закінчення прийому пропозицій 365 Дочекатись дати закінчення прийому пропозицій
367 - Set To Dictionary ${biddingresponce1.data.value} amount 50000  
368 - Log ${biddingresponce5.data.value}  
369 - ${biddingresponce6}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5}  
370 - Set Global Variable ${biddingresponce6}  
371 - log ${biddingresponce6} 366 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces['resp'].data.value} amount 50000
  367 + Log ${USERS.users['${provider1}'].bidresponces['resp'].data.value}
  368 + ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']}
  369 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} failfixbidto50000resp ${failfixbidto50000resp}
  370 + log ${failfixbidto50000resp}
372 371
373 Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій 372 Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій
374 [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій 373 [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій
375 - Set To Dictionary ${biddingresponce5.data.value} amount 1  
376 - Log ${biddingresponce1.data.value}  
377 - ${biddingresponce7}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5}  
378 - Set Global Variable ${biddingresponce7}  
379 - log ${biddingresponce3} 374 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces['resp'].data.value} amount 1
  375 + Log ${USERS.users['${provider1}'].bidresponces['resp'].data.value}
  376 + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']}
  377 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} failfixbidto1resp ${failfixbidto1resp}
  378 + log ${failfixbidto1resp}
380 379
381 Неможливість скасувати цінову пропозицію 380 Неможливість скасувати цінову пропозицію
382 - [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію  
383 - ${biddingresponce8}= Викликати для учасника ${provider} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5} 381 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію
  382 + ${biddingresponce}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponces['resp']}
384 383
385 Неможливість завантажити документ другим учасником після закінчення прийому пропозицій 384 Неможливість завантажити документ другим учасником після закінчення прийому пропозицій
386 - [Tags] ${USERS.users['${provider}'].broker}: Неможливість документ першим учасником після закінчення прийому пропозицій  
387 - log ${USERS.users['${provider1}'].broker}  
388 - log ${biddingresponce5}  
389 - ${bid_id}= get variable value ${biddingresponce5.data.id}  
390 - ${token1}= Get Variable Value ${biddingresponce5.access.token}  
391 - log ${token1}  
392 - ${upload_doc_responce2}= Викликати для учасника ${provider1} Завантажити документ в ставку shouldfail ${token1} ${bid_id}  
393 - log ${upload_doc_responce_2}  
394 - Set Global Variable ${upload_doc_responce2}  
395 -  
396 -Неможливість змінити документацію цінової пропозиції після закінчення прийому пропозицій  
397 - [Tags] ${USERS.users['${provider}'].broker}: Неможливість змінити документацію цінової пропозиції після закінчення прийому пропозицій  
398 - log ${USERS.users['${provider}'].broker}  
399 - log ${biddingresponce5}  
400 - ${bid_id}= get variable value ${biddingresponce5.data.id}  
401 - ${token1}= Get Variable Value ${biddingresponce5.access.token}  
402 - ${upload_doc_responce_id2}= get variable value ${upload_doc_responce2[0].data.id}  
403 - log ${upload_doc_responce_id2}  
404 - log ${token1}  
405 - Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id2} 385 + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість документ першим учасником після закінчення прийому пропозицій
  386 + ${filepath}= create_fake_doc
  387 + ${bid_doc_upload_fail}= Викликати для учасника ${provider1} Завантажити документ в ставку shouldfail ${filepath} ${TENDER['TENDER_UAID']}
  388 + Set To Dictionary ${USERS.users['${provider1}'].bidresponces} bid_doc_upload_fail ${bid_doc_upload_fail}
  389 +
406 390
407 Неможливість змінити існуючу документацію цінової пропозиції після закінчення прийому пропозицій 391 Неможливість змінити існуючу документацію цінової пропозиції після закінчення прийому пропозицій
408 - [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця  
409 - log ${USERS.users['${provider}'].broker}  
410 - log ${biddingresponce1}  
411 - ${bid_id}= get variable value ${biddingresponce1.data.id}  
412 - ${token1}= Get Variable Value ${biddingresponce1.access.token}  
413 - ${upload_doc_responce_id}= get variable value ${upload_doc_responce[0].data.id}  
414 - log ${token1}  
415 - Викликати для учасника ${provider} Змінити документ в ставці shouldfail ${token1} ${bid_id} ${upload_doc_responce_id}  
416 -  
417 -Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій  
418 - [Tags] ${USERS.users['${provider}'].broker}: Неможливість скасувати цінову пропозицію після закінчення прийому пропозицій  
419 - ${biddingresponce8}= Викликати для учасника ${provider1} скасувати цінову пропозицію shouldfail ${TENDER_ID} ${biddingresponce5}  
420 - Set Global Variable ${biddingresponce8}  
421 - log ${biddingresponce8} 392 + [Tags] ${USERS.users['${provider1}'].broker}:
  393 + ${filepath}= create_fake_doc
  394 + ${bidid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].data.id}
  395 + ${docid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['bid_doc_upload']['upload_responce'].data.id}
  396 + ${bid_doc_modified_failed}= Викликати для учасника ${provider1} Змінити документ в ставці shouldfail ${filepath} ${bidid} ${docid}
  397 + Set To Dictionary ${USERS.users['${provider}'].bidresponces} bid_doc_modified_failed ${bid_doc_modified_failed}
  398 +
422 399
423 Вичитати цінову пропозицію 400 Вичитати цінову пропозицію
424 - sleep 120  
425 - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію  
426 - ${bid_id} = get variable value ${biddingresponce1.data.id}  
427 - ${token1}= Get Variable Value ${biddingresponce1.access.token}  
428 - ${bids}= Викликати для учасника ${provider} Отримати пропозиції ${TENDER_ID} ${bid_id} ${token1} 401 +# sleep 120
  402 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
  403 + ${bidid}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].data.id}
  404 + ${token}= Get Variable Value ${USERS.users['${provider1}'].bidresponces['resp'].access.token}
  405 + ${bids}= Викликати для учасника ${provider1} Отримати пропозиції ${TENDER['TENDER_UAID']} ${bidid} ${token}
429 log ${bids} 406 log ${bids}
Please register or login to post a comment