Commit 196a3acc0d4eb7e17d9b9d774ecf8d0604b5f541
1 parent
66a09b4a
Newtend: Export to separate repository
https://github.com/openprocurement/robot_tests.broker.newtend
Showing
3 changed files
with
1 additions
and
502 deletions
... | ... | @@ -38,6 +38,7 @@ gh_push = git@github.com: |
38 | 38 | barbecue = git ${remotes:gh}openprocurement/barbecue.git |
39 | 39 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git |
40 | 40 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git |
41 | +robot_tests.broker.newtend = git ${remotes:gh}openprocurement/robot_tests.broker.newtend.git | |
41 | 42 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git |
42 | 43 | robot_tests.broker.prom = git ${remotes:gh}openprocurement/robot_tests.broker.prom.git |
43 | 44 | robot_tests.broker.publicbid = git ${remotes:gh}openprocurement/robot_tests.broker.publicbid.git | ... | ... |
1 | -*** Settings *** | |
2 | -Library Selenium2Screenshots | |
3 | -Library String | |
4 | -Library DateTime | |
5 | -Library newtend_service.py | |
6 | - | |
7 | -*** Variables *** | |
8 | -${locator.title} xpath=//div[@ng-bind="tender.title"] | |
9 | -${locator.description} xpath=//div[@ng-bind="tender.description"] | |
10 | -${locator.edit.description} name=tenderDescription | |
11 | -${locator.value.amount} xpath=//div[@ng-bind="tender.value.amount"] | |
12 | -${locator.minimalStep.amount} xpath=//div[@ng-bind="tender.minimalStep.amount"] | |
13 | -${locator.tenderId} xpath=//a[@class="ng-binding ng-scope"] | |
14 | -${locator.procuringEntity.name} xpath=//div[@ng-bind="tender.procuringEntity.name"] | |
15 | -${locator.enquiryPeriod.StartDate} id=start-date-qualification | |
16 | -${locator.enquiryPeriod.endDate} id=end-date-qualification | |
17 | -${locator.tenderPeriod.startDate} id=start-date-registration | |
18 | -${locator.tenderPeriod.endDate} id=end-date-registration | |
19 | -${locator.items[0].deliveryAddress} id=deliveryAddress | |
20 | -${locator.items[0].deliveryDate.endDate} id=end-date-delivery | |
21 | -${locator.items[0].description} xpath=//div[@ng-bind="item.description"] | |
22 | -${locator.items[0].classification.scheme} id=classifier | |
23 | -${locator.items[0].classification.scheme.title} xpath=//label[contains(., "Классификатор CPV")] | |
24 | -${locator.items[0].additional_classification[0].scheme} id=classifier2 | |
25 | -${locator.items[0].additional_classification[0].scheme.title} xpath=//label[@for="classifier2"] | |
26 | -${locator.items[0].quantity} id=quantity | |
27 | -${locator.items[0].unit.name} xpath=//span[@class="unit ng-binding"] | |
28 | -${locator.edit_tender} xpath=//button[@ng-if="actions.can_edit_tender"] | |
29 | -${locator.edit.add_item} xpath=//a[@class="icon-black plus-black remove-field ng-scope"] | |
30 | -${locator.save} xpath=//button[@class="btn btn-lg btn-default cancel pull-right ng-binding"] | |
31 | -${locator.QUESTIONS[0].title} xpath=//span[@class="user ng-binding"] | |
32 | -${locator.QUESTIONS[0].description} xpath=//span[@class="question-description ng-binding"] | |
33 | -${locator.QUESTIONS[0].date} xpath=//span[@class="date ng-binding"] | |
34 | - | |
35 | -*** Keywords *** | |
36 | -Підготувати дані для оголошення тендера | |
37 | - ${INITIAL_TENDER_DATA}= prepare_test_tender_data | |
38 | - ${INITIAL_TENDER_DATA}= Add_data_for_GUI_FrontEnds ${INITIAL_TENDER_DATA} | |
39 | - ${INITIAL_TENDER_DATA}= Update_data_for_Newtend ${INITIAL_TENDER_DATA} | |
40 | - [return] ${INITIAL_TENDER_DATA} | |
41 | - | |
42 | -Підготувати клієнт для користувача | |
43 | - [Arguments] @{ARGUMENTS} | |
44 | - [Documentation] Відкрити браузер, створити об’єкт api wrapper, тощо | |
45 | - ... ${ARGUMENTS[0]} == username | |
46 | - Open Browser | |
47 | - ... ${USERS.users['${ARGUMENTS[0]}'].homepage} | |
48 | - ... ${USERS.users['${ARGUMENTS[0]}'].browser} | |
49 | - ... alias=${ARGUMENTS[0]} | |
50 | - Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | |
51 | - Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | |
52 | - Run Keyword If '${username}' != 'Newtend_Viewer' Login | |
53 | - | |
54 | -Login | |
55 | - Wait Until Page Contains Element id=indexpage_login 20 | |
56 | - Click Element id=indexpage_login | |
57 | - Wait Until Page Contains Element id=password 20 | |
58 | - Input text id=login-email ${USERS.users['${username}'].login} | |
59 | - Input text id=password ${USERS.users['${username}'].password} | |
60 | - Click Element id=submit-login-button | |
61 | - Wait Until Page Contains Element xpath =//a[@class="close-modal-dialog"] 20 | |
62 | - Go to ${USERS.users['${ARGUMENTS[0]}'].homepage} | |
63 | -# Wait Until Page Contains Element xpath=//div[@class="introjs-overlay"] 20 | |
64 | - | |
65 | -Створити тендер | |
66 | - [Arguments] @{ARGUMENTS} | |
67 | - [Documentation] | |
68 | - ... ${ARGUMENTS[0]} == username | |
69 | - ... ${ARGUMENTS[1]} == tender_data | |
70 | -## Initialisation | |
71 | - ${prepared_tender_data}= Add_data_for_GUI_FrontEnds ${ARGUMENTS[1]} | |
72 | - ${prepared_tender_data}= Update_data_for_Newtend ${prepared_tender_data} | |
73 | - ${items}= Get From Dictionary ${prepared_tender_data.data} items | |
74 | - ${title}= Get From Dictionary ${prepared_tender_data.data} title | |
75 | - ${description}= Get From Dictionary ${prepared_tender_data.data} description | |
76 | - ${budget}= Get From Dictionary ${prepared_tender_data.data.value} amount | |
77 | - ${step_rate}= Get From Dictionary ${prepared_tender_data.data.minimalStep} amount | |
78 | - ${start_date}= Get From Dictionary ${prepared_tender_data.data.tenderPeriod} startDate | |
79 | - ${end_date}= Get From Dictionary ${prepared_tender_data.data.tenderPeriod} endDate | |
80 | - ${enquiry_start_date}= Get From Dictionary ${prepared_tender_data.data.enquiryPeriod} startDate | |
81 | - ${enquiry_end_date}= Get From Dictionary ${prepared_tender_data.data.enquiryPeriod} endDate | |
82 | - | |
83 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
84 | - Go To ${USERS.users['${username}'].homepage} | |
85 | - Wait Until Page Contains Element xpath=//a[@href="#/create-tender"] 100 | |
86 | - Click Link xpath=//a[@href="#/create-tender"] | |
87 | - Wait Until Page Contains Новый тендер 100 | |
88 | -# Input fields tender | |
89 | - Input text name=tenderName ${title} | |
90 | - Input text ${locator.edit.description} ${description} | |
91 | - Input text id=budget ${budget} | |
92 | - Click Element id=with-nds | |
93 | - Input text id=step ${step_rate} | |
94 | -# Add Item(s) | |
95 | - Додати придмет ${items[0]} 0 | |
96 | - Run Keyword If '${mode}' == 'multi' Додати багато придметів items | |
97 | -# Set tender datatimes | |
98 | - Set datetime start-date-registration ${start_date} | |
99 | - Set datetime end-date-registration ${end_date} | |
100 | - Set datetime end-date-qualification ${enquiry_end_date} | |
101 | - Set datetime start-date-qualification ${enquiry_start_date} | |
102 | -# Save | |
103 | - Click Element ${locator.save} | |
104 | - Wait Until Page Contains Element xpath=//div[@ng-click="goHome()"] 30 | |
105 | - Click Element xpath=//div[@ng-click="goHome()"] | |
106 | -# Get Ids | |
107 | - Wait Until Page Contains Element xpath=//div[@class="title"] 30 | |
108 | - ${tender_UAid}= Get Text xpath=//div[@class="title"] | |
109 | - ${Ids}= Convert To String ${tender_UAid} | |
110 | - Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid} | |
111 | - [return] ${Ids} | |
112 | - | |
113 | -Set Multi Ids | |
114 | - [Arguments] @{ARGUMENTS} | |
115 | - [Documentation] | |
116 | - ... ${ARGUMENTS[0]} == ${tender_UAid} | |
117 | - ${current_location}= Get Location | |
118 | - ${id}= Get Substring ${current_location} -41 -9 | |
119 | - ${Ids}= Create List ${tender_UAid} ${id} | |
120 | - | |
121 | -Set datetime | |
122 | - [Arguments] @{ARGUMENTS} | |
123 | - [Documentation] | |
124 | - ... ${ARGUMENTS[0]} == control_id | |
125 | - ... ${ARGUMENTS[1]} == date | |
126 | -#Pick Date | |
127 | - Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/../span[@class="calendar-btn"] | |
128 | - Wait Until Page Contains Element xpath=//td[@class="text-center ng-scope"] 30 | |
129 | - ${datapicker_id}= Get Element Attribute xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@class="text-center ng-scope"]@id | |
130 | - ${datapicker_id}= Get Substring ${datapicker_id} 0 -1 | |
131 | - ${date_index}= newtend_date_picker_index ${ARGUMENTS[1]} | |
132 | - ${datapicker_id}= Convert To String ${datapicker_id}${date_index} | |
133 | - Click Element xpath=//input[@id="${ARGUMENTS[0]}"]/..//td[@id="${datapicker_id}"]/button | |
134 | -#Set time | |
135 | - ${hous}= Get Substring ${ARGUMENTS[1]} 11 13 | |
136 | - ${minutes}= Get Substring ${ARGUMENTS[1]} 14 16 | |
137 | - Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="hours"] ${hous} | |
138 | - Input text xpath=//input[@id="${ARGUMENTS[0]}"]/../..//input[@ng-model="minutes"] ${minutes} | |
139 | - | |
140 | -Додати придмет | |
141 | - [Arguments] @{ARGUMENTS} | |
142 | - [Documentation] | |
143 | - ... ${ARGUMENTS[0]} == items_n | |
144 | - ... ${ARGUMENTS[1]} == index | |
145 | -## Get values for item | |
146 | - ${items_description}= Get From Dictionary ${ARGUMENTS[0]} description | |
147 | - ${quantity}= Get From Dictionary ${ARGUMENTS[0]} quantity | |
148 | - ${cpv}= Convert To String Картонки | |
149 | - ${dkpp_desc}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description | |
150 | - ${dkpp_id}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id | |
151 | - ${unit}= Get From Dictionary ${ARGUMENTS[0].unit} name | |
152 | - ${deliverydate_end_date}= Get From Dictionary ${ARGUMENTS[0].deliveryDate} endDate | |
153 | - ${countryName}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} countryName | |
154 | - ${ZIP}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} postalCode | |
155 | - ${region}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} region | |
156 | - ${locality}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} locality | |
157 | - ${streetAddress}= Get From Dictionary ${ARGUMENTS[0].deliveryAddress} streetAddress | |
158 | - | |
159 | - Set datetime end-date-delivery${ARGUMENTS[1]} ${deliverydate_end_date} | |
160 | -# Set CPV | |
161 | - Wait Until Page Contains Element id=classifier1${ARGUMENTS[1]} | |
162 | - Click Element id=classifier1${ARGUMENTS[1]} | |
163 | - Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100 | |
164 | - Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${cpv} | |
165 | - Wait Until Page Contains Element xpath=//span[contains(text(),'${cpv}')] 20 | |
166 | - Click Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] | |
167 | - Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"] | |
168 | -# Set ДКПП | |
169 | - Click Element id=classifier2${ARGUMENTS[1]} | |
170 | - Wait Until Page Contains Element xpath=//input[@class="ng-pristine ng-untouched ng-valid"] 100 | |
171 | - Input text xpath=//input[@class="ng-pristine ng-untouched ng-valid"] ${dkpp_desc} | |
172 | - Wait Until Page Contains Element xpath=//span[contains(text(),'${dkpp_id}')] 100 | |
173 | - Click Element xpath=//span[contains(text(),'${dkpp_id}')]/../..//input[@class="ng-pristine ng-untouched ng-valid"] | |
174 | - Click Element xpath=//button[@class="btn btn-default btn-lg pull-right choose ng-binding"] | |
175 | -# Set Delivery Address | |
176 | - Click Element id=deliveryAddress${ARGUMENTS[1]} | |
177 | - Wait Until Page Contains Element xpath=//input[@ng-model="deliveryAddress.postalCode"] 20 | |
178 | - Input text xpath=//input[@ng-model="deliveryAddress.postalCode"] ${ZIP} | |
179 | - Input text xpath=//input[@ng-model="deliveryAddress.region"] ${region} | |
180 | - Input text xpath=//input[@ng-model="deliveryAddress.locality"] ${locality} | |
181 | - Input text xpath=//input[@ng-model="deliveryAddress.streetAddress"] ${streetAddress} | |
182 | - Click Element xpath=//button[@class="btn btn-lg single-btn ng-binding"] | |
183 | -# Add item main info | |
184 | - Click Element xpath=//a[contains(text(), "единицы измерения")] | |
185 | - Click Element xpath=//a[contains(text(), "единицы измерения")]/..//a[contains(text(), '${unit}')] | |
186 | - Input text id=quantity${ARGUMENTS[1]} ${quantity} | |
187 | - Input text id=itemDescription${ARGUMENTS[1]} ${items_description} | |
188 | - | |
189 | -Додати багато придметів | |
190 | - [Arguments] @{ARGUMENTS} | |
191 | - [Documentation] | |
192 | - ... ${ARGUMENTS[0]} == items | |
193 | - ${Items_length}= Get Length ${items} | |
194 | - : FOR ${INDEX} IN RANGE 1 ${Items_length} | |
195 | - \ Click Element ${locator.edit.add_item} | |
196 | - \ Додати придмет ${items[${INDEX}]} ${INDEX} | |
197 | - | |
198 | -Завантажити документ | |
199 | - [Arguments] @{ARGUMENTS} | |
200 | - [Documentation] | |
201 | - ... ${ARGUMENTS[0]} == username | |
202 | - ... ${ARGUMENTS[1]} == ${TENDER_UAID} | |
203 | - ... ${ARGUMENTS[2]} == ${Complain} | |
204 | - Fail Тест не написаний | |
205 | - | |
206 | -Подати скаргу | |
207 | - [Arguments] @{ARGUMENTS} | |
208 | - [Documentation] | |
209 | - ... ${ARGUMENTS[0]} == username | |
210 | - ... ${ARGUMENTS[1]} == ${TENDER_UAID} | |
211 | - ... ${ARGUMENTS[2]} == ${Complain} | |
212 | - Fail Не реалізований функціонал | |
213 | - | |
214 | -порівняти скаргу | |
215 | - [Arguments] @{ARGUMENTS} | |
216 | - [Documentation] | |
217 | - ... ${ARGUMENTS[0]} == username | |
218 | - ... ${ARGUMENTS[1]} == ${file_path} | |
219 | - ... ${ARGUMENTS[2]} == ${TENDER_UAID} | |
220 | - Fail Не реалізований функціонал | |
221 | - | |
222 | -Пошук тендера по ідентифікатору | |
223 | - [Arguments] @{ARGUMENTS} | |
224 | - [Documentation] | |
225 | - ... ${ARGUMENTS[0]} == username | |
226 | - ... ${ARGUMENTS[1]} == ${TENDER_UAID} | |
227 | - Switch browser ${ARGUMENTS[0]} | |
228 | - Go to ${USERS.users['${ARGUMENTS[0]}'].homepage} | |
229 | -### Індексація на тестовому сервері відключена, як наслідок пошук по UAid не працює, отож застосовую обхід цієї функціональності для розблокування наступних тестів | |
230 | -# Wait Until Page Contains Element xpath=//div[@class="search-field"]/input 20 | |
231 | -# #${ARGUMENTS[1]}= Convert To String UA-2015-06-08-000023 | |
232 | -# Input text xpath=//div[@class="search-field"]/input ${ARGUMENTS[1]} | |
233 | -# : FOR ${INDEX} IN RANGE 1 30 | |
234 | -# \ Log To Console . no_newline=true | |
235 | -# \ sleep 1 | |
236 | -# \ ${count}= Get Matching Xpath Count xpath=//a[@class="row tender-info ng-scope"] | |
237 | -# \ Exit For Loop If '${count}' == '1' | |
238 | - Sleep 2 | |
239 | - Go to ${USERS.users['${ARGUMENTS[0]}'].homepage} | |
240 | - ${ARGUMENTS[1]}= Convert To String Воркераунд для проходженя наступних тестів - пошук не працює. | |
241 | -### | |
242 | - Wait Until Page Contains Element xpath=(//a[@class="row tender-info ng-scope"]) 20 | |
243 | - Sleep 5 | |
244 | - Click Element xpath=(//a[@class="row tender-info ng-scope"]) | |
245 | - Wait Until Page Contains Element xpath=//a[@class="ng-binding ng-scope"]|//span[@class="ng-binding ng-scope"] 30 | |
246 | - | |
247 | -отримати інформацію із тендера | |
248 | - [Arguments] @{ARGUMENTS} | |
249 | - [Documentation] | |
250 | - ... ${ARGUMENTS[0]} == username | |
251 | - ... ${ARGUMENTS[1]} == fieldname | |
252 | - Switch browser ${ARGUMENTS[0]} | |
253 | - Run Keyword And Return Отримати інформацію про ${ARGUMENTS[1]} | |
254 | - | |
255 | -отримати текст із поля і показати на сторінці | |
256 | - [Arguments] ${fieldname} | |
257 | - sleep 1 | |
258 | - ${return_value}= Get Text ${locator.${fieldname}} | |
259 | - [return] ${return_value} | |
260 | - | |
261 | -отримати інформацію про title | |
262 | - ${title}= отримати текст із поля і показати на сторінці title | |
263 | - [return] ${title} | |
264 | - | |
265 | -отримати інформацію про description | |
266 | - ${description}= отримати текст із поля і показати на сторінці description | |
267 | - [return] ${description} | |
268 | - | |
269 | -отримати інформацію про tenderId | |
270 | - ${tenderId}= отримати текст із поля і показати на сторінці tenderId | |
271 | - [return] ${tenderId} | |
272 | - | |
273 | -отримати інформацію про value.amount | |
274 | - ${valueAmount}= отримати текст із поля і показати на сторінці value.amount | |
275 | - ${valueAmount}= Convert To Number ${valueAmount.split(' ')[0]} | |
276 | - [return] ${valueAmount} | |
277 | - | |
278 | -отримати інформацію про minimalStep.amount | |
279 | - ${minimalStepAmount}= отримати текст із поля і показати на сторінці minimalStep.amount | |
280 | - ${minimalStepAmount}= Convert To Number ${minimalStepAmount.split(' ')[0]} | |
281 | - [return] ${minimalStepAmount} | |
282 | - | |
283 | -Внести зміни в тендер | |
284 | - [Arguments] @{ARGUMENTS} | |
285 | - [Documentation] | |
286 | - ... ${ARGUMENTS[0]} == username | |
287 | - ... ${ARGUMENTS[1]} == id | |
288 | - ... ${ARGUMENTS[2]} == fieldname | |
289 | - ... ${ARGUMENTS[3]} == fieldvalue | |
290 | - Switch browser ${ARGUMENTS[0]} | |
291 | - Click button ${locator.edit_tender} | |
292 | - Wait Until Page Contains Element ${locator.edit.${ARGUMENTS[2]}} 20 | |
293 | - Input Text ${locator.edit.${ARGUMENTS[2]}} ${ARGUMENTS[3]} | |
294 | - Click Element ${locator.save} | |
295 | - Wait Until Page Contains Element ${locator.${ARGUMENTS[2]}} 20 | |
296 | - ${result_field}= отримати текст із поля і показати на сторінці ${ARGUMENTS[2]} | |
297 | - Should Be Equal ${result_field} ${ARGUMENTS[3]} | |
298 | - | |
299 | -отримати інформацію про procuringEntity.name | |
300 | - ${procuringEntity_name}= отримати текст із поля і показати на сторінці procuringEntity.name | |
301 | - [return] ${procuringEntity_name} | |
302 | - | |
303 | -отримати інформацію про enquiryPeriod.endDate | |
304 | - ${enquiryPeriodEndDate}= отримати текст із поля і показати на сторінці enquiryPeriod.endDate | |
305 | - [return] ${enquiryPeriodEndDate} | |
306 | - | |
307 | -отримати інформацію про tenderPeriod.startDate | |
308 | - ${tenderPeriodStartDate}= отримати текст із поля і показати на сторінці tenderPeriod.startDate | |
309 | - [return] ${tenderPeriodStartDate} | |
310 | - | |
311 | -отримати інформацію про tenderPeriod.endDate | |
312 | - ${tenderPeriodEndDate}= отримати текст із поля і показати на сторінці tenderPeriod.endDate | |
313 | - [return] ${tenderPeriodEndDate} | |
314 | - | |
315 | -отримати інформацію про enquiryPeriod.startDate | |
316 | - ${enquiryPeriodStartDate}= отримати текст із поля і показати на сторінці enquiryPeriod.StartDate | |
317 | - [return] ${enquiryPeriodStartDate} | |
318 | - | |
319 | -отримати інформацію про items[0].description | |
320 | - ${description}= отримати текст із поля і показати на сторінці items[0].description | |
321 | - [return] ${description} | |
322 | - | |
323 | -отримати інформацію про items[0].deliveryDate.endDate | |
324 | - ${deliveryDate_endDate}= отримати текст із поля і показати на сторінці items[0].deliveryDate.endDate | |
325 | - [return] ${deliveryDate_endDate} | |
326 | - | |
327 | -отримати інформацію про items[0].deliveryLocation.latitude | |
328 | - Fail Не реалізований функціонал | |
329 | - | |
330 | -отримати інформацію про items[0].deliveryLocation.longitude | |
331 | - Fail Не реалізований функціонал | |
332 | - | |
333 | -## Delivery Address | |
334 | -отримати інформацію про items[0].deliveryAddress.countryName | |
335 | - ${Delivery_Address}= отримати текст із поля і показати на сторінці items[0].deliveryAddress | |
336 | - [return] ${Delivery_Address.split(', ')[1]} | |
337 | - | |
338 | -отримати інформацію про items[0].deliveryAddress.postalCode | |
339 | - ${Delivery_Address}= отримати текст із поля і показати на сторінці items[0].deliveryAddress | |
340 | - [return] ${Delivery_Address.split(', ')[0]} | |
341 | - | |
342 | -отримати інформацію про items[0].deliveryAddress.region | |
343 | - ${Delivery_Address}= отримати текст із поля і показати на сторінці items[0].deliveryAddress | |
344 | - [return] ${Delivery_Address.split(', ')[2]} | |
345 | - | |
346 | -отримати інформацію про items[0].deliveryAddress.locality | |
347 | - ${Delivery_Address}= отримати текст із поля і показати на сторінці items[0].deliveryAddress | |
348 | - [return] ${Delivery_Address.split(', ')[3]} | |
349 | - | |
350 | -отримати інформацію про items[0].deliveryAddress.streetAddress | |
351 | - ${Delivery_Address}= отримати текст із поля і показати на сторінці items[0].deliveryAddress | |
352 | - ${Delivery_Address}= Get Substring ${Delivery_Address}= 0 -2 | |
353 | - [return] ${Delivery_Address.split(', ')[4]} | |
354 | - | |
355 | -##CPV | |
356 | -отримати інформацію про items[0].classification.scheme | |
357 | - ${classificationScheme}= отримати текст із поля і показати на сторінці items[0].classification.scheme.title | |
358 | - [return] ${classificationScheme.split(' ')[1]} | |
359 | - | |
360 | -отримати інформацію про items[0].classification.id | |
361 | - ${classification_id}= отримати текст із поля і показати на сторінці items[0].classification.scheme | |
362 | - [return] ${classification_id.split(' - ')[0]} | |
363 | - | |
364 | -отримати інформацію про items[0].classification.description | |
365 | - ${classification_description}= отримати текст із поля і показати на сторінці items[0].classification.scheme | |
366 | - Run Keyword And Return If '${classification_description}' == '44617100-9 - Картонки' Convert To String Cartons | |
367 | - [return] ${classification_description} | |
368 | - | |
369 | -##ДКПП | |
370 | -отримати інформацію про items[0].additionalClassifications[0].scheme | |
371 | - ${additional_classificationScheme}= отримати текст із поля і показати на сторінці items[0].additional_classification[0].scheme.title | |
372 | - [return] ${additional_classificationScheme.split(' ')[1]} | |
373 | - | |
374 | -отримати інформацію про items[0].additionalClassifications[0].id | |
375 | - ${additional_classification_id}= отримати текст із поля і показати на сторінці items[0].additional_classification[0].scheme | |
376 | - [return] ${additional_classification_id.split(' - ')[0]} | |
377 | - | |
378 | -отримати інформацію про items[0].additionalClassifications[0].description | |
379 | - ${additional_classification_description}= отримати текст із поля і показати на сторінці items[0].additional_classification[0].scheme | |
380 | - ${additional_classification_description}= Convert To Lowercase ${additional_classification_description} | |
381 | - ${additional_classification_description}= Get Substring ${additional_classification_description}= 0 -2 | |
382 | - [return] ${additional_classification_description.split(' - ')[1]} | |
383 | - | |
384 | -##item | |
385 | -отримати інформацію про items[0].unit.name | |
386 | - ${unit_name}= отримати текст із поля і показати на сторінці items[0].unit.name | |
387 | - Run Keyword And Return If '${unit_name}' == 'килограммы' Convert To String кілограм | |
388 | - [return] ${unit_name} | |
389 | - | |
390 | -отримати інформацію про items[0].unit.code | |
391 | - Fail Не реалізований функціонал | |
392 | - ${unit_code}= отримати текст із поля і показати на сторінці items[0].unit.code | |
393 | - [return] ${unit_code} | |
394 | - | |
395 | -отримати інформацію про items[0].quantity | |
396 | - ${quantity}= отримати текст із поля і показати на сторінці items[0].quantity | |
397 | - ${quantity}= Convert To Number ${quantity} | |
398 | - [return] ${quantity} | |
399 | - | |
400 | -додати предмети закупівлі | |
401 | - [Arguments] @{ARGUMENTS} | |
402 | - [Documentation] | |
403 | - ... ${ARGUMENTS[0]} = username | |
404 | - ... ${ARGUMENTS[1]} = ${TENDER_UAID} | |
405 | - ... ${ARGUMENTS[2]} = 3 | |
406 | - ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval | |
407 | - ${ADDITIONAL_DATA}= prepare_test_tender_data ${period_interval} multi | |
408 | - ${items}= Get From Dictionary ${ADDITIONAL_DATA.data} items | |
409 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
410 | - Wait Until Page Contains Element ${locator.edit_tender} 10 | |
411 | - Click Element ${locator.edit_tender} | |
412 | - Wait Until Page Contains Element ${locator.edit.add_item} 10 | |
413 | - Input text ${locator.edit.description} description | |
414 | - Run keyword if '${TEST NAME}' == 'Можливість додати позицію закупівлі в тендер' додати позицію | |
415 | - Run keyword if '${TEST NAME}' != 'Можливість додати позицію закупівлі в тендер' забрати позицію | |
416 | - Wait Until Page Contains Element ${locator.save} 10 | |
417 | - Click Element ${locator.save} | |
418 | - Wait Until Page Contains Element ${locator.description} 20 | |
419 | - | |
420 | -додати позицію | |
421 | -### Не видно контролів додати пропозицію в хромі, потрібно скролити, скрол не працює. Обхід: додати лише 1 пропозицію + редагувати description для скролу. | |
422 | - Click Element ${locator.edit.add_item} | |
423 | - Додати придмет ${items[1]} 1 | |
424 | - | |
425 | -забрати позицію | |
426 | - Click Element xpath=//a[@title="Добавить лот"]/preceding-sibling::a | |
427 | - | |
428 | -Задати питання | |
429 | - [Arguments] @{ARGUMENTS} | |
430 | - [Documentation] | |
431 | - ... ${ARGUMENTS[0]} = username | |
432 | - ... ${ARGUMENTS[1]} = ${TENDER_UAID} | |
433 | - ... ${ARGUMENTS[2]} = question_data | |
434 | - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | |
435 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | |
436 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
437 | - newtend.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | |
438 | - Click Element xpath=//a[contains(text(), "Уточнения")] | |
439 | - Wait Until Page Contains Element xpath=//button[@class="btn btn-lg btn-default question-btn ng-binding ng-scope"] 20 | |
440 | - Click Element xpath=//button[@class="btn btn-lg btn-default question-btn ng-binding ng-scope"] | |
441 | - Wait Until Page Contains Element xpath=//input[@ng-model="title"] 10 | |
442 | - Input text xpath=//input[@ng-model="title"] ${title} | |
443 | - Input text xpath=//textarea[@ng-model="message"] ${description} | |
444 | - Click Element xpath=//div[@ng-click="sendQuestion()"] | |
445 | - Wait Until Page Contains ${description} 20 | |
446 | - | |
447 | -обновити сторінку з тендером | |
448 | - [Arguments] @{ARGUMENTS} | |
449 | - [Documentation] | |
450 | - ... ${ARGUMENTS[0]} = username | |
451 | - ... ${ARGUMENTS[1]} = ${TENDER_UAID} | |
452 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | |
453 | - Reload Page | |
454 | - Wait Until Page Contains ${ARGUMENTS[1]} 20 | |
455 | - | |
456 | -отримати інформацію про QUESTIONS[0].title | |
457 | - Wait Until Page Contains Element xpath=//span[contains(text(), "Уточнения")] 20 | |
458 | - Click Element xpath=//span[contains(text(), "Уточнения")] | |
459 | - Wait Until Page Contains Вы не можете задавать вопросы 20 | |
460 | - ${resp}= отримати текст із поля і показати на сторінці QUESTIONS[0].title | |
461 | - [return] ${resp} | |
462 | - | |
463 | -отримати інформацію про QUESTIONS[0].description | |
464 | - ${resp}= отримати текст із поля і показати на сторінці QUESTIONS[0].description | |
465 | - [return] ${resp} | |
466 | - | |
467 | -отримати інформацію про QUESTIONS[0].date | |
468 | - ${resp}= отримати текст із поля і показати на сторінці QUESTIONS[0].date | |
469 | - ${resp}= Change_day_to_month ${resp} | |
470 | - [return] ${resp} | |
471 | - | |
472 | -Change_day_to_month | |
473 | - [Arguments] @{ARGUMENTS} | |
474 | - [Documentation] | |
475 | - ... ${ARGUMENTS[0]} == date | |
476 | - ${day}= Get Substring ${ARGUMENTS[0]} 0 2 | |
477 | - ${month}= Get Substring ${ARGUMENTS[0]} 3 6 | |
478 | - ${rest}= Get Substring ${ARGUMENTS[0]} 5 | |
479 | - ${return_value}= Convert To String ${month}${day}${rest} | |
480 | - [return] ${return_value} |
1 | -from datetime import datetime | |
2 | -from iso8601 import parse_date | |
3 | -from op_robot_tests.tests_files.service_keywords import get_now | |
4 | -from calendar import monthrange | |
5 | - | |
6 | - | |
7 | -def newtend_date_picker_index(isodate): | |
8 | - now = get_now() | |
9 | - date_str = '01' + str(now.month) + str(now.year) | |
10 | - first_day_of_month = datetime.strptime(date_str, "%d%m%Y") | |
11 | - mod = first_day_of_month.isoweekday() - 2 | |
12 | - iso_dt = parse_date(isodate) | |
13 | - # last_day_of_month = monthrange(now.year, now.month)[1] | |
14 | - # LOGGER.log_message(Message("last_day_of_month: {}".format(last_day_of_month), "INFO")) | |
15 | - if now.day > iso_dt.day: | |
16 | - mod = monthrange(now.year, now.month)[1] + mod | |
17 | - return mod + iso_dt.day | |
18 | - | |
19 | - | |
20 | -def update_data_for_newtend(tender_data): | |
21 | - tender_data.data.procuringEntity['name'] = u"openprocurement" | |
22 | - return tender_data |
Please
register
or
login
to post a comment