Commit b5a343fa5d657f2a417cf7ae623995b1d6354d9e

Authored by Myroslav Opyr
2 parents e16a0f3d 287fc6f6

Merge pull request #42 from selurvedu/separate-etender

Export E-tender into separate repository; various fixes
@@ -36,6 +36,7 @@ gh_push = git@github.com: @@ -36,6 +36,7 @@ gh_push = git@github.com:
36 36
37 [sources] 37 [sources]
38 openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git 38 openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git
  39 +robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git
39 40
40 [versions] 41 [versions]
41 fake-factory = 0.5.3 42 fake-factory = 0.5.3
1 -*** Settings ***  
2 -Library Selenium2Screenshots  
3 -Library String  
4 -Library DateTime  
5 -Library etender_service.py  
6 -  
7 -*** Variables ***  
8 -${locator.tenderId} jquery=h3  
9 -${locator.title} jquery=tender-subject-info>div.row:contains("Назва закупівлі:")>:eq(1)>  
10 -${locator.description} jquery=tender-subject-info>div.row:contains("Детальний опис закупівлі:")>:eq(1)>  
11 -${locator.minimalStep.amount} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[9]  
12 -${locator.procuringEntity.name} jquery=customer-info>div.row:contains("Найменування:")>:eq(1)>  
13 -${locator.value.amount} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[8]  
14 -${locator.tenderPeriod.startDate} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[3]  
15 -${locator.tenderPeriod.endDate} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[4]  
16 -${locator.enquiryPeriod.startDate} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[1]  
17 -${locator.enquiryPeriod.endDate} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[2]  
18 -${locator.items[0].description} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[12]  
19 -${locator.items[0].deliveryDate.endDate} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[14]  
20 -${locator.items[0].deliveryLocation.latitude} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[15]  
21 -${locator.items[0].deliveryLocation.longitude} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[15]  
22 -${locator.items[0].deliveryAddress.postalCode} xpath=//div[@class='col-sm-8']//span[@ng-if='item.deliveryAddress.postIndex']  
23 -${locator.items[0].deliveryAddress.countryName} xpath=//div[@class='col-sm-8']//span[@ng-if='item.deliveryAddress.country.title']  
24 -${locator.items[0].deliveryAddress.region} xpath=//div[@class='col-sm-8']//span[@ng-if='item.deliveryAddress.region.title']  
25 -${locator.items[0].deliveryAddress.locality} xpath=//div[@class='col-sm-8']//span[@ng-if='item.deliveryAddress.city.title']  
26 -${locator.items[0].deliveryAddress.streetAddress} xpath=//div[@class='col-sm-8']//span[@ng-if='item.deliveryAddress.addressStr']  
27 -${locator.items[0].classification.scheme} xpath=(//div[@class = 'col-sm-4']/p)[11]  
28 -${locator.items[0].classification.id} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[10]  
29 -${locator.items[0].classification.description} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[10]  
30 -${locator.items[0].additionalClassifications[0].scheme} xpath=(//div[@class = 'col-sm-4']/p)[12]  
31 -${locator.items[0].additionalClassifications[0].id} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[11]  
32 -${locator.items[0].additionalClassifications[0].description} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[11]  
33 -${locator.items[0].unit.code} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[13]  
34 -${locator.items[0].quantity} xpath=(//div[@class = 'col-sm-8']/p[@class='ng-binding'])[13]  
35 -${locator.questions[0].title} xpath=(//div[@class='col-sm-10']/span[@class='ng-binding'])[2]  
36 -${locator.questions[0].description} xpath=(//div[@class='col-sm-10']/span[@class='ng-binding'])[3]  
37 -${locator.questions[0].date} xpath=(//div[@class='col-sm-10']/span[@class='ng-binding'])[1]  
38 -${locator.questions[0].answer} xpath=(//div[@textarea='question.answer']/pre[@class='ng-binding'])[1]  
39 -  
40 -*** Keywords ***  
41 -Підготувати дані для оголошення тендера  
42 - ${INITIAL_TENDER_DATA}= prepare_test_tender_data  
43 - ${INITIAL_TENDER_DATA}= Add_data_for_GUI_FrontEnds ${INITIAL_TENDER_DATA}  
44 - [return] ${INITIAL_TENDER_DATA}  
45 -  
46 -Підготувати клієнт для користувача  
47 - [Arguments] @{ARGUMENTS}  
48 - [Documentation] Відкрити браузер, створити об’єкт api wrapper, тощо  
49 - ... ${ARGUMENTS[0]} == username  
50 - Open Browser ${USERS.users['${ARGUMENTS[0]}'].homepage} ${USERS.users['${username}'].browser} alias=${ARGUMENTS[0]}  
51 - Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size}  
52 - Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position}  
53 - Run Keyword If '${ARGUMENTS[0]}' != 'E-tender_Viewer' Login  
54 -  
55 -Login  
56 - Wait Until Page Contains Element id=inputUsername 10  
57 - Sleep 1  
58 - Input text id=inputUsername ${USERS.users['${username}'].login}  
59 - Wait Until Page Contains Element id=inputPassword 10  
60 - Sleep 1  
61 - Input text id=inputPassword ${USERS.users['${username}'].password}  
62 - Click Button id=btn_submit  
63 -  
64 -Створити тендер  
65 - [Arguments] @{ARGUMENTS}  
66 - [Documentation]  
67 - ... ${ARGUMENTS[0]} == username  
68 - ... ${ARGUMENTS[1]} == tender_data  
69 - ${tender_data}= Add_data_for_GUI_FrontEnds ${ARGUMENTS[1]}  
70 - ${tender_data}= procuring_entity_name ${tender_data}  
71 - ${items}= Get From Dictionary ${tender_data.data} items  
72 - ${title}= Get From Dictionary ${tender_data.data} title  
73 - ${description}= Get From Dictionary ${tender_data.data} description  
74 - ${budget}= Get From Dictionary ${tender_data.data.value} amount  
75 - ${step_rate}= Get From Dictionary ${tender_data.data.minimalStep} amount  
76 - ${items_description}= Get From Dictionary ${items[0]} description  
77 - ${quantity}= Get From Dictionary ${items[0]} quantity  
78 - ${cpv}= Get From Dictionary ${items[0].classification} id  
79 - ${unit}= Get From Dictionary ${items[0].unit} name  
80 - ${latitude} Get From Dictionary ${items[0].deliveryLocation} latitude  
81 - ${longitude} Get From Dictionary ${items[0].deliveryLocation} longitude  
82 - ${postalCode} Get From Dictionary ${items[0].deliveryAddress} postalCode  
83 - ${streetAddress} Get From Dictionary ${items[0].deliveryAddress} streetAddress  
84 - ${deliveryDate} Get From Dictionary ${items[0].deliveryDate} endDate  
85 - ${deliveryDate} convert_date_to_etender_format ${deliveryDate}  
86 - ${start_date}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate  
87 - ${start_date}= convert_date_to_etender_format ${start_date}  
88 - ${start_time}= Get From Dictionary ${tender_data.data.tenderPeriod} startDate  
89 - ${start_time}= convert_time_to_etender_format ${start_time}  
90 - ${end_date}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate  
91 - ${end_date}= convert_date_to_etender_format ${end_date}  
92 - ${end_time}= Get From Dictionary ${tender_data.data.tenderPeriod} endDate  
93 - ${end_time}= convert_time_to_etender_format ${end_time}  
94 - ${enquiry_end_date}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate  
95 - ${enquiry_end_date}= convert_date_to_etender_format ${enquiry_end_date}  
96 - ${enquiry_end_time}= Get From Dictionary ${tender_data.data.enquiryPeriod} endDate  
97 - ${enquiry_end_time}= convert_time_to_etender_format ${enquiry_end_time}  
98 -  
99 - Selenium2Library.Switch Browser ${ARGUMENTS[0]}  
100 - Wait Until Page Contains Мої закупівлі 10  
101 - Sleep 1  
102 - Click Element xpath=//a[contains(@class, 'ng-binding')][./text()='Мої закупівлі']  
103 - Sleep 5  
104 - Wait Until Page Contains Element xpath=//a[contains(@class, 'btn btn-info')]  
105 - Click Element xpath=//a[contains(@class, 'btn btn-info')]  
106 - Wait Until Page Contains Element id=title  
107 - Input text id=title ${title}  
108 - Input text id=description ${description}  
109 - Input text id=value ${budget}  
110 - Click Element xpath=//div[contains(@class, 'form-group col-sm-6')]//input[@type='checkbox']  
111 - Input text id=minimalStep ${step_rate}  
112 - Input text id=itemsDescription ${items_description}  
113 - Input text id=itemsQuantity ${quantity}  
114 - Input text name=delStartDate ${deliveryDate}  
115 - Sleep 2  
116 - Input text xpath=//input[@ng-model='data.items[0].deliveryDate.endDate'] ${deliveryDate}  
117 - Input text name=latitude ${latitude}  
118 - Input text name=longitude ${longitude}  
119 - Click Element xpath=//select[@name='region']//option[@label='Київська']  
120 - Sleep 2  
121 - Click Element xpath=//select[@name='city']//option[@label='Київ']  
122 - Input text name=addressStr ${streetAddress}  
123 - Input text name=postIndex ${postalCode}  
124 - Wait Until Page Contains Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram']  
125 - Click Element xpath=//select[@name="itemsUnit"]/option[@value='kilogram']  
126 - Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='enqPEndDate'] ${enquiry_end_date}  
127 - Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.enquiryPeriod.endDate'] ${enquiry_end_time}  
128 - Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='startDate'] ${start_date}  
129 - Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.startDate'] ${start_time}  
130 - Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//input[@name='endDate'] ${end_date}  
131 - Input text xpath=//div[contains(@class, 'form-group col-sm-8')]//div[contains(@class, 'col-sm-2')]//input[@ng-model='data.tenderPeriod.endDate'] ${end_time}  
132 - Sleep 2  
133 - Click Element xpath=//div[contains(@class, 'col-sm-2')]//input[@data-target='#classification']  
134 - Sleep 1  
135 - Input text xpath=//div[contains(@class, 'modal-content')]//input[@ng-model='searchstring'] ${cpv}  
136 - Sleep 2  
137 - Wait Until Page Contains ${cpv}  
138 - Click Element xpath=//td[contains(., '${cpv}')]  
139 - Sleep 1  
140 - Click Element xpath=//div[contains(@class, 'modal-content')]//button[@ng-click='choose()']  
141 - Sleep 1  
142 - Додати предмет ${items[0]} 0  
143 - Run Keyword if '${mode}' == 'multi' Додати багато предметів items  
144 - Sleep 1  
145 - Wait Until Page Contains Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']  
146 - Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']  
147 - Sleep 1  
148 - Wait Until Page Contains [ТЕСТУВАННЯ] 10  
149 - Sleep 20  
150 - Click Element xpath=//*[text()='${title}']  
151 - Sleep 5  
152 - ${tender_UAid}= Get Text xpath=//div[contains(@class, "panel-heading")]  
153 - ${tender_UAid}= Get Substring ${tender_UAid} 10  
154 - ${Ids}= Convert To String ${tender_UAid}  
155 - Run keyword if '${mode}' == 'multi' Set Multi Ids ${ARGUMENTS[0]} ${tender_UAid}  
156 - [return] ${Ids}  
157 -  
158 -Set Multi Ids  
159 - [Arguments] @{ARGUMENTS}  
160 - [Documentation]  
161 - ... ${ARGUMENTS[0]} == ${tender_UAid}  
162 - ${current_location}= Get Location  
163 - ${id}= Get Substring ${current_location} 10  
164 - ${Ids}= Create List ${tender_UAid} ${id}  
165 -  
166 -Додати предмет  
167 - [Arguments] @{ARGUMENTS}  
168 - [Documentation]  
169 - ... ${ARGUMENTS[0]} == items  
170 - ... ${ARGUMENTS[1]} == ${INDEX}  
171 - ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description  
172 - ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id  
173 - Sleep 2  
174 - Click Element xpath=(//div[contains(@class, 'col-sm-2')]//input[@data-target='#addClassification'])[${ARGUMENTS[1]}+1]  
175 - Wait Until Element Is Visible xpath=//div[contains(@id,'addClassification')]  
176 - Sleep 2  
177 - Input text xpath=//div[contains(@class, 'modal fade ng-scope in')]//input[@ng-model='searchstring'] ${dkpp_desc}  
178 - Wait Until Page Contains ${dkpp_id}  
179 - Sleep 1  
180 - Click Element xpath=//td[contains(., '${dkpp_id}')]  
181 - Click Element xpath=//div[contains(@class, 'modal fade ng-scope in')]//button[@ng-click='choose()']  
182 - Sleep 2  
183 -  
184 -Додати багато предметів  
185 - [Arguments] @{ARGUMENTS}  
186 - [Documentation]  
187 - ... ${ARGUMENTS[0]} == items  
188 - ${Items_length}= Get Length ${items}  
189 - : FOR ${INDEX} IN RANGE 1 ${Items_length}  
190 - \ Click Element xpath=.//*[@id='myform']/tender-form/div/button  
191 - \ Додати предмет ${items[${INDEX}]} ${INDEX}  
192 -  
193 -Клацнути і дочекатися  
194 - [Arguments] ${click_locator} ${wanted_locator} ${timeout}  
195 - [Documentation]  
196 - ... click_locator: Where to click  
197 - ... wanted_locator: What are we waiting for  
198 - ... timeout: Timeout  
199 - Click Link ${click_locator}  
200 - Wait Until Page Contains Element ${wanted_locator} ${timeout}  
201 -  
202 -Шукати і знайти  
203 - Клацнути і дочекатися jquery=a[ng-click='search()'] jquery=a[href^="#/tenderDetailes"] 5  
204 -  
205 -Пошук тендера по ідентифікатору  
206 - [Arguments] @{ARGUMENTS}  
207 - [Documentation]  
208 - ... ${ARGUMENTS[0]} == username  
209 - ... ${ARGUMENTS[1]} == ${TENDER_UAID}  
210 - Switch browser ${ARGUMENTS[0]}  
211 - Go To ${USERS.users['${ARGUMENTS[0]}'].homepage}  
212 - Wait Until Page Contains Прозорі закупівлі 10  
213 - sleep 1  
214 - Input Text jquery=input[ng-change='searchChange()'] ${ARGUMENTS[1]}  
215 - sleep 1  
216 - ${timeout_on_wait}= Get Broker Property By Username ${ARGUMENTS[0]} timeout_on_wait  
217 - ${passed}= Run Keyword And Return Status Wait Until Keyword Succeeds ${timeout_on_wait} s 0 s Шукати і знайти  
218 - Run Keyword Unless ${passed} Fatal Error Тендер не знайдено за ${timeout_on_wait} секунд  
219 - sleep 3  
220 - Click Link jquery=a[href^="#/tenderDetailes"]  
221 - Wait Until Page Contains ${ARGUMENTS[1]} 10  
222 - sleep 1  
223 - Capture Page Screenshot  
224 -  
225 -Завантажити документ  
226 - [Arguments] @{ARGUMENTS}  
227 - [Documentation]  
228 - ... ${ARGUMENTS[0]} == username  
229 - ... ${ARGUMENTS[1]} == ${TENDER_UAID}  
230 - ... ${ARGUMENTS[2]} == ${Complain}  
231 - Fail Тест не написаний  
232 -  
233 -Подати скаргу  
234 - [Arguments] @{ARGUMENTS}  
235 - [Documentation]  
236 - ... ${ARGUMENTS[0]} == username  
237 - ... ${ARGUMENTS[1]} == ${TENDER_UAID}  
238 - ... ${ARGUMENTS[2]} == ${Complain}  
239 - Fail Не реалізований функціонал  
240 -  
241 -порівняти скаргу  
242 - [Arguments] @{ARGUMENTS}  
243 - [Documentation]  
244 - ... ${ARGUMENTS[0]} == username  
245 - ... ${ARGUMENTS[1]} == ${file_path}  
246 - ... ${ARGUMENTS[2]} == ${TENDER_UAID}  
247 - Fail Не реалізований функціонал  
248 -  
249 -Подати цінову пропозицію  
250 - [Arguments] @{ARGUMENTS}  
251 - [Documentation]  
252 - ... ${ARGUMENTS[0]} == username  
253 - ... ${ARGUMENTS[1]} == ${TENDER_UAID}  
254 - ... ${ARGUMENTS[2]} == ${test_bid_data}  
255 - ${bid}= Get From Dictionary ${ARGUMENTS[2].data.value} amount  
256 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
257 - Wait Until Page Contains Інформація про процедуру закупівлі 10  
258 - Wait Until Page Contains Element id=amount 10  
259 - Input text id=amount ${bid}  
260 - Click Element xpath=//button[contains(@class, 'btn btn-success')][./text()='Реєстрація пропозиції']  
261 - DEBUG  
262 - Click Element xpath=//div[@class='row']/button[@class='btn btn-success']  
263 -  
264 -скасувати цінову пропозицію  
265 - [Arguments] @{ARGUMENTS}  
266 - [Documentation]  
267 - ... ${ARGUMENTS[0]} == username  
268 - ... ${ARGUMENTS[1]} == ${TENDER_UAID}  
269 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
270 - Click Element xpath=//button[@class='btn-sm btn-danger ng-isolate-scope']  
271 -  
272 -Оновити сторінку з тендером  
273 - [Arguments] @{ARGUMENTS}  
274 - [Documentation]  
275 - ... ${ARGUMENTS[0]} = username  
276 - ... ${ARGUMENTS[1]} = ${TENDER_UAID}  
277 - Selenium2Library.Switch Browser ${ARGUMENTS[0]}  
278 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
279 - Reload Page  
280 -  
281 -Задати питання  
282 - [Arguments] @{ARGUMENTS}  
283 - [Documentation]  
284 - ... ${ARGUMENTS[0]} = username  
285 - ... ${ARGUMENTS[1]} = ${TENDER_UAID}  
286 - ... ${ARGUMENTS[2]} = question_data  
287 -  
288 - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title  
289 - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description  
290 -  
291 - Selenium2Library.Switch Browser ${ARGUMENTS[0]}  
292 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
293 - Wait Until Page Contains Element jquery=a[href^="#/addQuestion/"] 10  
294 - Click Element jquery=a[href^="#/addQuestion/"]  
295 - Wait Until Page Contains Element id=title  
296 - Input text id=title ${title}  
297 - Input text id=description ${description}  
298 - Click Element xpath=//div[contains(@class, 'form-actions')]//button[@type='submit']  
299 -  
300 -Відповісти на питання  
301 - [Arguments] @{ARGUMENTS}  
302 - [Documentation]  
303 - ... ${ARGUMENTS[0]} = username  
304 - ... ${ARGUMENTS[1]} = ${TENDER_UAID}  
305 - ... ${ARGUMENTS[2]} = 0  
306 - ... ${ARGUMENTS[3]} = answer_data  
307 -  
308 - ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer  
309 -  
310 - Selenium2Library.Switch Browser ${ARGUMENTS[0]}  
311 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
312 - Wait Until Page Contains Element xpath=//pre[@class='ng-binding'][text()='Додати відповідь'] 10  
313 - Click Element xpath=//pre[@class='ng-binding'][text()='Додати відповідь']  
314 - Input text xpath=//div[@class='editable-controls form-group']//textarea ${answer}  
315 - Click Element xpath=//span[@class='editable-buttons']/button[@type='submit']  
316 -  
317 -Внести зміни в тендер  
318 - [Arguments] @{ARGUMENTS}  
319 - [Documentation]  
320 - ... ${ARGUMENTS[0]} = username  
321 - ... ${ARGUMENTS[1]} = ${TENDER_UAID}  
322 - ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval  
323 - ${ADDITIONAL_DATA}= prepare_test_tender_data ${period_interval} single  
324 - ${tender_data}= Add_data_for_GUI_FrontEnds ${ADDITIONAL_DATA}  
325 - ${items}= Get From Dictionary ${tender_data.data} items  
326 - ${description}= Get From Dictionary ${tender_data.data} description  
327 - Selenium2Library.Switch Browser ${ARGUMENTS[0]}  
328 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
329 - Wait Until Page Contains Element xpath=//a[@class='btn btn-primary ng-scope'] 10  
330 - Click Element xpath=//a[@class='btn btn-primary ng-scope']  
331 - Sleep 2  
332 - Input text id=description ${description}  
333 - Click Element xpath=//button[@class='btn btn-info ng-isolate-scope']  
334 - Capture Page Screenshot  
335 -  
336 -додати предмети закупівлі  
337 - [Arguments] @{ARGUMENTS}  
338 - [Documentation]  
339 - ... ${ARGUMENTS[0]} = username  
340 - ... ${ARGUMENTS[1]} = ${TENDER_UAID}  
341 - ... ${ARGUMENTS[2]} = 3  
342 - ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval  
343 - ${ADDITIONAL_DATA}= prepare_test_tender_data ${period_interval} multi  
344 - ${tender_data}= Add_data_for_GUI_FrontEnds ${ADDITIONAL_DATA}  
345 - ${items}= Get From Dictionary ${tender_data.data} items  
346 - Selenium2Library.Switch Browser ${ARGUMENTS[0]}  
347 - Run keyword if '${TEST NAME}' == 'Можливість додати позицію закупівлі в тендер' додати позицію  
348 - Run keyword if '${TEST NAME}' != 'Можливість додати позицію закупівлі в тендер' видалити позиції  
349 -  
350 -додати позицію  
351 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
352 - Sleep 2  
353 - Click Element xpath=//a[@class='btn btn-primary ng-scope']  
354 - Sleep 2  
355 - : FOR ${INDEX} IN RANGE 1 ${ARGUMENTS[2]} +1  
356 - \ Click Element xpath=.//*[@id='myform']/tender-form/div/button  
357 - \ Додати предмет ${items[${INDEX}]} ${INDEX}  
358 - Sleep 2  
359 - Click Element xpath=//div[@class='form-actions']/button[./text()='Зберегти зміни']  
360 - Wait Until Page Contains [ТЕСТУВАННЯ] 10  
361 -  
362 -видалити позиції  
363 - etender.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]}  
364 - Click Element xpath=//a[@class='btn btn-primary ng-scope']  
365 - Sleep 2  
366 - : FOR ${INDEX} IN RANGE 1 ${ARGUMENTS[2]} +1  
367 - \ Click Element xpath=(//button[@class='btn btn-danger ng-scope'])[last()]  
368 - \ Sleep 1  
369 - Sleep 2  
370 - Wait Until Page Contains Element xpath=//div[@class='form-actions']/button[./text()='Зберегти зміни'] 10  
371 - Click Element xpath=//div[@class='form-actions']/button[./text()='Зберегти зміни']  
372 - Wait Until Page Contains [ТЕСТУВАННЯ] 10  
373 -  
374 -Отримати інформацію із тендера  
375 - [Arguments] @{ARGUMENTS}  
376 - [Documentation]  
377 - ... ${ARGUMENTS[0]} == username  
378 - ... ${ARGUMENTS[1]} == fieldname  
379 - Switch browser ${ARGUMENTS[0]}  
380 - Run Keyword And Return Отримати інформацію про ${ARGUMENTS[1]}  
381 -  
382 -Отримати текст із поля і показати на сторінці  
383 - [Arguments] ${fieldname}  
384 - sleep 3  
385 -# відмітити на сторінці поле з тендера ${fieldname} ${locator.${fieldname}}  
386 - ${return_value}= Get Text ${locator.${fieldname}}  
387 - [return] ${return_value}  
388 -  
389 -Отримати інформацію про title  
390 - ${return_value}= Отримати текст із поля і показати на сторінці title  
391 - [return] ${return_value}  
392 -  
393 -Отримати інформацію про description  
394 - ${return_value}= Отримати текст із поля і показати на сторінці description  
395 - [return] ${return_value}  
396 -  
397 -Отримати інформацію про minimalStep.amount  
398 - ${return_value}= Отримати текст із поля і показати на сторінці minimalStep.amount  
399 - ${return_value}= Convert To Number ${return_value.split(' ')[0]}  
400 - [return] ${return_value}  
401 -  
402 -Отримати інформацію про value.amount  
403 - ${return_value}= Отримати текст із поля і показати на сторінці value.amount  
404 - ${return_value}= Evaluate "".join("${return_value}".split(' ')[:-3])  
405 - ${return_value}= Convert To Number ${return_value}  
406 - [return] ${return_value}  
407 -  
408 -Відмітити на сторінці поле з тендера  
409 - [Arguments] ${fieldname} ${locator}  
410 - ${last_note_id}= Add pointy note ${locator} Found ${fieldname} width=200 position=bottom  
411 - Align elements horizontally ${locator} ${last_note_id}  
412 - sleep 1  
413 - Remove element ${last_note_id}  
414 -  
415 -Отримати інформацію про tenderId  
416 - ${return_value}= Отримати текст із поля і показати на сторінці tenderId  
417 - ${return_value}= Get Substring ${return_value} 10  
418 - [return] ${return_value}  
419 -  
420 -Отримати інформацію про procuringEntity.name  
421 - ${return_value}= Отримати текст із поля і показати на сторінці procuringEntity.name  
422 - [return] ${return_value}  
423 -  
424 -Отримати інформацію про tenderPeriod.startDate  
425 - ${return_value}= Отримати текст із поля і показати на сторінці tenderPeriod.startDate  
426 - ${return_value}= Change_date_to_month ${return_value}  
427 - [return] ${return_value}  
428 -  
429 -Отримати інформацію про tenderPeriod.endDate  
430 - ${return_value}= Отримати текст із поля і показати на сторінці tenderPeriod.endDate  
431 - ${return_value}= Change_date_to_month ${return_value}  
432 - [return] ${return_value}  
433 -  
434 -Отримати інформацію про enquiryPeriod.startDate  
435 - ${return_value}= Отримати текст із поля і показати на сторінці enquiryPeriod.startDate  
436 - ${return_value}= Change_date_to_month ${return_value}  
437 - [return] ${return_value}  
438 -  
439 -Отримати інформацію про enquiryPeriod.endDate  
440 - ${return_value}= Отримати текст із поля і показати на сторінці enquiryPeriod.endDate  
441 - ${return_value}= Change_date_to_month ${return_value}  
442 - [return] ${return_value}  
443 -  
444 -Change_date_to_month  
445 - [Arguments] @{ARGUMENTS}  
446 - [Documentation]  
447 - ... ${ARGUMENTS[0]} == date  
448 - ${day}= Get Substring ${ARGUMENTS[0]} 0 2  
449 - ${month}= Get Substring ${ARGUMENTS[0]} 3 6  
450 - ${year}= Get Substring ${ARGUMENTS[0]} 5  
451 - ${return_value}= Convert To String ${month}${day}${year}  
452 - [return] ${return_value}  
453 -  
454 -Отримати інформацію про items[0].description  
455 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].description  
456 - [return] ${return_value}  
457 -  
458 -Отримати інформацію про items[0].deliveryLocation.latitude  
459 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryLocation.latitude  
460 - ${return_value}= Get Substring ${return_value} 0 10  
461 - [return] ${return_value}  
462 -  
463 -Отримати інформацію про items[0].deliveryLocation.longitude  
464 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryLocation.longitude  
465 - ${return_value}= Get Substring ${return_value} 12 22  
466 - [return] ${return_value}  
467 -  
468 -Отримати інформацію про items[0].unit.code  
469 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].unit.code  
470 - ${return_value}= Get Substring ${return_value} 5  
471 - Run Keyword And Return If '${return_value}' == 'кг.' Convert To String KGM  
472 - [return] ${return_value}  
473 -  
474 -Отримати інформацію про items[0].quantity  
475 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].quantity  
476 - ${return_value}= Get Substring ${return_value} 0 4  
477 - ${return_value}= Convert To Number ${return_value}  
478 - [return] ${return_value}  
479 -  
480 -Отримати інформацію про items[0].classification.id  
481 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].classification.id  
482 - [return] ${return_value.split(' ')[0]}  
483 -  
484 -Отримати інформацію про items[0].classification.scheme  
485 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].classification.scheme  
486 - ${return_value}= Get Substring ${return_value} 0 -1  
487 - [return] ${return_value.split(' ')[1]}  
488 -  
489 -Отримати інформацію про items[0].classification.description  
490 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].classification.description  
491 - ${return_value}= Get Substring ${return_value} 11  
492 - Run Keyword And Return If '${return_value}' == 'Картонки' Convert To String Cartons  
493 - [return] ${return_value}  
494 -  
495 -Отримати інформацію про items[0].additionalClassifications[0].id  
496 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].id  
497 - [return] ${return_value.split(' ')[0]}  
498 -  
499 -Отримати інформацію про items[0].additionalClassifications[0].scheme  
500 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].scheme  
501 - ${return_value}= Get Substring ${return_value} 0 -1  
502 - [return] ${return_value.split(' ')[1]}  
503 -  
504 -Отримати інформацію про items[0].additionalClassifications[0].description  
505 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].description  
506 - ${return_value}= Get Substring ${return_value} 8 60  
507 - ${return_value}= Remove String ${return_value} "  
508 - ${return_value}= Convert To Lowercase ${return_value}  
509 - [return] ${return_value}  
510 -  
511 -Отримати інформацію про items[0].deliveryAddress.postalCode  
512 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.postalCode  
513 - ${return_value}= Get Substring ${return_value} 0 5  
514 - [return] ${return_value}  
515 -  
516 -Отримати інформацію про items[0].deliveryAddress.countryName  
517 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.countryName  
518 - ${return_value}= Get Substring ${return_value} 0 7  
519 - [return] ${return_value}  
520 -  
521 -Отримати інформацію про items[0].deliveryAddress.region  
522 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.region  
523 - Run Keyword And Return Remove String ${return_value} ,  
524 -  
525 -Отримати інформацію про items[0].deliveryAddress.locality  
526 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.locality  
527 - Run Keyword And Return Remove String ${return_value} ,  
528 -  
529 -Отримати інформацію про items[0].deliveryAddress.streetAddress  
530 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.streetAddress  
531 - [return] ${return_value}  
532 -  
533 -Отримати інформацію про items[0].deliveryDate.endDate  
534 - ${return_value}= Отримати текст із поля і показати на сторінці items[0].deliveryDate.endDate  
535 - ${time}= Отримати текст із поля і показати на сторінці enquiryPeriod.startDate  
536 - ${time}= Get Substring ${time} 11  
537 - ${day}= Get Substring ${return_value} 16 18  
538 - ${month}= Get Substring ${return_value} 18 22  
539 - ${year}= Get Substring ${return_value} 22  
540 - ${return_value}= Convert To String ${year}${month}${day}${time}  
541 - [return] ${return_value}  
542 -  
543 -Отримати інформацію про questions[0].title  
544 - ${return_value}= Отримати текст із поля і показати на сторінці questions[0].title  
545 - [return] ${return_value}  
546 -  
547 -Отримати інформацію про questions[0].description  
548 - ${return_value}= Отримати текст із поля і показати на сторінці questions[0].description  
549 - [return] ${return_value}  
550 -  
551 -Отримати інформацію про questions[0].date  
552 - ${return_value}= Отримати текст із поля і показати на сторінці questions[0].date  
553 - ${return_value}= Change_date_to_month ${return_value}  
554 - [return] ${return_value}  
555 -  
556 -Отримати інформацію про questions[0].answer  
557 - ${return_value}= Отримати текст із поля і показати на сторінці questions[0].answer  
558 - [return] ${return_value}  
1 -# -*- coding: utf-8 -  
2 -from iso8601 import parse_date  
3 -  
4 -  
5 -def convert_date_to_etender_format(isodate):  
6 - iso_dt = parse_date(isodate)  
7 - date_string = iso_dt.strftime("%d-%m-%Y")  
8 - return date_string  
9 -  
10 -  
11 -def convert_datetime_for_delivery(isodate):  
12 - iso_dt = parse_date(isodate)  
13 - date_string = iso_dt.strftime("%Y-%m-%d %H:%M")  
14 - return date_string  
15 -  
16 -  
17 -def convert_time_to_etender_format(isodate):  
18 - iso_dt = parse_date(isodate)  
19 - time_string = iso_dt.strftime("%H:%M")  
20 - return time_string  
21 -  
22 -  
23 -def procuring_entity_name(tender_data):  
24 - tender_data.data.procuringEntity['name'] = u"Повна назва невідомо чого"  
25 - return tender_data  
@@ -96,7 +96,10 @@ Get Broker Property By Username @@ -96,7 +96,10 @@ Get Broker Property By Username
96 [return] ${tender_data} 96 [return] ${tender_data}
97 97
98 Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} 98 Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file}
99 - Import Resource ${CURDIR}/brokers/${keywords_file}.robot 99 + ${bundled_st}= Run Keyword And Return Status Import Resource ${CURDIR}/brokers/${keywords_file}.robot
  100 + ${external_st}= Run Keyword And Return Status Import Resource ${CURDIR}/../../src/robot_tests.broker.${keywords_file}/${keywords_file}.robot
  101 + Should Be True ${bundled_st} or ${external_st}
  102 + Should Not Be True ${bundled_st} and ${external_st}
100 103
101 ################################################################################## 104 ##################################################################################
102 Дочекатись синхронізації з майданчиком 105 Дочекатись синхронізації з майданчиком
Please register or login to post a comment