Showing
17 changed files
with
1710 additions
and
1242 deletions
@@ -37,6 +37,7 @@ gh_push = git@github.com: | @@ -37,6 +37,7 @@ gh_push = git@github.com: | ||
37 | [sources] | 37 | [sources] |
38 | barbecue = git ${remotes:gh}openprocurement/barbecue.git | 38 | barbecue = git ${remotes:gh}openprocurement/barbecue.git |
39 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git | 39 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git |
40 | +robot_tests.broker.dzo = git ${remotes:gh}openprocurement/robot_tests.broker.dzo.git | ||
40 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git | 41 | 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 | 42 | robot_tests.broker.newtend = git ${remotes:gh}openprocurement/robot_tests.broker.newtend.git |
42 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git | 43 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git |
1 | -*** Settings *** | ||
2 | -Library Selenium2Screenshots | ||
3 | -Library String | ||
4 | -Library DateTime | ||
5 | -Library netcast_service.py | ||
6 | - | ||
7 | -*** Variables *** | ||
8 | -${locator.tenderId} xpath=//td[./text()='TenderID']/following-sibling::td[1] | ||
9 | -${locator.title} xpath=//td[./text()='Загальна назва закупівлі']/following-sibling::td[1] | ||
10 | -${locator.description} xpath=//td[./text()='Предмет закупівлі']/following-sibling::td[1] | ||
11 | -${locator.value.amount} xpath=//td[./text()='Максимальний бюджет']/following-sibling::td[1] | ||
12 | -${locator.minimalStep.amount} xpath=//td[./text()='Мінімальний крок зменшення ціни']/following-sibling::td[1] | ||
13 | -${locator.enquiryPeriod.endDate} xpath=//td[./text()='Завершення періоду обговорення']/following-sibling::td[1] | ||
14 | -${locator.tenderPeriod.endDate} xpath=//td[./text()='Завершення періоду прийому пропозицій']/following-sibling::td[1] | ||
15 | -${locator.items[0].deliveryAddress.countryName} xpath=//td[@class='nameField'][./text()='Адреса поставки']/following-sibling::td[1] | ||
16 | -${locator.items[0].deliveryDate.endDate} xpath=//td[./text()='Кінцева дата поставки']/following-sibling::td[1] | ||
17 | -${locator.items[0].classification.scheme} xpath=//td[@class = 'nameField'][./text()='Клас CPV'] | ||
18 | -${locator.items[0].classification.id} xpath=//td[./text()='Клас CPV']/following-sibling::td[1]/span[1] | ||
19 | -${locator.items[0].classification.description} xpath=//td[./text()='Клас CPV']/following-sibling::td[1]/span[2] | ||
20 | -${locator.items[0].additionalClassifications[0].scheme} xpath=//td[@class = 'nameField'][./text()='Клас ДКПП'] | ||
21 | -${locator.items[0].additionalClassifications[0].id} xpath=//td[./text()='Клас ДКПП']/following-sibling::td[1]/span[1] | ||
22 | -${locator.items[0].additionalClassifications[0].description} xpath=//td[./text()='Клас ДКПП']/following-sibling::td[1]/span[2] | ||
23 | -${locator.items[0].quantity} xpath=//td[./text()='Кількість']/following-sibling::td[1]/span[1] | ||
24 | -${locator.items[0].unit.code} xpath=//td[./text()='Кількість']/following-sibling::td[1]/span[2] | ||
25 | -${locator.questions[0].title} xpath=//div[@class = 'question relative']//div[@class = 'title'] | ||
26 | -${locator.questions[0].description} xpath = //div[@class='text'] | ||
27 | -${locator.questions[0].date} xpath = //div[@class='date'] | ||
28 | -${locator.questions[0].answer} xpath=//div[@class = 'answer relative']//div[@class = 'text'] | ||
29 | - | ||
30 | -*** Keywords *** | ||
31 | -Підготувати клієнт для користувача | ||
32 | - [Arguments] @{ARGUMENTS} | ||
33 | - [Documentation] Відкрити браузер, створити об’єкт api wrapper, тощо | ||
34 | - ... ${ARGUMENTS[0]} == username | ||
35 | - Open Browser | ||
36 | - ... ${USERS.users['${ARGUMENTS[0]}'].homepage} | ||
37 | - ... ${USERS.users['${ARGUMENTS[0]}'].browser} | ||
38 | - ... alias=${ARGUMENTS[0]} | ||
39 | - Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | ||
40 | - Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | ||
41 | - Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]} | ||
42 | - Wait Until Page Contains Element jquery=a[href="/cabinet"] | ||
43 | - Click Element jquery=a[href="/cabinet"] | ||
44 | - Run Keyword If '${username}' != 'Netcast_Viewer' Login | ||
45 | - | ||
46 | -Login | ||
47 | - [Arguments] @{ARGUMENTS} | ||
48 | - Wait Until Page Contains Element name=email 10 | ||
49 | - Sleep 1 | ||
50 | - Input text name=email ${USERS.users['${username}'].login} | ||
51 | - Sleep 2 | ||
52 | - Input text name=psw ${USERS.users['${username}'].password} | ||
53 | - Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 20 | ||
54 | - Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] | ||
55 | - | ||
56 | -Pre Login | ||
57 | - [Arguments] @{ARGUMENTS} | ||
58 | - [Documentation] | ||
59 | - ... ${ARGUMENTS[0]} == username | ||
60 | - ${login}= Get Broker Property By Username ${ARGUMENTS[0]} login | ||
61 | - ${password}= Get Broker Property By Username ${ARGUMENTS[0]} password | ||
62 | - Wait Until Page Contains Element name=siteLogin 10 | ||
63 | - Input Text name=siteLogin ${login} | ||
64 | - Input Text name=sitePass ${password} | ||
65 | - Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input | ||
66 | - | ||
67 | -Створити тендер | ||
68 | - [Arguments] @{ARGUMENTS} | ||
69 | - [Documentation] | ||
70 | - ... ${ARGUMENTS[0]} == username | ||
71 | - ... ${ARGUMENTS[1]} == tender_data | ||
72 | - #{tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]} | ||
73 | - ${items}= Get From Dictionary ${ARGUMENTS[1].data} items | ||
74 | - ${title}= Get From Dictionary ${ARGUMENTS[1].data} title | ||
75 | - ${description}= Get From Dictionary ${ARGUMENTS[1].data} description | ||
76 | - ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount | ||
77 | - ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount | ||
78 | - | ||
79 | - ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description | ||
80 | - ${quantity}= Get From Dictionary ${items[0]} quantity | ||
81 | - ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName | ||
82 | - ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate | ||
83 | - ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} | ||
84 | - ${cpv}= Convert To String Картонки | ||
85 | - ${cpv_id}= Get From Dictionary ${items[0].classification} id | ||
86 | - ${cpv_id1}= Replace String ${cpv_id} - _ | ||
87 | - ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | ||
88 | - ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | ||
89 | - ${dkpp_id1}= Replace String ${dkpp_id} - _ | ||
90 | - | ||
91 | - ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | ||
92 | - ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date} | ||
93 | - ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | ||
94 | - ${end_date}= convert_date_to_slash_format ${end_date} | ||
95 | - | ||
96 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
97 | - Wait Until Page Contains Element jquery=a[href="/tenders/new"] 30 | ||
98 | - Click Element jquery=a[href="/tenders/new"] | ||
99 | - Wait Until Page Contains Element name=tender_title 30 | ||
100 | - Input text name=tender_title ${title} | ||
101 | - Input text name=tender_description ${description} | ||
102 | - Input text name=tender_value_amount ${budget} | ||
103 | - Input text name=tender_minimalStep_amount ${step_rate} | ||
104 | - | ||
105 | -# Додати специфікацю початок | ||
106 | - Input text name=items[0][item_description] ${items_description} | ||
107 | - Input text name=items[0][item_quantity] ${quantity} | ||
108 | - Input text name=items[0][item_deliveryAddress_countryName] ${countryName} | ||
109 | - Input text name=items[0][item_deliveryDate_endDate] ${delivery_end_date} | ||
110 | - Click Element xpath=//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'] | ||
111 | - Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | ||
112 | - Input text id=search ${cpv} | ||
113 | - Wait Until Page Contains ${cpv_id} | ||
114 | - Click Element xpath=//a[contains(@id,'${cpv_id1}')] | ||
115 | - Click Element xpath=.//*[@id='select'] | ||
116 | - Unselect Frame | ||
117 | - Click Element xpath=//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'] | ||
118 | - Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | ||
119 | - Input text id=search ${dkpp_desc} | ||
120 | - Wait Until Page Contains ${dkpp_id} | ||
121 | - Click Element xpath=//a[contains(@id,'${dkpp_id1}')] | ||
122 | - Click Element xpath=.//*[@id='select'] | ||
123 | -# Додати специфікацю кінець | ||
124 | - | ||
125 | - Unselect Frame | ||
126 | - Input text name=plan_date ${enquiry_end_date} | ||
127 | - Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date} | ||
128 | - Input text name=tender_tenderPeriod_endDate ${end_date} | ||
129 | - | ||
130 | - Додати предмет ${items[0]} 0 | ||
131 | - Run Keyword if '${mode}' == 'multi' Додати багато предметів items | ||
132 | - Unselect Frame | ||
133 | - | ||
134 | - Click Element xpath= //button[@value='publicate'] | ||
135 | - Wait Until Page Contains Тендер опубліковано 30 | ||
136 | - | ||
137 | - ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2] | ||
138 | - ${Ids}= Convert To String ${tender_UAid} | ||
139 | - Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid} | ||
140 | - [return] ${Ids} | ||
141 | - | ||
142 | -Set Multi Ids | ||
143 | - [Arguments] @{ARGUMENTS} | ||
144 | - [Documentation] | ||
145 | - ... ${ARGUMENTS[1]} == ${tender_UAid} | ||
146 | - ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2] | ||
147 | - ${Ids}= Create List ${tender_UAid} ${id} | ||
148 | - | ||
149 | -Додати предмет | ||
150 | - [Arguments] @{ARGUMENTS} | ||
151 | - [Documentation] | ||
152 | - ... ${ARGUMENTS[0]} == items | ||
153 | - ... ${ARGUMENTS[1]} == ${INDEX} | ||
154 | - ${dkpp_desc1}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description | ||
155 | - ${dkpp_id11}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id | ||
156 | - ${dkpp_1id}= Replace String ${dkpp_id11} - _ | ||
157 | - | ||
158 | - Wait Until Page Contains Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | ||
159 | - Click Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | ||
160 | - ${index} = Convert To Integer ${ARGUMENTS[1]} | ||
161 | - ${index} = Convert To Integer ${index + 1} | ||
162 | - Wait Until Page Contains Element name=items[${index}][item_description] 30 | ||
163 | - Input text name=items[${index}][item_description] ${description} | ||
164 | - Input text name=items[${index}][item_quantity] ${quantity} | ||
165 | - | ||
166 | - Click Element xpath=(//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'])[${index} + 1] | ||
167 | - Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | ||
168 | - Input text id=search ${cpv} | ||
169 | - Wait Until Page Contains ${cpv_id} | ||
170 | - Click Element xpath=//a[contains(@id,'${cpv_id1}')] | ||
171 | - Click Element xpath=.//*[@id='select'] | ||
172 | - Unselect Frame | ||
173 | - Click Element xpath=(//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'])[${index} + 1] | ||
174 | - Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | ||
175 | - Input text id=search ${dkpp_desc1} | ||
176 | - Wait Until Page Contains ${dkpp_id11} | ||
177 | - Click Element xpath=//a[contains(@id,'${dkpp_1id}')] | ||
178 | - Click Element xpath=.//*[@id='select'] | ||
179 | - Unselect Frame | ||
180 | - Capture Page Screenshot | ||
181 | - | ||
182 | -Додати багато предметів | ||
183 | - [Arguments] @{ARGUMENTS} | ||
184 | - [Documentation] | ||
185 | - ... ${ARGUMENTS[0]} == items | ||
186 | - ${Items_length}= Get Length ${items} | ||
187 | - : FOR ${INDEX} IN RANGE 1 ${Items_length} | ||
188 | - \ Додати предмет ${items[${INDEX}]} ${INDEX} | ||
189 | - | ||
190 | -додати предмети закупівлі | ||
191 | - [Arguments] @{ARGUMENTS} | ||
192 | - [Documentation] | ||
193 | - ... ${ARGUMENTS[0]} = username | ||
194 | - ... ${ARGUMENTS[1]} = ${TENDER_UAID} | ||
195 | - ... ${ARGUMENTS[2]} = 3 | ||
196 | - ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval | ||
197 | - ${tender_data}= prepare_test_tender_data ${period_interval} multi | ||
198 | - | ||
199 | - ${items}= Get From Dictionary ${tender_data.data} items | ||
200 | - ${description}= Get From Dictionary ${tender_data.data} description | ||
201 | - ${quantity}= Get From Dictionary ${items[0]} quantity | ||
202 | - ${cpv}= Convert To String Картонки | ||
203 | - ${cpv_id}= Get From Dictionary ${items[0].classification} id | ||
204 | - ${cpv_id1}= Replace String ${cpv_id} - _ | ||
205 | - ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | ||
206 | - ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | ||
207 | - ${dkpp_id1}= Replace String ${dkpp_id} - _ | ||
208 | - | ||
209 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
210 | - Run keyword if '${TEST NAME}' == 'Можливість додати позицію закупівлі в тендер' додати позицію | ||
211 | - Run keyword if '${TEST NAME}' != 'Можливість додати позицію закупівлі в тендер' видалити позиції | ||
212 | - | ||
213 | -додати позицію | ||
214 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
215 | - Wait Until Page Contains Element xpath=//a[./text()='Редагувати'] 30 | ||
216 | - Click Element xpath=//a[./text()='Редагувати'] | ||
217 | - Додати багато предметів ${ARGUMENTS[2]} | ||
218 | - Wait Until Page Contains Element xpath=//button[./text()='Зберегти'] 30 | ||
219 | - Click Element xpath=//button[./text()='Зберегти'] | ||
220 | - | ||
221 | -видалити позиції | ||
222 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
223 | - Wait Until Page Contains Element xpath=//a[./text()='Редагувати'] 30 | ||
224 | - Click Element xpath=//a[./text()='Редагувати'] | ||
225 | - : FOR ${INDEX} IN RANGE 1 ${ARGUMENTS[2]}-1 | ||
226 | - \ sleep 5 | ||
227 | - \ Click Element xpath=//a[@class='deleteMultiItem'][last()] | ||
228 | - \ sleep 5 | ||
229 | - \ Click Element xpath=//a[@class='jBtn green'] | ||
230 | - Wait Until Page Contains Element xpath=//button[./text()='Зберегти'] 30 | ||
231 | - Click Element xpath=//button[./text()='Зберегти'] | ||
232 | - | ||
233 | -Пошук тендера по ідентифікатору | ||
234 | - [Arguments] @{ARGUMENTS} | ||
235 | - [Documentation] | ||
236 | - ... ${ARGUMENTS[0]} == username | ||
237 | - ... ${ARGUMENTS[1]} == tenderId | ||
238 | - Switch browser ${ARGUMENTS[0]} | ||
239 | - Go To ${USERS.users['${ARGUMENTS[0]}'].homepage} | ||
240 | - Wait Until Page Contains Держзакупівлі.онлайн 10 | ||
241 | - Click Element xpath=//a[text()='Закупівлі'] | ||
242 | - sleep 1 | ||
243 | - Click Element xpath=//select[@name='filter[object]']/option[@value='tenderID'] | ||
244 | - Input text xpath=//input[@name='filter[search]'] ${ARGUMENTS[1]} | ||
245 | - Click Element xpath=//button[@class='btn'][./text()='Пошук'] | ||
246 | - Wait Until Page Contains ${ARGUMENTS[1]} 10 | ||
247 | - Capture Page Screenshot | ||
248 | - sleep 1 | ||
249 | - Click Element xpath=//a[@class='reverse tenderLink'] | ||
250 | - | ||
251 | -Задати питання | ||
252 | - [Arguments] @{ARGUMENTS} | ||
253 | - [Documentation] | ||
254 | - ... ${ARGUMENTS[0]} == username | ||
255 | - ... ${ARGUMENTS[1]} == tenderUaId | ||
256 | - ... ${ARGUMENTS[2]} == questionId | ||
257 | - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
258 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
259 | - | ||
260 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
261 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
262 | - sleep 1 | ||
263 | - Execute Javascript window.scroll(2500,2500) | ||
264 | - Wait Until Page Contains Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] 20 | ||
265 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | ||
266 | - Wait Until Page Contains Element name=title 20 | ||
267 | - Input text name=title ${title} | ||
268 | - Input text xpath=//textarea[@name='description'] ${description} | ||
269 | - Click Element xpath=//div[contains(@class, 'buttons')]//button[@type='submit'] | ||
270 | - Wait Until Page Contains ${title} 30 | ||
271 | - Capture Page Screenshot | ||
272 | - | ||
273 | -Відповісти на питання | ||
274 | - [Arguments] @{ARGUMENTS} | ||
275 | - [Documentation] | ||
276 | - ... ${ARGUMENTS[0]} = username | ||
277 | - ... ${ARGUMENTS[1]} = tenderUaId | ||
278 | - ... ${ARGUMENTS[2]} = 0 | ||
279 | - ... ${ARGUMENTS[3]} = answer_data | ||
280 | - | ||
281 | - ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | ||
282 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
283 | - | ||
284 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
285 | - Execute Javascript window.scroll(1500,1500) | ||
286 | - Wait Until Page Contains Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] 20 | ||
287 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | ||
288 | - Wait Until Page Contains Element xpath=//textarea[@name='answer'] 20 | ||
289 | - Input text xpath=//textarea[@name='answer'] ${answer} | ||
290 | - Click Element xpath=//div[1]/div[3]/form/div/table/tbody/tr/td[2]/button | ||
291 | - Wait Until Page Contains ${answer} 30 | ||
292 | - Capture Page Screenshot | ||
293 | - | ||
294 | -Подати скаргу | ||
295 | - [Arguments] @{ARGUMENTS} | ||
296 | - [Documentation] | ||
297 | - ... ${ARGUMENTS[0]} = username | ||
298 | - ... ${ARGUMENTS[1]} = tenderUaId | ||
299 | - ... ${ARGUMENTS[2]} = complaintsId | ||
300 | - ${complaint}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
301 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
302 | - | ||
303 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
304 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
305 | - sleep 1 | ||
306 | - Execute Javascript window.scroll(1500,1500) | ||
307 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Скарги']] | ||
308 | - Wait Until Page Contains Element name=title 20 | ||
309 | - Input text name=title ${complaint} | ||
310 | - Input text xpath=//textarea[@name='description'] ${description} | ||
311 | - Click Element xpath=//div[contains(@class, 'buttons')]//button[@type='submit'] | ||
312 | - Wait Until Page Contains ${complaint} 30 | ||
313 | - Capture Page Screenshot | ||
314 | - | ||
315 | -Порівняти скаргу | ||
316 | - [Arguments] @{ARGUMENTS} | ||
317 | - [Documentation] | ||
318 | - ... ${ARGUMENTS[0]} = username | ||
319 | - ... ${ARGUMENTS[1]} = tenderUaId | ||
320 | - ... ${ARGUMENTS[2]} = complaintsData | ||
321 | - ${complaint}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
322 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
323 | - | ||
324 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
325 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
326 | - sleep 1 | ||
327 | - Execute Javascript window.scroll(1500,1500) | ||
328 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Скарги']] | ||
329 | - Wait Until Page Contains ${complaint} 30 | ||
330 | - Capture Page Screenshot | ||
331 | - | ||
332 | -Внести зміни в тендер | ||
333 | - # Тест написано для уже існуючого тендеру, що знаходиться у чернетках користувача | ||
334 | - [Arguments] @{ARGUMENTS} | ||
335 | - [Documentation] | ||
336 | - ... ${ARGUMENTS[0]} = username | ||
337 | - ... ${ARGUMENTS[1]} = description | ||
338 | - | ||
339 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
340 | - Click Element xpath=//a[@class='reverse'][./text()='Мої закупівлі'] | ||
341 | - Wait Until Page Contains Element xpath=//a[@class='reverse'][./text()='Чернетки'] 30 | ||
342 | - Click Element xpath=//a[@class='reverse'][./text()='Чернетки'] | ||
343 | - Wait Until Page Contains Element xpath=//a[@class='reverse tenderLink'] 30 | ||
344 | - Click Element xpath=//a[@class='reverse tenderLink'] | ||
345 | - sleep 1 | ||
346 | - Click Element xpath=//a[@class='button save'][./text()='Редагувати'] | ||
347 | - sleep 1 | ||
348 | - Input text name=tender_title ${ARGUMENTS[1]} | ||
349 | - sleep 1 | ||
350 | - Click Element xpath=//button[@class='saveDraft'] | ||
351 | - Wait Until Page Contains ${ARGUMENTS[1]} 30 | ||
352 | - Capture Page Screenshot | ||
353 | - | ||
354 | -обновити сторінку з тендером | ||
355 | - [Arguments] @{ARGUMENTS} | ||
356 | - [Documentation] | ||
357 | - ... ${ARGUMENTS[0]} = username | ||
358 | - ... ${ARGUMENTS[1]} = tenderUaId | ||
359 | - | ||
360 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
361 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
362 | - Reload Page | ||
363 | - | ||
364 | -отримати інформацію із тендера | ||
365 | - [Arguments] @{ARGUMENTS} | ||
366 | - [Documentation] | ||
367 | - ... ${ARGUMENTS[0]} == username | ||
368 | - ... ${ARGUMENTS[1]} == fieldname | ||
369 | - Switch browser ${ARGUMENTS[0]} | ||
370 | - Run Keyword And Return Отримати інформацію про ${ARGUMENTS[1]} | ||
371 | - | ||
372 | -Отримати текст із поля і показати на сторінці | ||
373 | - [Arguments] ${fieldname} | ||
374 | - sleep 1 | ||
375 | - ${return_value}= Get Text ${locator.${fieldname}} | ||
376 | - [return] ${return_value} | ||
377 | - | ||
378 | -отримати інформацію про title | ||
379 | - ${title}= Отримати текст із поля і показати на сторінці title | ||
380 | - [return] ${title.split('.')[0]} | ||
381 | - | ||
382 | -отримати інформацію про description | ||
383 | - ${description}= Отримати текст із поля і показати на сторінці description | ||
384 | - [return] ${description} | ||
385 | - | ||
386 | -отримати інформацію про tenderId | ||
387 | - ${tenderId}= Отримати текст із поля і показати на сторінці tenderId | ||
388 | - [return] ${tenderId} | ||
389 | - | ||
390 | -отримати інформацію про value.amount | ||
391 | - ${valueAmount}= Отримати текст із поля і показати на сторінці value.amount | ||
392 | - ${valueAmount}= Convert To Number ${valueAmount.split(' ')[0]} | ||
393 | - [return] ${valueAmount} | ||
394 | - | ||
395 | -отримати інформацію про minimalStep.amount | ||
396 | - ${minimalStepAmount}= Отримати текст із поля і показати на сторінці minimalStep.amount | ||
397 | - ${minimalStepAmount}= Convert To Number ${minimalStepAmount.split(' ')[0]} | ||
398 | - [return] ${minimalStepAmount} | ||
399 | - | ||
400 | -отримати інформацію про enquiryPeriod.endDate | ||
401 | - ${enquiryPeriodEndDate}= Отримати текст із поля і показати на сторінці enquiryPeriod.endDate | ||
402 | - ${enquiryPeriodEndDate}= subtract_from_time ${enquiryPeriodEndDate} 6 5 | ||
403 | - [return] ${enquiryPeriodEndDate} | ||
404 | - | ||
405 | -отримати інформацію про tenderPeriod.endDate | ||
406 | - ${tenderPeriodEndDate}= Отримати текст із поля і показати на сторінці tenderPeriod.endDate | ||
407 | - ${tenderPeriodEndDate}= subtract_from_time ${tenderPeriodEndDate} 11 0 | ||
408 | - [return] ${tenderPeriodEndDate} | ||
409 | - | ||
410 | -отримати інформацію про items[0].deliveryAddress.countryName | ||
411 | - ${countryName}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.countryName | ||
412 | - [return] ${countryName} | ||
413 | - | ||
414 | -отримати інформацію про items[0].classification.scheme | ||
415 | - ${classificationScheme}= Отримати текст із поля і показати на сторінці items[0].classification.scheme | ||
416 | - [return] ${classificationScheme.split(' ')[1]} | ||
417 | - | ||
418 | -отримати інформацію про items[0].additionalClassifications[0].scheme | ||
419 | - ${additionalClassificationsScheme}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].scheme | ||
420 | - [return] ${additionalClassificationsScheme.split(' ')[1]} | ||
421 | - | ||
422 | -отримати інформацію про questions[0].title | ||
423 | - sleep 1 | ||
424 | - Click Element xpath=//a[@class='reverse tenderLink'] | ||
425 | - sleep 1 | ||
426 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | ||
427 | - ${questionsTitle}= Отримати текст із поля і показати на сторінці questions[0].title | ||
428 | - ${questionsTitle}= Convert To Lowercase ${questionsTitle} | ||
429 | - [return] ${questionsTitle.capitalize().split('.')[0] + '.'} | ||
430 | - | ||
431 | -отримати інформацію про questions[0].description | ||
432 | - ${questionsDescription}= Отримати текст із поля і показати на сторінці questions[0].description | ||
433 | - [return] ${questionsDescription} | ||
434 | - | ||
435 | -отримати інформацію про questions[0].date | ||
436 | - ${questionsDate}= Отримати текст із поля і показати на сторінці questions[0].date | ||
437 | - log ${questionsDate} | ||
438 | - [return] ${questionsDate} | ||
439 | - | ||
440 | -отримати інформацію про questions[0].answer | ||
441 | - sleep 1 | ||
442 | - Click Element xpath=//a[@class='reverse tenderLink'] | ||
443 | - sleep 1 | ||
444 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | ||
445 | - ${questionsAnswer}= Отримати текст із поля і показати на сторінці questions[0].answer | ||
446 | - [return] ${questionsAnswer} | ||
447 | - | ||
448 | -отримати інформацію про items[0].deliveryDate.endDate | ||
449 | - ${deliveryDateEndDate}= Отримати текст із поля і показати на сторінці items[0].deliveryDate.endDate | ||
450 | - ${deliveryDateEndDate}= subtract_from_time ${deliveryDateEndDate} 15 0 | ||
451 | - [return] ${deliveryDateEndDate} | ||
452 | - | ||
453 | -отримати інформацію про items[0].classification.id | ||
454 | - ${classificationId}= Отримати текст із поля і показати на сторінці items[0].classification.id | ||
455 | - [return] ${classificationId} | ||
456 | - | ||
457 | -отримати інформацію про items[0].classification.description | ||
458 | - ${classificationDescription}= Отримати текст із поля і показати на сторінці items[0].classification.description | ||
459 | - Run Keyword And Return If '${classificationDescription}' == 'Картонки' Convert To String Cartons | ||
460 | - [return] ${classificationDescription} | ||
461 | - | ||
462 | -отримати інформацію про items[0].additionalClassifications[0].id | ||
463 | - ${additionalClassificationsId}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].id | ||
464 | - [return] ${additionalClassificationsId} | ||
465 | - | ||
466 | -отримати інформацію про items[0].additionalClassifications[0].description | ||
467 | - ${additionalClassificationsDescription}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].description | ||
468 | - ${additionalClassificationsDescription}= Convert To Lowercase ${additionalClassificationsDescription} | ||
469 | - [return] ${additionalClassificationsDescription} | ||
470 | - | ||
471 | -отримати інформацію про items[0].quantity | ||
472 | - ${itemsQuantity}= Отримати текст із поля і показати на сторінці items[0].quantity | ||
473 | - ${itemsQuantity}= Convert To Integer ${itemsQuantity} | ||
474 | - [return] ${itemsQuantity} | ||
475 | - | ||
476 | -отримати інформацію про items[0].unit.code | ||
477 | - ${unitCode}= Отримати текст із поля і показати на сторінці items[0].unit.code | ||
478 | - Run Keyword And Return If '${unitCode}'== 'кг' Convert To String KGM | ||
479 | - [return] ${unitCode} | ||
480 | - | ||
481 | -отримати інформацію про procuringEntity.name | ||
482 | - Log | Viewer can't see this information on Netcast console=yes | ||
483 | - | ||
484 | -отримати інформацію про enquiryPeriod.startDate | ||
485 | - Log | Viewer can't see this information on Netcast console=yes | ||
486 | - | ||
487 | -отримати інформацію про tenderPeriod.startDate | ||
488 | - Log | Viewer can't see this information on Netcast console=yes | ||
489 | - | ||
490 | -отримати інформацію про items[0].deliveryLocation.longitude | ||
491 | - Log | Viewer can't see this information on Netcast console=yes | ||
492 | - | ||
493 | -отримати інформацію про items[0].deliveryLocation.latitude | ||
494 | - Log | Viewer can't see this information on Netcast console=yes | ||
495 | - | ||
496 | -отримати інформацію про items[0].deliveryAddress.postalCode | ||
497 | - Log | Viewer can't see this information on Netcast console=yes | ||
498 | - | ||
499 | -отримати інформацію про items[0].deliveryAddress.locality | ||
500 | - Log | Viewer can't see this information on Netcast console=yes | ||
501 | - | ||
502 | -отримати інформацію про items[0].deliveryAddress.streetAddress | ||
503 | - Log | Viewer can't see this information on Netcast console=yes | ||
504 | - | ||
505 | -отримати інформацію про items[0].deliveryAddress.region | ||
506 | - Log | Viewer can't see this information on Netcast console=yes | ||
507 | - | ||
508 | -отримати інформацію про items[0].unit.name | ||
509 | - Log | Viewer can't see this information on Netcast console=yes |
@@ -80,6 +80,9 @@ Library openprocurement_client_helper.py | @@ -80,6 +80,9 @@ Library openprocurement_client_helper.py | ||
80 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | 80 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
81 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 81 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
82 | Set_To_Object ${tender.data} ${fieldname} ${fieldvalue} | 82 | Set_To_Object ${tender.data} ${fieldname} ${fieldvalue} |
83 | + ${procurementMethodType}= Get From Object ${tender.data} procurementMethodType | ||
84 | + Run Keyword If '${procurementMethodType}' == 'aboveThresholdUA' or '${procurementMethodType}' == 'aboveThresholdEU' | ||
85 | + ... Remove From Dictionary ${tender.data} enquiryPeriod | ||
83 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 86 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
84 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 87 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
85 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} | 88 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} |
@@ -131,25 +134,30 @@ Library openprocurement_client_helper.py | @@ -131,25 +134,30 @@ Library openprocurement_client_helper.py | ||
131 | 134 | ||
132 | 135 | ||
133 | Відповісти на питання | 136 | Відповісти на питання |
134 | - [Arguments] ${username} ${tender_uaid} ${question_id} ${answer_data} | 137 | + [Arguments] ${username} ${tender_uaid} ${question} ${answer_data} |
135 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 138 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
136 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 139 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
137 | - ${answer_data.data.id}= Set Variable ${tender.data.questions[${question_id}].id} | 140 | + ${answer_data.data.id}= Set Variable ${question.data.id} |
138 | ${question_with_answer}= Call Method ${USERS.users['${username}'].client} patch_question ${tender} ${answer_data} | 141 | ${question_with_answer}= Call Method ${USERS.users['${username}'].client} patch_question ${tender} ${answer_data} |
139 | Log object data ${question_with_answer} question_with_answer | 142 | Log object data ${question_with_answer} question_with_answer |
143 | + [return] ${question_with_answer} | ||
140 | 144 | ||
141 | 145 | ||
142 | Подати цінову пропозицію | 146 | Подати цінову пропозицію |
143 | [Arguments] ${username} ${tender_uaid} ${bid} | 147 | [Arguments] ${username} ${tender_uaid} ${bid} |
144 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 148 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
145 | ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_bid ${tender} ${bid} | 149 | ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_bid ${tender} ${bid} |
150 | + Set To Dictionary ${USERS.users['${username}'].bidresponses['bid'].data} id ${biddingresponse['data']['id']} | ||
146 | Log ${biddingresponse} | 151 | Log ${biddingresponse} |
147 | [return] ${biddingresponse} | 152 | [return] ${biddingresponse} |
148 | 153 | ||
149 | 154 | ||
150 | Змінити цінову пропозицію | 155 | Змінити цінову пропозицію |
151 | - [Arguments] ${username} ${tender_uaid} ${bid} | 156 | + [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
152 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 157 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
158 | + ${bid}= Отримати пропозицію ${username} ${tender_uaid} | ||
159 | + Set_To_Object ${bid.data} ${fieldname} ${fieldvalue} | ||
160 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
153 | ${changed_bid}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${bid} | 161 | ${changed_bid}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${bid} |
154 | Log ${changed_bid} | 162 | Log ${changed_bid} |
155 | [return] ${changed_bid} | 163 | [return] ${changed_bid} |
@@ -158,6 +166,8 @@ Library openprocurement_client_helper.py | @@ -158,6 +166,8 @@ Library openprocurement_client_helper.py | ||
158 | Скасувати цінову пропозицію | 166 | Скасувати цінову пропозицію |
159 | [Arguments] ${username} ${tender_uaid} ${bid} | 167 | [Arguments] ${username} ${tender_uaid} ${bid} |
160 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 168 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
169 | + Set To Dictionary ${bid.data} id ${USERS.users['${username}'].bidresponses['bid'].data.id} | ||
170 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
161 | ${changed_bid}= Call Method ${USERS.users['${username}'].client} delete_bid ${tender} ${bid} | 171 | ${changed_bid}= Call Method ${USERS.users['${username}'].client} delete_bid ${tender} ${bid} |
162 | Log ${changed_bid} | 172 | Log ${changed_bid} |
163 | [return] ${changed_bid} | 173 | [return] ${changed_bid} |
@@ -174,11 +184,11 @@ Library openprocurement_client_helper.py | @@ -174,11 +184,11 @@ Library openprocurement_client_helper.py | ||
174 | 184 | ||
175 | 185 | ||
176 | Завантажити документ в ставку | 186 | Завантажити документ в ставку |
177 | - [Arguments] ${username} ${path} ${tender_uaid} | 187 | + [Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents |
178 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} | 188 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} |
179 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 189 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
180 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | 190 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} |
181 | - ${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document ${path} ${tender} ${bid_id} | 191 | + ${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document ${path} ${tender} ${bid_id} ${doc_type} |
182 | ${uploaded_file} = Create Dictionary filepath ${path} upload_response ${response} | 192 | ${uploaded_file} = Create Dictionary filepath ${path} upload_response ${response} |
183 | Log ${response} | 193 | Log ${response} |
184 | Log object data ${uploaded_file} | 194 | Log object data ${uploaded_file} |
@@ -195,6 +205,13 @@ Library openprocurement_client_helper.py | @@ -195,6 +205,13 @@ Library openprocurement_client_helper.py | ||
195 | Log object data ${uploaded_file} | 205 | Log object data ${uploaded_file} |
196 | [return] ${uploaded_file} | 206 | [return] ${uploaded_file} |
197 | 207 | ||
208 | +Змінити документацію в ставці | ||
209 | + [Arguments] ${username} ${doc_data} ${bidid} ${docid} | ||
210 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${TENDER['TENDER_UAID']} | ||
211 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
212 | + ${response}= Call Method ${USERS.users['${username}'].client} patch_bid_document ${tender} ${doc_data} ${bidid} ${docid} | ||
213 | + Log ${response} | ||
214 | + [return] ${response} | ||
198 | 215 | ||
199 | Завантажити документ | 216 | Завантажити документ |
200 | [Arguments] ${username} ${filepath} ${tender_uaid} | 217 | [Arguments] ${username} ${filepath} ${tender_uaid} |
@@ -378,16 +395,17 @@ Library openprocurement_client_helper.py | @@ -378,16 +395,17 @@ Library openprocurement_client_helper.py | ||
378 | Log ${reply} | 395 | Log ${reply} |
379 | 396 | ||
380 | 397 | ||
381 | -Додати постачальника | 398 | +Додати і підтвердити постачальника |
382 | [Documentation] | 399 | [Documentation] |
383 | - ... [Arguments] Username and tender uaid | ||
384 | - ... Find tender using uaid, get data from Підготувати дані про постачальника and call create_award | 400 | + ... [Arguments] Username, tender uaid and supplier data |
401 | + ... Find tender using uaid and call create_award | ||
385 | ... [Return] Nothing | 402 | ... [Return] Nothing |
386 | - [Arguments] ${username} ${tender_uaid} | 403 | + [Arguments] ${username} ${tender_uaid} ${supplier_data} |
387 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 404 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
388 | - ${supplier_data}= Підготувати дані про постачальника ${username} | ||
389 | ${reply}= Call Method ${USERS.users['${username}'].client} create_award ${tender} ${supplier_data} | 405 | ${reply}= Call Method ${USERS.users['${username}'].client} create_award ${tender} ${supplier_data} |
390 | Log ${reply} | 406 | Log ${reply} |
407 | + ${supplier_number}= Set variable 0 | ||
408 | + Підтвердити постачальника ${username} ${tender_uaid} ${supplier_number} | ||
391 | 409 | ||
392 | 410 | ||
393 | Підтвердити постачальника | 411 | Підтвердити постачальника |
@@ -403,46 +421,56 @@ Library openprocurement_client_helper.py | @@ -403,46 +421,56 @@ Library openprocurement_client_helper.py | ||
403 | Log ${reply} | 421 | Log ${reply} |
404 | 422 | ||
405 | 423 | ||
406 | -Додати запит на скасування | 424 | +Скасувати закупівлю |
407 | [Documentation] | 425 | [Documentation] |
408 | - ... [Arguments] Username, tender uaid and cancellation reason | ||
409 | - ... Find tender using uaid, set cancellation reason, get data from test_cancel_tender | 426 | + ... [Arguments] Username, tender uaid, cancellation reason, |
427 | + ... document and new description of document | ||
428 | + ... [Description] Find tender using uaid, set cancellation reason, get data from cancel_tender | ||
410 | ... and call create_cancellation | 429 | ... and call create_cancellation |
430 | + ... After that add document to cancellation and change description of document | ||
411 | ... [Return] Nothing | 431 | ... [Return] Nothing |
412 | - [Arguments] ${username} ${tender_uaid} ${cancellation_reason} | 432 | + [Arguments] ${username} ${tender_uaid} ${cancellation_reason} ${document} ${new_description} |
413 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 433 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
414 | ${data}= test_cancel_tender_data ${cancellation_reason} | 434 | ${data}= test_cancel_tender_data ${cancellation_reason} |
415 | Log ${data} | 435 | Log ${data} |
416 | - Set To Dictionary ${USERS.users['${tender_owner}']} cancellation_reason ${data} | ||
417 | - ${reply}= Call Method ${USERS.users['${username}'].client} create_cancellation ${tender} ${data} | ||
418 | - Log ${reply} | 436 | + ${cancel_reply}= Call Method ${USERS.users['${username}'].client} create_cancellation ${tender} ${data} |
437 | + Log ${cancel_reply} | ||
438 | + ${cancellation_id}= Set variable ${cancel_reply.data.id} | ||
439 | + | ||
440 | + | ||
441 | + ${document_id}= Завантажити документацію до запиту на скасування ${username} ${tender_uaid} ${cancellation_id} ${document} | ||
442 | + | ||
443 | + | ||
444 | + Змінити опис документа в скасуванні ${username} ${tender_uaid} ${cancellation_id} ${document_id} ${new_description} | ||
445 | + | ||
446 | + | ||
447 | + Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id} | ||
419 | 448 | ||
420 | 449 | ||
421 | Завантажити документацію до запиту на скасування | 450 | Завантажити документацію до запиту на скасування |
422 | [Documentation] | 451 | [Documentation] |
423 | - ... [Arguments] Username, tender uaid and number of cancellation | ||
424 | - ... Find tender using uaid, create fake documentation and call upload_cancellation_document | ||
425 | - ... [Return] Nothing | ||
426 | - [Arguments] ${username} ${tender_uaid} ${cancel_num} | 452 | + ... [Arguments] Username, tender uaid, cancellation id and document to upload |
453 | + ... [Description] Find tender using uaid, and call upload_cancellation_document | ||
454 | + ... [Return] ID of added document | ||
455 | + [Arguments] ${username} ${tender_uaid} ${cancellation_id} ${document} | ||
427 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 456 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
428 | - ${first_cancel_doc}= create_fake_doc | ||
429 | - Set To Dictionary ${USERS.users['${tender_owner}']} first_cancel_doc ${first_cancel_doc} | ||
430 | - ${reply}= Call Method ${USERS.users['${username}'].client} upload_cancellation_document ${first_cancel_doc} ${tender} ${tender['data']['cancellations'][${cancel_num}]['id']} | ||
431 | - Log ${reply} | 457 | + ${doc_reply}= Call Method ${USERS.users['${username}'].client} upload_cancellation_document ${document} ${tender} ${cancellation_id} |
458 | + Log ${doc_reply} | ||
459 | + [Return] ${doc_reply.data.id} | ||
432 | 460 | ||
433 | 461 | ||
434 | Змінити опис документа в скасуванні | 462 | Змінити опис документа в скасуванні |
435 | [Documentation] | 463 | [Documentation] |
436 | - ... [Arguments] Username, tender uaid, cancellation number and cancellation document number | ||
437 | - ... Find tender using uaid, get data from test_change_cancellation_document_field and call | 464 | + ... [Arguments] Username, tender uaid, cancellation id, document id and new description of document |
465 | + ... [Description] Find tender using uaid, create dict with data about description and call | ||
438 | ... patch_cancellation_document | 466 | ... patch_cancellation_document |
439 | ... [Return] Nothing | 467 | ... [Return] Nothing |
440 | - [Arguments] ${username} ${tender_uaid} ${cancel_num} ${doc_num} ${field} ${value} | 468 | + [Arguments] ${username} ${tender_uaid} ${cancellation_id} ${document_id} ${new_description} |
469 | + ${field}= Set variable description | ||
441 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 470 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
442 | - ${temp}= Create Dictionary ${field} ${value} | 471 | + ${temp}= Create Dictionary ${field} ${new_description} |
443 | ${data}= Create Dictionary data ${temp} | 472 | ${data}= Create Dictionary data ${temp} |
444 | - Log ${data} | ||
445 | - ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation_document ${tender} ${data} ${tender['data']['cancellations'][${cancel_num}]['id']} ${tender['data']['cancellations'][${cancel_num}]['documents'][${doc_num}]['id']} | 473 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation_document ${tender} ${data} ${cancellation_id} ${document_id} |
446 | Log ${reply} | 474 | Log ${reply} |
447 | 475 | ||
448 | 476 | ||
@@ -465,9 +493,9 @@ Library openprocurement_client_helper.py | @@ -465,9 +493,9 @@ Library openprocurement_client_helper.py | ||
465 | ... [Arguments] Username, tender uaid, cancellation number | 493 | ... [Arguments] Username, tender uaid, cancellation number |
466 | ... Find tender using uaid, get cancellation test_confirmation data and call patch_cancellation | 494 | ... Find tender using uaid, get cancellation test_confirmation data and call patch_cancellation |
467 | ... [Return] Nothing | 495 | ... [Return] Nothing |
468 | - [Arguments] ${username} ${tender_uaid} ${cancel_num} | 496 | + [Arguments] ${username} ${tender_uaid} ${cancel_id} |
469 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 497 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
470 | - ${data}= test_confirm_data ${tender['data']['cancellations'][${cancel_num}]['id']} | 498 | + ${data}= test_confirm_data ${cancel_id} |
471 | Log ${data} | 499 | Log ${data} |
472 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation ${tender} ${data} | 500 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation ${tender} ${data} |
473 | Log ${reply} | 501 | Log ${reply} |
@@ -484,3 +512,57 @@ Library openprocurement_client_helper.py | @@ -484,3 +512,57 @@ Library openprocurement_client_helper.py | ||
484 | Log ${data} | 512 | Log ${data} |
485 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_contract ${tender} ${data} | 513 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_contract ${tender} ${data} |
486 | Log ${reply} | 514 | Log ${reply} |
515 | + | ||
516 | +############################################################################## | ||
517 | +# OpenUA procedure | ||
518 | +############################################################################## | ||
519 | + | ||
520 | +Підтвердити кваліфікацію | ||
521 | + [Documentation] | ||
522 | + ... [Arguments] Username, tender uaid and qualification number | ||
523 | + ... [Description] Find tender using uaid, create data dict with active status and call patch_qualification | ||
524 | + ... [Return] Reply of API | ||
525 | + [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
526 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | ||
527 | + ${qualification}= create_data_dict data.status active | ||
528 | + Set To Dictionary ${qualification.data} id ${tender.data.qualifications[${qualification_num}].id} | ||
529 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | ||
530 | + Log ${reply} | ||
531 | + [Return] ${reply} | ||
532 | + | ||
533 | +Відхилити кваліфікацію | ||
534 | + [Documentation] | ||
535 | + ... [Arguments] Username, tender uaid and qualification number | ||
536 | + ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_qualification | ||
537 | + ... [Return] Reply of API | ||
538 | + [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
539 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | ||
540 | + ${qualification}= create_data_dict data.status unsuccessful | ||
541 | + Set To Dictionary ${qualification.data} id ${tender.data.qualifications[${qualification_num}].id} | ||
542 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | ||
543 | + Log ${reply} | ||
544 | + [Return] ${reply} | ||
545 | + | ||
546 | +Завантажити документ у кваліфікацію | ||
547 | + [Documentation] | ||
548 | + ... [Arguments] Username, tender uaid, qualification number and document to upload | ||
549 | + ... [Description] Find tender using uaid, and call upload_qualification_document | ||
550 | + ... [Return] Reply of API | ||
551 | + [Arguments] ${username} ${document} ${tender_uaid} ${qualification_num} | ||
552 | + ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
553 | + ${doc_reply}= Call Method ${USERS.users['${username}'].client} upload_qualification_document ${document} ${tender} ${tender.data.qualifications[${qualification_num}].id} | ||
554 | + Log ${doc_reply} | ||
555 | + [Return] ${doc_reply} | ||
556 | + | ||
557 | +Скасувати кваліфікацію | ||
558 | + [Documentation] | ||
559 | + ... [Arguments] Username, tender uaid and qualification number | ||
560 | + ... [Description] Find tender using uaid, create data dict with cancelled status and call patch_qualification | ||
561 | + ... [Return] Reply of API | ||
562 | + [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
563 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | ||
564 | + ${qualification}= create_data_dict data.status cancelled | ||
565 | + Set To Dictionary ${qualification.data} id ${tender.data.qualifications[${qualification_num}].id} | ||
566 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | ||
567 | + Log ${reply} | ||
568 | + [Return] ${reply} |
1 | Default: | 1 | Default: |
2 | - # These values are used by default unless a | ||
3 | - # specific broker entry overrides them. | ||
4 | - intervals: # Time in minutes | ||
5 | - enquiry: | ||
6 | - - 0 # Delay before period starts (for startDate) | ||
7 | - - 11 # Duration of period (for endDate) | ||
8 | - tender: | ||
9 | - - 0 | ||
10 | - - 31 | ||
11 | - timeout_on_wait: 300 # Time in seconds | 2 | + # Default dictionary: |
3 | + # These values are used unless a | ||
4 | + # specific broker entry overrides them | ||
5 | + intervals: | ||
6 | + # intervals: Interval values for each "mode" | ||
7 | + # | ||
8 | + # Each field is a mode name | ||
9 | + # Current modes are: | ||
10 | + # single, multi, limited, openua, openeu | ||
11 | + # | ||
12 | + # See `prepare_test_tender_data()` | ||
13 | + # in `service_keywords.py` for more details | ||
14 | + # | ||
15 | + # If some mode is not specified, | ||
16 | + # time values are taken from "default" | ||
17 | + default: | ||
18 | + # default: Used for modes that are not present in `intervals` | ||
19 | + # | ||
20 | + # enquiry, tender: Period names with corresponding time values | ||
21 | + # | ||
22 | + # Other mode-specific fields are allowed too | ||
23 | + # | ||
24 | + # First number in list: Delay before period starts (for startDate) | ||
25 | + # Second number in list: Duration of period (for endDate) | ||
26 | + enquiry: [0, 11] | ||
27 | + tender: [0, 31] | ||
28 | + openua: | ||
29 | + # accelerator: Integer value | ||
30 | + # This is not a name of period | ||
31 | + # Please refer to API documentation to find out what's this | ||
32 | + accelerator: 1440 | ||
33 | + tender: [0, 15] | ||
34 | + # Please remember that openUA and openEU procedures | ||
35 | + # forbid anyone to set or modify enquiryPeriod | ||
36 | + # (it is set automatically) | ||
37 | + openeu: | ||
38 | + accelerator: 1440 | ||
39 | + tender: [0, 30] | ||
40 | + # Synchronization delay, in seconds | ||
41 | + timeout_on_wait: 300 | ||
12 | Quinta: | 42 | Quinta: |
13 | -# intervals: | ||
14 | -# enquiry: | ||
15 | -# - 0 | ||
16 | -# - 2 | ||
17 | -# tender: | ||
18 | -# - 0 | ||
19 | -# - 5 | 43 | + intervals: |
44 | + default: | ||
45 | + enquiry: [0, 2] | ||
46 | + tender: [0, 5] | ||
47 | + openua: | ||
48 | + accelerator: 1440 | ||
49 | + tender: [0, 15] | ||
50 | + openeu: | ||
51 | + accelerator: 1440 | ||
52 | + tender: [0, 30] | ||
20 | keywords_file: openprocurement_client | 53 | keywords_file: openprocurement_client |
21 | roles: | 54 | roles: |
22 | - tender_owner: Tender_Owner | ||
23 | provider: Tender_User | 55 | provider: Tender_User |
24 | provider1: Tender_User1 | 56 | provider1: Tender_User1 |
57 | + tender_owner: Tender_Owner | ||
25 | viewer: Tender_Viewer | 58 | viewer: Tender_Viewer |
26 | timeout_on_wait: 15 | 59 | timeout_on_wait: 15 |
27 | E-tender: | 60 | E-tender: |
28 | keywords_file: etender | 61 | keywords_file: etender |
29 | roles: | 62 | roles: |
30 | - tender_owner: E-tender_Owner | ||
31 | provider: E-tender_Provider1 | 63 | provider: E-tender_Provider1 |
32 | provider1: E-tender_Provider2 | 64 | provider1: E-tender_Provider2 |
65 | + tender_owner: E-tender_Owner | ||
33 | viewer: E-tender_Viewer | 66 | viewer: E-tender_Viewer |
34 | timeout_on_wait: 600 | 67 | timeout_on_wait: 600 |
35 | -Netcast: | ||
36 | - keywords_file: netcast | 68 | +DZO: |
69 | + keywords_file: dzo | ||
37 | login: admin | 70 | login: admin |
38 | password: uStudio | 71 | password: uStudio |
39 | roles: | 72 | roles: |
40 | - tender_owner: Netcast_Owner | ||
41 | - provider: Netcast_Provider1 | ||
42 | - viewer: Netcast_Viewer | 73 | + provider: DZO_Provider1 |
74 | + tender_owner: DZO_Owner | ||
75 | + viewer: DZO_Viewer | ||
43 | Newtend: | 76 | Newtend: |
44 | keywords_file: newtend | 77 | keywords_file: newtend |
45 | roles: | 78 | roles: |
46 | - tender_owner: Newtend_Owner | ||
47 | provider: Newtend_Provider1 | 79 | provider: Newtend_Provider1 |
80 | + tender_owner: Newtend_Owner | ||
48 | viewer: Newtend_Viewer | 81 | viewer: Newtend_Viewer |
49 | PrivatMarket: | 82 | PrivatMarket: |
50 | intervals: | 83 | intervals: |
51 | - enquiry: | ||
52 | - - 0 | ||
53 | - - 2 | ||
54 | - tender: | ||
55 | - - 0 | ||
56 | - - 5 | 84 | + default: |
85 | + enquiry: [0, 2] | ||
86 | + tender: [0, 5] | ||
57 | keywords_file: privatmarket | 87 | keywords_file: privatmarket |
58 | roles: | 88 | roles: |
59 | - viewer: PrivatMarket_Viewer | ||
60 | provider: PrivatMarket_Provider | 89 | provider: PrivatMarket_Provider |
61 | provider1: PrivatMarket_Provider1 | 90 | provider1: PrivatMarket_Provider1 |
91 | + viewer: PrivatMarket_Viewer | ||
62 | timeout_on_wait: 30 | 92 | timeout_on_wait: 30 |
63 | Prom: | 93 | Prom: |
64 | intervals: | 94 | intervals: |
65 | - enquiry: | ||
66 | - - 8 | ||
67 | - - 8 | ||
68 | - tender: | ||
69 | - - 0 | ||
70 | - - 31 | 95 | + default: |
96 | + enquiry: [10, 10] | ||
97 | + tender: [0, 45] | ||
71 | keywords_file: prom | 98 | keywords_file: prom |
72 | roles: | 99 | roles: |
73 | tender_owner: Prom_Owner | 100 | tender_owner: Prom_Owner |
74 | viewer: Prom_Viewer | 101 | viewer: Prom_Viewer |
75 | Publicbid: | 102 | Publicbid: |
103 | + intervals: | ||
104 | + default: | ||
105 | + enquiry: [21, 15] | ||
106 | + tender: [1, 15] | ||
76 | keywords_file: publicbid | 107 | keywords_file: publicbid |
77 | roles: | 108 | roles: |
109 | + provider: Publicbid_Provider1 | ||
78 | tender_owner: Publicbid_Owner | 110 | tender_owner: Publicbid_Owner |
79 | viewer: Publicbid_Viewer | 111 | viewer: Publicbid_Viewer |
80 | - intervals: | ||
81 | - enquiry: | ||
82 | - - 21 # Delay before period starts (for startDate) | ||
83 | - - 15 # Duration of period (for endDate) | ||
84 | - tender: | ||
85 | - - 1 | ||
86 | - - 15 | ||
87 | PublicPortal: | 112 | PublicPortal: |
88 | keywords_file: publicportal | 113 | keywords_file: publicportal |
89 | roles: | 114 | roles: |
90 | viewer: PublicPortal_Viewer | 115 | viewer: PublicPortal_Viewer |
91 | SmartTender: | 116 | SmartTender: |
117 | + intervals: | ||
118 | + default: | ||
119 | + enquiry: [5, 10] | ||
120 | + tender: [0, 15] | ||
92 | keywords_file: smarttender | 121 | keywords_file: smarttender |
93 | roles: | 122 | roles: |
123 | + provider: SmartTender_Provider1 | ||
124 | + provider1: SmartTender_Provider2 | ||
125 | + tender_owner: SmartTender_Owner | ||
94 | viewer: SmartTender_Viewer | 126 | viewer: SmartTender_Viewer |
127 | + timeout_on_wait: 300 |
@@ -13,7 +13,7 @@ users: | @@ -13,7 +13,7 @@ users: | ||
13 | broker: Quinta | 13 | broker: Quinta |
14 | E-tender_Owner: | 14 | E-tender_Owner: |
15 | broker: E-tender | 15 | broker: E-tender |
16 | - homepage: "http://bid.uat.e-tender.biz/#/profile" | 16 | + homepage: "http://bid.uat.e-tender.biz/#" |
17 | login: Misha2 | 17 | login: Misha2 |
18 | password: Password1 | 18 | password: Password1 |
19 | browser: chrome | 19 | browser: chrome |
@@ -21,7 +21,7 @@ users: | @@ -21,7 +21,7 @@ users: | ||
21 | size: [800, 800] | 21 | size: [800, 800] |
22 | E-tender_Provider1: | 22 | E-tender_Provider1: |
23 | broker: E-tender | 23 | broker: E-tender |
24 | - homepage: "http://bid.uat.e-tender.biz/#/profile" | 24 | + homepage: "http://bid.uat.e-tender.biz/#" |
25 | login: st_org | 25 | login: st_org |
26 | password: 12345678 | 26 | password: 12345678 |
27 | browser: chrome | 27 | browser: chrome |
@@ -29,7 +29,7 @@ users: | @@ -29,7 +29,7 @@ users: | ||
29 | size: [700, 800] | 29 | size: [700, 800] |
30 | E-tender_Provider2: | 30 | E-tender_Provider2: |
31 | broker: E-tender | 31 | broker: E-tender |
32 | - homepage: "http://bid.uat.e-tender.biz/#/profile" | 32 | + homepage: "http://bid.uat.e-tender.biz/#" |
33 | login: provider2 | 33 | login: provider2 |
34 | password: Qa123456 | 34 | password: Qa123456 |
35 | browser: chrome | 35 | browser: chrome |
@@ -41,24 +41,24 @@ users: | @@ -41,24 +41,24 @@ users: | ||
41 | browser: chrome | 41 | browser: chrome |
42 | position: [0, 0] | 42 | position: [0, 0] |
43 | size: [640, 450] | 43 | size: [640, 450] |
44 | - Netcast_Owner: | ||
45 | - broker: Netcast | 44 | + DZO_Owner: |
45 | + broker: DZO | ||
46 | homepage: "http://dz2.byustudio.in.ua" | 46 | homepage: "http://dz2.byustudio.in.ua" |
47 | login: ovramet.s@gmail.com | 47 | login: ovramet.s@gmail.com |
48 | password: Password1 | 48 | password: Password1 |
49 | browser: chrome | 49 | browser: chrome |
50 | position: [0, 0] | 50 | position: [0, 0] |
51 | size: [700, 800] | 51 | size: [700, 800] |
52 | - Netcast_Provider1: | ||
53 | - broker: Netcast | 52 | + DZO_Provider1: |
53 | + broker: DZO | ||
54 | homepage: "http://dz2.byustudio.in.ua" | 54 | homepage: "http://dz2.byustudio.in.ua" |
55 | login: halyna.khimka@gmail.com | 55 | login: halyna.khimka@gmail.com |
56 | password: JHO5VUp5n | 56 | password: JHO5VUp5n |
57 | browser: chrome | 57 | browser: chrome |
58 | position: [0, 0] | 58 | position: [0, 0] |
59 | size: [600, 800] | 59 | size: [600, 800] |
60 | - Netcast_Viewer: | ||
61 | - broker: Netcast | 60 | + DZO_Viewer: |
61 | + broker: DZO | ||
62 | homepage: "http://dz2.byustudio.in.ua" | 62 | homepage: "http://dz2.byustudio.in.ua" |
63 | browser: chrome | 63 | browser: chrome |
64 | position: [0, 0] | 64 | position: [0, 0] |
@@ -111,7 +111,8 @@ users: | @@ -111,7 +111,8 @@ users: | ||
111 | size: [1000, 1000] | 111 | size: [1000, 1000] |
112 | Prom_Owner: | 112 | Prom_Owner: |
113 | broker: Prom | 113 | broker: Prom |
114 | - homepage: "http://my.dz-test.net/cabinet/purchases/state_purchase/list" | 114 | + homepage: "http://zakupki.dz-test.net/" |
115 | + default_page: "http://my.dz-test.net/cabinet/purchases/state_purchase/list" | ||
115 | login: test@test12.com | 116 | login: test@test12.com |
116 | password: 1234 | 117 | password: 1234 |
117 | browser: chrome | 118 | browser: chrome |
@@ -119,8 +120,9 @@ users: | @@ -119,8 +120,9 @@ users: | ||
119 | size: [1280, 1024] | 120 | size: [1280, 1024] |
120 | Prom_Viewer: | 121 | Prom_Viewer: |
121 | broker: Prom | 122 | broker: Prom |
122 | - homepage: "http://my.dz-test.net/cabinet/purchases/state_purchase/list" | ||
123 | - login: r.zaporozhets@smartweb.com.ua | 123 | + homepage: "http://zakupki.dz-test.net/" |
124 | + default_page: "http://my.dz-test.net/cabinet/purchases/state_purchase/list" | ||
125 | + login: test@test13.com | ||
124 | password: 1234 | 126 | password: 1234 |
125 | browser: chrome | 127 | browser: chrome |
126 | position: [640, 0] | 128 | position: [640, 0] |
@@ -155,7 +157,31 @@ users: | @@ -155,7 +157,31 @@ users: | ||
155 | size: [640, 480] | 157 | size: [640, 480] |
156 | SmartTender_Viewer: | 158 | SmartTender_Viewer: |
157 | broker: SmartTender | 159 | broker: SmartTender |
158 | - homepage: "http://smarttender.biz/tenders" | 160 | + homepage: "https://m.it.ua/cp_smart/test-tenders?allcat=1" |
161 | + browser: chrome | ||
162 | + position: [0, 450] | ||
163 | + size: [640, 450] | ||
164 | + SmartTender_Provider1: | ||
165 | + broker: SmartTender | ||
166 | + homepage: "https://m.it.ua/cp_smart/test-tenders?allcat=1" | ||
167 | + login: bened@it.ua | ||
168 | + password: 111111 | ||
159 | browser: chrome | 169 | browser: chrome |
160 | position: [0, 450] | 170 | position: [0, 450] |
161 | size: [640, 450] | 171 | size: [640, 450] |
172 | + SmartTender_Provider2: | ||
173 | + broker: SmartTender | ||
174 | + homepage: "https://m.it.ua/cp_smart/test-tenders?allcat=1" | ||
175 | + login: my.mail.rudenko@gmail.com | ||
176 | + password: qwerty123 | ||
177 | + browser: chrome | ||
178 | + position: [0, 450] | ||
179 | + size: [640, 450] | ||
180 | + SmartTender_Owner: | ||
181 | + broker: SmartTender | ||
182 | + homepage: "https://m.it.ua/cp_smart/" | ||
183 | + login: PPR_BV | ||
184 | + password: 123321 | ||
185 | + browser: chrome | ||
186 | + position: [0, 0] | ||
187 | + size: [1400, 900] |
@@ -10,6 +10,10 @@ fake_ru = Factory.create('ru') | @@ -10,6 +10,10 @@ fake_ru = Factory.create('ru') | ||
10 | fake_en = Factory.create() | 10 | fake_en = Factory.create() |
11 | 11 | ||
12 | 12 | ||
13 | +def create_fake_sentence(): | ||
14 | + return fake.sentence(nb_words=10, variable_nb_words=True) | ||
15 | + | ||
16 | + | ||
13 | def create_fake_doc(): | 17 | def create_fake_doc(): |
14 | content = fake.text() | 18 | content = fake.text() |
15 | suffix = fake.random_element(('.txt', '.doc', '.docx', '.pdf')) | 19 | suffix = fake.random_element(('.txt', '.doc', '.docx', '.pdf')) |
@@ -19,7 +23,7 @@ def create_fake_doc(): | @@ -19,7 +23,7 @@ def create_fake_doc(): | ||
19 | return tf.name | 23 | return tf.name |
20 | 24 | ||
21 | 25 | ||
22 | -def test_tender_data(intervals): | 26 | +def test_tender_data(intervals, periods=("enquiry", "tender")): |
23 | now = get_now() | 27 | now = get_now() |
24 | t_data = { | 28 | t_data = { |
25 | "title": u"[ТЕСТУВАННЯ] " + fake.catch_phrase(), | 29 | "title": u"[ТЕСТУВАННЯ] " + fake.catch_phrase(), |
@@ -104,7 +108,7 @@ def test_tender_data(intervals): | @@ -104,7 +108,7 @@ def test_tender_data(intervals): | ||
104 | } | 108 | } |
105 | period_dict = {} | 109 | period_dict = {} |
106 | inc_dt = now | 110 | inc_dt = now |
107 | - for period_name in ("enquiry", "tender"): | 111 | + for period_name in periods: |
108 | period_dict[period_name + "Period"] = {} | 112 | period_dict[period_name + "Period"] = {} |
109 | for i, j in zip(range(2), ("start", "end")): | 113 | for i, j in zip(range(2), ("start", "end")): |
110 | inc_dt += timedelta(minutes=intervals[period_name][i]) | 114 | inc_dt += timedelta(minutes=intervals[period_name][i]) |
@@ -190,189 +194,31 @@ def test_tender_data_limited(intervals): | @@ -190,189 +194,31 @@ def test_tender_data_limited(intervals): | ||
190 | 194 | ||
191 | 195 | ||
192 | def test_tender_data_multiple_items(intervals): | 196 | def test_tender_data_multiple_items(intervals): |
193 | - now = get_now() | ||
194 | t_data = test_tender_data(intervals) | 197 | t_data = test_tender_data(intervals) |
195 | - t_data.update({ | ||
196 | - "items": [ | ||
197 | - { | ||
198 | - "description": fake.catch_phrase(), | ||
199 | - "deliveryDate": { | ||
200 | - "endDate": (now + timedelta(days=5)).isoformat() | ||
201 | - }, | ||
202 | - "deliveryLocation": { | ||
203 | - "latitude": 49.8500, | ||
204 | - "longitude": 24.0167 | ||
205 | - }, | ||
206 | - "deliveryAddress": { | ||
207 | - "countryName": u"Україна", | ||
208 | - "countryName_ru": u"Украина", | ||
209 | - "countryName_en": "Ukraine", | ||
210 | - "postalCode": "01008", | ||
211 | - "region": u"м. Київ", | ||
212 | - "locality": u"м. Київ", | ||
213 | - "streetAddress": u"ул. Грушевского, 12/2" | ||
214 | - }, | ||
215 | - "classification": { | ||
216 | - "scheme": u"CPV", | ||
217 | - "id": u"44617100-9", | ||
218 | - "description": u"Картонки", | ||
219 | - "description_ru": u"Большие картонные коробки", | ||
220 | - "description_en": u"Cartons" | ||
221 | - }, | ||
222 | - "additionalClassifications": [ | ||
223 | - { | ||
224 | - "scheme": u"ДКПП", | ||
225 | - "id": u"17.29.12-00.00", | ||
226 | - "description": u"Блоки, плити та пластини фільтрувальні, з паперової маси" | ||
227 | - } | ||
228 | - ], | ||
229 | - "unit": { | ||
230 | - "name": u"кілограм", | ||
231 | - "name_ru": u"килограмм", | ||
232 | - "name_en": "kilogram", | ||
233 | - "code": u"KGM" | ||
234 | - }, | ||
235 | - "quantity": fake.pyint() | ||
236 | - }, | ||
237 | - { | ||
238 | - "description": fake.catch_phrase(), | ||
239 | - "deliveryDate": { | ||
240 | - "endDate": (now + timedelta(days=5)).isoformat() | ||
241 | - }, | ||
242 | - "deliveryLocation": { | ||
243 | - "latitude": 49.8500, | ||
244 | - "longitude": 24.0167 | ||
245 | - }, | ||
246 | - "deliveryAddress": { | ||
247 | - "countryName": u"Україна", | ||
248 | - "countryName_ru": u"Украина", | ||
249 | - "countryName_en": "Ukraine", | ||
250 | - "postalCode": fake.postalcode(), | ||
251 | - "region": u"м. Київ", | ||
252 | - "locality": u"м. Київ", | ||
253 | - "streetAddress": fake.street_address() | ||
254 | - }, | ||
255 | - "classification": { | ||
256 | - "scheme": u"CPV", | ||
257 | - "id": u"44617100-9", | ||
258 | - "description": u"Картонки", | ||
259 | - "description_ru": u"Большие картонные коробки", | ||
260 | - "description_en": u"Cartons" | ||
261 | - }, | ||
262 | - "additionalClassifications": [ | ||
263 | - { | ||
264 | - "scheme": u"ДКПП", | ||
265 | - "id": u"17.21.99-00.00", | ||
266 | - "description": u"Роботи субпідрядні як частина виробництва гофрованих паперу й картону, паперової та картонної тари" | ||
267 | - } | ||
268 | - ], | ||
269 | - "unit": { | ||
270 | - "name": u"кілограм", | ||
271 | - "name_ru": u"килограмм", | ||
272 | - "name_en": "kilogram", | ||
273 | - "code": u"KGM" | ||
274 | - }, | ||
275 | - "quantity": fake.pyint() | ||
276 | - }, | ||
277 | - { | ||
278 | - "description": fake.catch_phrase(), | ||
279 | - "deliveryDate": { | ||
280 | - "endDate": (now + timedelta(days=5)).isoformat() | ||
281 | - }, | ||
282 | - "deliveryLocation": { | ||
283 | - "latitude": 49.3418, | ||
284 | - "longitude": 39.1829 | ||
285 | - }, | ||
286 | - "deliveryAddress": { | ||
287 | - "countryName": u"Україна", | ||
288 | - "countryName_ru": u"Украина", | ||
289 | - "countryName_en": "Ukraine", | ||
290 | - "postalCode": fake.postalcode(), | ||
291 | - "region": u"Луганська область", | ||
292 | - "locality": u"м. Луганськ", | ||
293 | - "streetAddress": u"Вул. Оборонна 28" | ||
294 | - }, | ||
295 | - "classification": { | ||
296 | - "scheme": u"CPV", | ||
297 | - "id": u"44617100-9", | ||
298 | - "description": u"Картонки", | ||
299 | - "description_ru": u"Большие картонные коробки", | ||
300 | - "description_en": u"Cartons" | ||
301 | - }, | ||
302 | - "additionalClassifications": [ | ||
303 | - { | ||
304 | - "scheme": u"ДКПП", | ||
305 | - "id": u"17.22.12-40.00", | ||
306 | - "description": u"Вата; вироби з вати, інші" | ||
307 | - } | ||
308 | - ], | ||
309 | - "unit": { | ||
310 | - "name": u"кілограм", | ||
311 | - "name_ru": u"килограмм", | ||
312 | - "name_en": "kilogram", | ||
313 | - "code": u"KGM" | ||
314 | - }, | ||
315 | - "quantity": fake.pyint() | ||
316 | - }, | ||
317 | - { | ||
318 | - "description": fake.catch_phrase(), | ||
319 | - "deliveryDate": { | ||
320 | - "endDate": (now + timedelta(days=5)).isoformat() | ||
321 | - }, | ||
322 | - "deliveryLocation": { | ||
323 | - "latitude": 49.8500, | ||
324 | - "longitude": 24.0167 | ||
325 | - }, | ||
326 | - "deliveryAddress": { | ||
327 | - "countryName": u"Україна", | ||
328 | - "countryName_ru": u"Украина", | ||
329 | - "countryName_en": "Ukraine", | ||
330 | - "postalCode": fake.postalcode(), | ||
331 | - "region": u"м. Київ", | ||
332 | - "locality": u"м. Київ", | ||
333 | - "streetAddress": fake.street_address() | ||
334 | - }, | ||
335 | - "classification": { | ||
336 | - "scheme": u"CPV", | ||
337 | - "id": u"44617100-9", | ||
338 | - "description": u"Картонки", | ||
339 | - "description_ru": u"Большие картонные коробки", | ||
340 | - "description_en": u"Cartons" | ||
341 | - }, | ||
342 | - "additionalClassifications": [ | ||
343 | - { | ||
344 | - "scheme": u"ДКПП", | ||
345 | - "id": u"17.22.12-50.00", | ||
346 | - "description": u"Одяг і речі до одягу з паперової маси, паперу, целюлозної вати чи полотна з целюлозного волокна (крім носових хусточок, наголовних уборів)" | ||
347 | - } | ||
348 | - ], | ||
349 | - "unit": { | ||
350 | - "name": u"кілограм", | ||
351 | - "name_ru": u"килограмм", | ||
352 | - "name_en": "kilogram", | ||
353 | - "code": u"KGM" | ||
354 | - }, | ||
355 | - "quantity": fake.pyint() | ||
356 | - } | ||
357 | - ] | ||
358 | - }) | 198 | + for _ in range(4): |
199 | + new_item = test_item_data() | ||
200 | + t_data['items'].append(new_item) | ||
359 | return t_data | 201 | return t_data |
360 | 202 | ||
361 | 203 | ||
362 | def test_tender_data_multiple_lots(t_data): | 204 | def test_tender_data_multiple_lots(t_data): |
363 | - for i in range(3): | ||
364 | - t_data['data']['items'][i]['relatedLot'] = "3c8f387879de4c38957402dbdb8b31af" | ||
365 | - t_data['data']['items'][3]['relatedLot'] = "bcac8d2ceb5f4227b841a2211f5cb646" | 205 | + first_lot_id = "3c8f387879de4c38957402dbdb8b31af" |
206 | + second_lot_id = "bcac8d2ceb5f4227b841a2211f5cb646" | ||
207 | + | ||
208 | + for item in t_data['data']['items'][:-1]: | ||
209 | + item['relatedLot'] = first_lot_id | ||
210 | + t_data['data']['items'][-1]['relatedLot'] = second_lot_id | ||
211 | + | ||
366 | t_data['data']['lots'] = [ | 212 | t_data['data']['lots'] = [ |
367 | { | 213 | { |
368 | - "id": "3c8f387879de4c38957402dbdb8b31af", | 214 | + "id": first_lot_id, |
369 | "title": "Lot #1: Kyiv stationery", | 215 | "title": "Lot #1: Kyiv stationery", |
370 | "description": "Items for Kyiv office", | 216 | "description": "Items for Kyiv office", |
371 | "value": {"currency": "UAH", "amount": 34000.0, "valueAddedTaxIncluded": "true"}, | 217 | "value": {"currency": "UAH", "amount": 34000.0, "valueAddedTaxIncluded": "true"}, |
372 | "minimalStep": {"currency": "UAH", "amount": 30.0, "valueAddedTaxIncluded": "true"}, | 218 | "minimalStep": {"currency": "UAH", "amount": 30.0, "valueAddedTaxIncluded": "true"}, |
373 | "status": "active" | 219 | "status": "active" |
374 | }, { | 220 | }, { |
375 | - "id": "bcac8d2ceb5f4227b841a2211f5cb646", | 221 | + "id": second_lot_id, |
376 | "title": "Lot #2: Lviv stationery", | 222 | "title": "Lot #2: Lviv stationery", |
377 | "description": "Items for Lviv office", | 223 | "description": "Items for Lviv office", |
378 | "value": {"currency": "UAH", "amount": 9000.0, "valueAddedTaxIncluded": "true"}, | 224 | "value": {"currency": "UAH", "amount": 9000.0, "valueAddedTaxIncluded": "true"}, |
@@ -436,8 +282,8 @@ def test_meat_tender_data(tender): | @@ -436,8 +282,8 @@ def test_meat_tender_data(tender): | ||
436 | return tender | 282 | return tender |
437 | 283 | ||
438 | 284 | ||
439 | -def test_question_data(): | ||
440 | - return munchify({ | 285 | +def test_question_data(lot=False): |
286 | + data = munchify({ | ||
441 | "data": { | 287 | "data": { |
442 | "author": { | 288 | "author": { |
443 | "address": { | 289 | "address": { |
@@ -464,6 +310,9 @@ def test_question_data(): | @@ -464,6 +310,9 @@ def test_question_data(): | ||
464 | "title": fake.sentence(nb_words=6, variable_nb_words=True) | 310 | "title": fake.sentence(nb_words=6, variable_nb_words=True) |
465 | } | 311 | } |
466 | }) | 312 | }) |
313 | + if lot: | ||
314 | + data = test_lot_question_data(data) | ||
315 | + return data | ||
467 | 316 | ||
468 | 317 | ||
469 | def test_question_answer_data(): | 318 | def test_question_answer_data(): |
@@ -474,7 +323,40 @@ def test_question_answer_data(): | @@ -474,7 +323,40 @@ def test_question_answer_data(): | ||
474 | }) | 323 | }) |
475 | 324 | ||
476 | 325 | ||
477 | -def test_complaint_data(): | 326 | +def test_complaint_data(lot=False): |
327 | + data = munchify({ | ||
328 | + "data": { | ||
329 | + "author": { | ||
330 | + "address": { | ||
331 | + "countryName": u"Україна", | ||
332 | + "countryName_ru": u"Украина", | ||
333 | + "countryName_en": "Ukraine", | ||
334 | + "locality": u"м. Вінниця", | ||
335 | + "postalCode": "21100", | ||
336 | + "region": u"Вінницька область", | ||
337 | + "streetAddress": fake.street_address() | ||
338 | + }, | ||
339 | + "contactPoint": { | ||
340 | + "name": fake.name(), | ||
341 | + "telephone": fake.phone_number() | ||
342 | + }, | ||
343 | + "identifier": { | ||
344 | + "scheme": u"UA-EDR", | ||
345 | + "id": u"{:08d}".format(fake.pyint()), | ||
346 | + "uri": fake.image_url(width=None, height=None) | ||
347 | + }, | ||
348 | + "name": fake.company() | ||
349 | + }, | ||
350 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), | ||
351 | + "title": fake.sentence(nb_words=6, variable_nb_words=True) | ||
352 | + } | ||
353 | + }) | ||
354 | + if lot: | ||
355 | + data = test_lot_complaint_data(data) | ||
356 | + return data | ||
357 | + | ||
358 | + | ||
359 | +def test_claim_data(): | ||
478 | return munchify({ | 360 | return munchify({ |
479 | "data": { | 361 | "data": { |
480 | "author": { | 362 | "author": { |
@@ -674,97 +556,57 @@ def test_bid_data(): | @@ -674,97 +556,57 @@ def test_bid_data(): | ||
674 | } | 556 | } |
675 | ], | 557 | ], |
676 | "value": { | 558 | "value": { |
677 | - "amount": 500 | 559 | + "currency": "UAH", |
560 | + "amount": 500, | ||
561 | + "valueAddedTaxIncluded": "true" | ||
678 | } | 562 | } |
679 | } | 563 | } |
680 | }) | 564 | }) |
681 | 565 | ||
682 | 566 | ||
683 | def test_bid_data_meat_tender(): | 567 | def test_bid_data_meat_tender(): |
684 | - return munchify({ | ||
685 | - "data": { | ||
686 | - "tenderers": [ | ||
687 | - { | ||
688 | - "address": { | ||
689 | - "countryName": "Україна", | ||
690 | - "locality": "м. Вінниця", | ||
691 | - "postalCode": "21100", | ||
692 | - "region": "м. Вінниця", | ||
693 | - "streetAddress": fake.street_address() | ||
694 | - }, | ||
695 | - "contactPoint": { | ||
696 | - "name": fake.name(), | ||
697 | - "telephone": fake.phone_number() | ||
698 | - }, | ||
699 | - "identifier": { | ||
700 | - "scheme": u"UA-EDR", | ||
701 | - "id": u"{:08d}".format(fake.pyint()), | ||
702 | - }, | ||
703 | - "name": fake.company() | ||
704 | - } | ||
705 | - ], | ||
706 | - "parameters": [ | ||
707 | - { | ||
708 | - "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
709 | - "value": fake.random_element(elements=(0.15, 0.1, 0.05, 0)) | ||
710 | - }, | ||
711 | - { | ||
712 | - "code": "48cfd91612c04125ab406374d7cc8d93", | ||
713 | - "value": fake.random_element(elements=(0.05, 0.01, 0)) | ||
714 | - } | ||
715 | - ], | ||
716 | - "value": { | ||
717 | - "amount": 500 | 568 | + bid = test_bid_data() |
569 | + bid.data.update({ | ||
570 | + "parameters": [ | ||
571 | + { | ||
572 | + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
573 | + "value": fake.random_element(elements=(0.15, 0.1, 0.05, 0)) | ||
574 | + }, | ||
575 | + { | ||
576 | + "code": "48cfd91612c04125ab406374d7cc8d93", | ||
577 | + "value": fake.random_element(elements=(0.05, 0.01, 0)) | ||
718 | } | 578 | } |
719 | - } | 579 | + ] |
720 | }) | 580 | }) |
581 | + return bid | ||
721 | 582 | ||
722 | 583 | ||
723 | def test_lots_bid_data(): | 584 | def test_lots_bid_data(): |
724 | - return munchify({ | ||
725 | - "data": { | ||
726 | - "tenderers": [ | ||
727 | - { | ||
728 | - "address": { | ||
729 | - "countryName": "Україна", | ||
730 | - "locality": "м. Вінниця", | ||
731 | - "postalCode": "21100", | ||
732 | - "region": "м. Вінниця", | ||
733 | - "streetAddress": fake.street_address() | ||
734 | - }, | ||
735 | - "contactPoint": { | ||
736 | - "name": fake.name(), | ||
737 | - "telephone": fake.phone_number() | ||
738 | - }, | ||
739 | - "identifier": { | ||
740 | - "scheme": u"UA-EDR", | ||
741 | - "id": u"{:08d}".format(fake.pyint()), | ||
742 | - }, | ||
743 | - "name": fake.company() | ||
744 | - } | ||
745 | - ], | ||
746 | - "lotValues": [ | ||
747 | - { | ||
748 | - "value": { | ||
749 | - "currency": "UAH", | ||
750 | - "amount": 1000 + fake.pyfloat(left_digits=3, right_digits=0, positive=True), | ||
751 | - "valueAddedTaxIncluded": "true" | ||
752 | - }, | ||
753 | - "relatedLot": "3c8f387879de4c38957402dbdb8b31af", | ||
754 | - "date": "2015-11-01T12:43:12.482645+02:00" | 585 | + bid = test_bid_data() |
586 | + del bid.data.value | ||
587 | + bid.data.update({ | ||
588 | + "lotValues": [ | ||
589 | + { | ||
590 | + "value": { | ||
591 | + "currency": "UAH", | ||
592 | + "amount": fake.random_int(max=1999), | ||
593 | + "valueAddedTaxIncluded": "true" | ||
755 | }, | 594 | }, |
756 | - { | ||
757 | - "value": { | ||
758 | - "currency": "UAH", | ||
759 | - "amount": 1000 + fake.pyfloat(left_digits=3, right_digits=0, positive=True), | ||
760 | - "valueAddedTaxIncluded": "true" | ||
761 | - }, | ||
762 | - "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
763 | - "date": "2015-11-01T12:43:12.482645+02:00" | ||
764 | - } | ||
765 | - ] | ||
766 | - } | 595 | + "relatedLot": "3c8f387879de4c38957402dbdb8b31af", |
596 | + "date": "2015-11-01T12:43:12.482645+02:00" | ||
597 | + }, | ||
598 | + { | ||
599 | + "value": { | ||
600 | + "currency": "UAH", | ||
601 | + "amount": fake.random_int(max=1999), | ||
602 | + "valueAddedTaxIncluded": "true" | ||
603 | + }, | ||
604 | + "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
605 | + "date": "2015-11-01T12:43:12.482645+02:00" | ||
606 | + } | ||
607 | + ] | ||
767 | }) | 608 | }) |
609 | + return bid | ||
768 | 610 | ||
769 | 611 | ||
770 | def auction_bid(): | 612 | def auction_bid(): |
@@ -875,14 +717,6 @@ def test_invalid_features_data(): | @@ -875,14 +717,6 @@ def test_invalid_features_data(): | ||
875 | "title": "180 днів та більше" | 717 | "title": "180 днів та більше" |
876 | }, | 718 | }, |
877 | { | 719 | { |
878 | - "value": 0.1, | ||
879 | - "title": "90-179 днів", | ||
880 | - }, | ||
881 | - { | ||
882 | - "value": 0.05, | ||
883 | - "title": "30-89 днів" | ||
884 | - }, | ||
885 | - { | ||
886 | "value": 0, | 720 | "value": 0, |
887 | "title": "Менше 30 днів" | 721 | "title": "Менше 30 днів" |
888 | } | 722 | } |
@@ -900,10 +734,6 @@ def test_invalid_features_data(): | @@ -900,10 +734,6 @@ def test_invalid_features_data(): | ||
900 | "title": "Вищий" | 734 | "title": "Вищий" |
901 | }, | 735 | }, |
902 | { | 736 | { |
903 | - "value": 0.01, | ||
904 | - "title": "Перший", | ||
905 | - }, | ||
906 | - { | ||
907 | "value": 0, | 737 | "value": 0, |
908 | "title": "Другий" | 738 | "title": "Другий" |
909 | } | 739 | } |
@@ -948,3 +778,38 @@ def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af" | @@ -948,3 +778,38 @@ def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af" | ||
948 | lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} | 778 | lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} |
949 | lot_complaint.update(complaint.data) | 779 | lot_complaint.update(complaint.data) |
950 | return munchify({"data": lot_complaint}) | 780 | return munchify({"data": lot_complaint}) |
781 | + | ||
782 | + | ||
783 | +def test_tender_data_openua(intervals): | ||
784 | + accelerator = intervals['accelerator'] | ||
785 | + # Since `accelerator` field is not really a list containing timings | ||
786 | + # for a period called `acceleratorPeriod`, let's remove it :) | ||
787 | + del intervals['accelerator'] | ||
788 | + # We should not provide any values for `enquiryPeriod` when creating | ||
789 | + # an openUA or openEU procedure. That field should not be present at all. | ||
790 | + # Therefore, we pass a nondefault list of periods to `test_tender_data()`. | ||
791 | + t_data = test_tender_data(intervals, periods=('tender',)) | ||
792 | + t_data['procurementMethodType'] = 'aboveThresholdUA' | ||
793 | + t_data['procurementMethodDetails'] = 'quick, ' \ | ||
794 | + 'accelerator={}'.format(accelerator) | ||
795 | + return t_data | ||
796 | + | ||
797 | +def test_tender_data_openeu(intervals): | ||
798 | + accelerator = intervals['accelerator'] | ||
799 | + # Since `accelerator` field is not really a list containing timings | ||
800 | + # for a period called `acceleratorPeriod`, let's remove it :) | ||
801 | + del intervals['accelerator'] | ||
802 | + # We should not provide any values for `enquiryPeriod` when creating | ||
803 | + # an openUA or openEU procedure. That field should not be present at all. | ||
804 | + # Therefore, we pass a nondefault list of periods to `test_tender_data()`. | ||
805 | + t_data = test_tender_data(intervals, periods=('tender',)) | ||
806 | + t_data['procurementMethodType'] = 'aboveThresholdEU' | ||
807 | + t_data['procurementMethodDetails'] = 'quick, ' \ | ||
808 | + 'accelerator={}'.format(accelerator) | ||
809 | + t_data['title_en'] = "[TESTING]" | ||
810 | + for item_number, item in enumerate(t_data['items']): | ||
811 | + item['description_en'] = "Test item #{}".format(item_number) | ||
812 | + t_data['procuringEntity']['contactPoint']['name_en'] = fake_en.name() | ||
813 | + t_data['procuringEntity']['contactPoint']['availableLanguage'] = "en" | ||
814 | + t_data['procuringEntity']['identifier']['legalName_en'] = "Institution \"Vinnytsia City Council primary and secondary general school № 10\"" | ||
815 | + return t_data |
1 | *** Settings *** | 1 | *** Settings *** |
2 | -Resource resource.robot | ||
3 | Library op_robot_tests.tests_files.service_keywords | 2 | Library op_robot_tests.tests_files.service_keywords |
4 | Library String | 3 | Library String |
5 | Library Collections | 4 | Library Collections |
@@ -7,13 +6,21 @@ Library Selenium2Library | @@ -7,13 +6,21 @@ Library Selenium2Library | ||
7 | Library DateTime | 6 | Library DateTime |
8 | Library DebugLibrary | 7 | Library DebugLibrary |
9 | 8 | ||
9 | +Documentation | ||
10 | +... This resource file contains keywords that are used directly by | ||
11 | +... test suites or by brokers' keyword libraries (also known as drivers). | ||
10 | 12 | ||
11 | *** Keywords *** | 13 | *** Keywords *** |
12 | -TestSuiteSetup | 14 | +Test Suite Setup |
13 | Set Selenium Implicit Wait 5 s | 15 | Set Selenium Implicit Wait 5 s |
14 | Set Selenium Timeout 10 s | 16 | Set Selenium Timeout 10 s |
15 | Завантажуємо дані про користувачів і майданчики | 17 | Завантажуємо дані про користувачів і майданчики |
16 | 18 | ||
19 | +Test Suite Teardown | ||
20 | + Close all browsers | ||
21 | + ${artifact}= Create Dictionary tender_uaid=${TENDER['TENDER_UAID']} access_token=${USERS.users['${tender_owner}'].access_token} | ||
22 | + log_object_data ${artifact} arctifact | ||
23 | + | ||
17 | 24 | ||
18 | Set Suite Variable With Default Value | 25 | Set Suite Variable With Default Value |
19 | [Arguments] ${suite_var} ${def_value} | 26 | [Arguments] ${suite_var} ${def_value} |
@@ -27,8 +34,8 @@ Set Suite Variable With Default Value | @@ -27,8 +34,8 @@ Set Suite Variable With Default Value | ||
27 | 34 | ||
28 | ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml | 35 | ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml |
29 | ${BROKERS}= load_initial_data_from ${file_path} | 36 | ${BROKERS}= load_initial_data_from ${file_path} |
30 | - log ${BROKERS} | ||
31 | - Set Global Variable ${BROKERS} | 37 | + Log ${BROKERS} |
38 | + Set Suite Variable ${BROKERS} | ||
32 | 39 | ||
33 | ${file_path}= Get Variable Value ${USERS_FILE} users.yaml | 40 | ${file_path}= Get Variable Value ${USERS_FILE} users.yaml |
34 | ${USERS}= load_initial_data_from ${file_path} | 41 | ${USERS}= load_initial_data_from ${file_path} |
@@ -39,19 +46,19 @@ Set Suite Variable With Default Value | @@ -39,19 +46,19 @@ Set Suite Variable With Default Value | ||
39 | Set Suite Variable With Default Value provider Tender_User | 46 | Set Suite Variable With Default Value provider Tender_User |
40 | Set Suite Variable With Default Value provider1 Tender_User1 | 47 | Set Suite Variable With Default Value provider1 Tender_User1 |
41 | Set Suite Variable With Default Value viewer Tender_Viewer | 48 | Set Suite Variable With Default Value viewer Tender_Viewer |
42 | - ${active_users}= Create Dictionary tender_owner ${tender_owner} provider ${provider} provider1 ${provider1} viewer ${viewer} | 49 | + ${active_users}= Create Dictionary tender_owner=${tender_owner} provider=${provider} provider1=${provider1} viewer=${viewer} |
43 | 50 | ||
44 | - ${users_list}= Get Dictionary Items ${USERS.users} | ||
45 | - :FOR ${username} ${user_data} IN @{users_list} | ||
46 | - \ log ${active_users} | ||
47 | - \ log ${username} | 51 | + ${users_list}= Get Dictionary Items ${USERS.users} |
52 | + :FOR ${username} ${user_data} IN @{users_list} | ||
53 | + \ Log ${active_users} | ||
54 | + \ Log ${username} | ||
48 | \ ${munch_dict}= munch_dict data=${True} | 55 | \ ${munch_dict}= munch_dict data=${True} |
49 | \ Log Many ${munch_dict} | 56 | \ Log Many ${munch_dict} |
50 | - \ ${status}= Run Keyword And Return Status Dictionary Should Contain Value ${active_users} ${username} | 57 | + \ ${status}= Run Keyword And Return Status Dictionary Should Contain Value ${active_users} ${username} |
51 | \ ${keywords_file}= Get Broker Property By Username ${username} keywords_file | 58 | \ ${keywords_file}= Get Broker Property By Username ${username} keywords_file |
52 | - \ Run Keyword If '${status}' == 'True' Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} | ||
53 | - \ Run Keyword If '${status}' == 'True' Викликати для учасника ${username} Підготувати клієнт для користувача | ||
54 | - \ Run Keyword If '${status}' == 'True' Set To Dictionary ${USERS.users['${username}']} tender_data ${munch_dict} | 59 | + \ Run Keyword If ${status} Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} |
60 | + \ Run Keyword If ${status} Викликати для учасника ${username} Підготувати клієнт для користувача | ||
61 | + \ Run Keyword If ${status} Set To Dictionary ${USERS.users['${username}']} tender_data=${munch_dict} | ||
55 | 62 | ||
56 | 63 | ||
57 | Get Broker Property | 64 | Get Broker Property |
@@ -77,25 +84,7 @@ Get Broker Property By Username | @@ -77,25 +84,7 @@ Get Broker Property By Username | ||
77 | Run Keyword And Return Get Broker Property ${broker_name} ${property} | 84 | Run Keyword And Return Get Broker Property ${broker_name} ${property} |
78 | 85 | ||
79 | 86 | ||
80 | -Підготовка початкових даних | ||
81 | - @{QUESTIONS}= Create list | ||
82 | - ${question}= test question data | ||
83 | - ${question_lot}= test_lot_question_data ${question} | ||
84 | - Append to list ${QUESTIONS} ${question} ${question_lot} | ||
85 | - Set Global Variable @{QUESTIONS} | ||
86 | - @{ANSWERS}= Create list | ||
87 | - ${answer}= test_question_answer_data | ||
88 | - Append to list ${ANSWERS} ${answer} | ||
89 | - Set Global Variable @{ANSWERS} | ||
90 | - @{COMPLAINTS}= Create list | ||
91 | - ${complaint}= test_complaint_data | ||
92 | - ${complaint_lot}= test_lot_complaint_data ${complaint} | ||
93 | - Append to list ${COMPLAINTS} ${complaint} ${complaint_lot} | ||
94 | - Set Global Variable @{COMPLAINTS} | ||
95 | - @{REPLIES}= Create list | ||
96 | - ${reply}= test_complaint_reply_data | ||
97 | - Append to list ${REPLIES} ${reply} | ||
98 | - Set Global Variable @{REPLIES} | 87 | +Підготовка даних для створення тендера |
99 | ${custom_intervals}= Get Broker Property By Username ${tender_owner} intervals | 88 | ${custom_intervals}= Get Broker Property By Username ${tender_owner} intervals |
100 | ${default_intervals}= Get Broker Property Default intervals | 89 | ${default_intervals}= Get Broker Property Default intervals |
101 | ${period_intervals}= merge_dicts ${default_intervals} ${custom_intervals} | 90 | ${period_intervals}= merge_dicts ${default_intervals} ${custom_intervals} |
@@ -107,6 +96,34 @@ Get Broker Property By Username | @@ -107,6 +96,34 @@ Get Broker Property By Username | ||
107 | [return] ${tender_data} | 96 | [return] ${tender_data} |
108 | 97 | ||
109 | 98 | ||
99 | +Підготовка даних для подання вимоги | ||
100 | + ${claim}= test_claim_data | ||
101 | + [Return] ${claim} | ||
102 | + | ||
103 | + | ||
104 | + | ||
105 | +Підготовка даних для подання скарги | ||
106 | + [Arguments] ${lot}=${False} | ||
107 | + ${complaint}= test_complaint_data ${lot} | ||
108 | + [Return] ${complaint} | ||
109 | + | ||
110 | + | ||
111 | +Підготовка даних для відповіді на скаргу | ||
112 | + ${reply}= test_complaint_reply_data | ||
113 | + [Return] ${reply} | ||
114 | + | ||
115 | + | ||
116 | +Підготовка даних для запитання | ||
117 | + [Arguments] ${lot}=${False} | ||
118 | + ${question}= test_question_data ${lot} | ||
119 | + [Return] ${question} | ||
120 | + | ||
121 | + | ||
122 | +Підготовка даних для відповіді на запитання | ||
123 | + ${answer}= test_question_answer_data | ||
124 | + [Return] ${answer} | ||
125 | + | ||
126 | + | ||
110 | Підготувати дані про постачальника | 127 | Підготувати дані про постачальника |
111 | [Arguments] ${username} | 128 | [Arguments] ${username} |
112 | ${supplier_data}= test_supplier_data | 129 | ${supplier_data}= test_supplier_data |
@@ -115,23 +132,60 @@ Get Broker Property By Username | @@ -115,23 +132,60 @@ Get Broker Property By Username | ||
115 | [Return] ${supplier_data} | 132 | [Return] ${supplier_data} |
116 | 133 | ||
117 | 134 | ||
135 | +Підготувати дані про скасування | ||
136 | + [Arguments] ${username} | ||
137 | + ${cancellation_reason}= create_fake_sentence | ||
138 | + ${document}= create_fake_doc | ||
139 | + ${new_description}= create_fake_sentence | ||
140 | + ${cancellation_data}= Create Dictionary cancellation_reason=${cancellation_reason} document=${document} description=${new_description} | ||
141 | + Set To Dictionary ${USERS.users['${username}']} cancellation_data ${cancellation_data} | ||
142 | + [Return] ${cancellation_data} | ||
143 | + | ||
118 | Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} | 144 | Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} |
119 | - ${bundled_st}= Run Keyword And Return Status Import Resource ${CURDIR}/brokers/${keywords_file}.robot | ||
120 | - ${external_st}= Run Keyword And Return Status Import Resource ${CURDIR}/../../src/robot_tests.broker.${keywords_file}/${keywords_file}.robot | 145 | + ${bundled_st}= Run Keyword And Return Status Import Resource ${CURDIR}${/}brokers${/}${keywords_file}.robot |
146 | + ${external_st}= Run Keyword And Return Status Import Resource ${CURDIR}${/}..${/}..${/}src${/}robot_tests.broker.${keywords_file}${/}${keywords_file}.robot | ||
121 | Run Keyword If ${bundled_st} == ${external_st} == ${False} Fail Resource file ${keywords_file}.robot not found | 147 | Run Keyword If ${bundled_st} == ${external_st} == ${False} Fail Resource file ${keywords_file}.robot not found |
122 | - Run Keyword If ${bundled_st} == ${external_st} == ${True} Fail Resource file ${keywords_file}.robot found in both brokers/ and src/ | 148 | + Run Keyword If ${bundled_st} == ${external_st} == ${True} Fail Resource file ${keywords_file}.robot found in both brokers${/} and src${/} |
123 | 149 | ||
124 | 150 | ||
125 | Дочекатись синхронізації з майданчиком | 151 | Дочекатись синхронізації з майданчиком |
126 | [Arguments] ${username} | 152 | [Arguments] ${username} |
127 | [Documentation] | 153 | [Documentation] |
128 | - ... Get ${wait_timeout} for specified user and wait | ||
129 | - ... until that timeout runs out. | 154 | + ... Find out how much time has passed since the procurement was modified |
155 | + ... and store the result in `delta`, | ||
156 | + ... then get `timeout_on_wait` for ``username``, | ||
157 | + ... then wait for `sleep` seconds, where: | ||
158 | + ... | ||
159 | + ... sleep = timeout_on_wait - delta | ||
160 | + ... | ||
161 | + ... Thus, when this keyword is executed several times in a row, | ||
162 | + ... it will wait for as long as really needed. | ||
163 | + ... | ||
164 | + ... Example: | ||
165 | + ... | ||
166 | + ... The procurement is modified. | ||
167 | + ... In 5 seconds, this keyword is called for `viewer`. | ||
168 | + ... Immediately, this keyword is called for `provider`. | ||
169 | + ... Timeout for `viewer` is 60. | ||
170 | + ... Timeout for `provider` is 300. | ||
171 | + ... First call (for `viewer`) will trigger `Sleep 55`. | ||
172 | + ... Second call (for `provider`) will trigger `Sleep 235`. | ||
173 | + ... As a result, the delay will end in 300 seconds | ||
174 | + ... since last modification date. | ||
175 | + ... | ||
176 | + ... Another example (a variation of previous one): | ||
177 | + ... | ||
178 | + ... Timeout for `viewer` is 120. | ||
179 | + ... Timeout for `provider` is 30. | ||
180 | + ... First call will trigger `Sleep 115`. | ||
181 | + ... Second call will trigger `Sleep 0`, | ||
182 | + ... since we have already slept for 120 seconds | ||
183 | + ... and there is no need to sleep any longer. | ||
130 | ${now}= Get Current TZdate | 184 | ${now}= Get Current TZdate |
131 | ${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']} | 185 | ${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']} |
132 | ${timeout_on_wait}= Get Broker Property By Username ${username} timeout_on_wait | 186 | ${timeout_on_wait}= Get Broker Property By Username ${username} timeout_on_wait |
133 | - ${wait_timeout}= Subtract Time From Time ${timeout_on_wait} ${delta} | ||
134 | - Run Keyword If ${wait_timeout}>0 Sleep ${wait_timeout} | 187 | + ${sleep}= Subtract Time From Time ${timeout_on_wait} ${delta} |
188 | + Run Keyword If ${sleep} > 0 Sleep ${sleep} | ||
135 | 189 | ||
136 | 190 | ||
137 | Звірити поле тендера | 191 | Звірити поле тендера |
@@ -151,9 +205,11 @@ Get Broker Property By Username | @@ -151,9 +205,11 @@ Get Broker Property By Username | ||
151 | 205 | ||
152 | Порівняти об'єкти | 206 | Порівняти об'єкти |
153 | [Arguments] ${left} ${right} | 207 | [Arguments] ${left} ${right} |
208 | + Log ${left} | ||
209 | + Log ${right} | ||
154 | Should Not Be Equal ${left} ${None} | 210 | Should Not Be Equal ${left} ${None} |
155 | Should Not Be Equal ${right} ${None} | 211 | Should Not Be Equal ${right} ${None} |
156 | - Should Be Equal ${left} ${right} | 212 | + Should Be Equal ${left} ${right} msg=Objects are not equal |
157 | 213 | ||
158 | 214 | ||
159 | Звірити дату тендера | 215 | Звірити дату тендера |
@@ -165,36 +221,43 @@ Get Broker Property By Username | @@ -165,36 +221,43 @@ Get Broker Property By Username | ||
165 | Звірити дату тендера із значенням | 221 | Звірити дату тендера із значенням |
166 | [Arguments] ${username} ${left} ${field} | 222 | [Arguments] ${username} ${left} ${field} |
167 | ${right}= Викликати для учасника ${username} Отримати інформацію із тендера ${field} | 223 | ${right}= Викликати для учасника ${username} Отримати інформацію із тендера ${field} |
168 | - Звірити дату ${left} ${right} | 224 | + Порівняти дати ${left} ${right} |
169 | Set_To_Object ${USERS.users['${username}'].tender_data.data} ${field} ${left} | 225 | Set_To_Object ${USERS.users['${username}'].tender_data.data} ${field} ${left} |
170 | 226 | ||
171 | 227 | ||
172 | -Звірити дату | ||
173 | - [Arguments] ${left} ${right} | 228 | +Порівняти дати |
229 | + [Documentation] | ||
230 | + ... Compare dates with specified ``accuracy`` (in seconds). | ||
231 | + ... Default is `60`. | ||
232 | + ... | ||
233 | + ... The keyword will fail if the difference between | ||
234 | + ... ``left`` and ``right`` dates is more than ``accuracy``, | ||
235 | + ... otherwise it will pass. | ||
236 | + [Arguments] ${left} ${right} ${accuracy}=60 | ||
237 | + Log ${left} | ||
238 | + Log ${right} | ||
174 | Should Not Be Equal ${left} ${None} | 239 | Should Not Be Equal ${left} ${None} |
175 | Should Not Be Equal ${right} ${None} | 240 | Should Not Be Equal ${right} ${None} |
176 | - ${status}= compare_date ${left} ${right} | ||
177 | - Should Be True ${status} | 241 | + ${status}= compare_date ${left} ${right} ${accuracy} |
242 | + Should Be True ${status} msg=Dates are not equal: ${left} != ${right} | ||
178 | 243 | ||
179 | 244 | ||
180 | Звірити поля предметів закупівлі багатопредметного тендера | 245 | Звірити поля предметів закупівлі багатопредметного тендера |
181 | [Arguments] ${username} ${tender_data} ${field} | 246 | [Arguments] ${username} ${tender_data} ${field} |
182 | - Дочекатись синхронізації з майданчиком ${username} | ||
183 | @{items}= Get_From_Object ${tender_data.data} items | 247 | @{items}= Get_From_Object ${tender_data.data} items |
184 | - ${len_of_items}= Get Length ${items} | ||
185 | - :FOR ${index} IN RANGE ${len_of_items} | ||
186 | - \ Log ${index} | ||
187 | - \ Звірити поле тендера ${viewer} ${tender_data} items[${index}].${field} | 248 | + ${len_of_items}= Get Length ${items} |
249 | + :FOR ${index} IN RANGE ${len_of_items} | ||
250 | + \ Log ${index} | ||
251 | + \ Звірити поле тендера ${viewer} ${tender_data} items[${index}].${field} | ||
188 | 252 | ||
189 | 253 | ||
190 | Звірити дату предметів закупівлі багатопредметного тендера | 254 | Звірити дату предметів закупівлі багатопредметного тендера |
191 | [Arguments] ${username} ${tender_data} ${field} | 255 | [Arguments] ${username} ${tender_data} ${field} |
192 | - Дочекатись синхронізації з майданчиком ${username} | ||
193 | @{items}= Get_From_Object ${tender_data.data} items | 256 | @{items}= Get_From_Object ${tender_data.data} items |
194 | - ${len_of_items}= Get Length ${items} | ||
195 | - :FOR ${index} IN RANGE ${len_of_items} | ||
196 | - \ Log ${index} | ||
197 | - \ Звірити дату тендера ${viewer} ${tender_data} items[${index}].${field} | 257 | + ${len_of_items}= Get Length ${items} |
258 | + :FOR ${index} IN RANGE ${len_of_items} | ||
259 | + \ Log ${index} | ||
260 | + \ Звірити дату тендера ${viewer} ${tender_data} items[${index}].${field} | ||
198 | 261 | ||
199 | 262 | ||
200 | Викликати для учасника | 263 | Викликати для учасника |
@@ -235,29 +298,61 @@ SwitchState | @@ -235,29 +298,61 @@ SwitchState | ||
235 | 298 | ||
236 | Дочекатись дати | 299 | Дочекатись дати |
237 | [Arguments] ${date} | 300 | [Arguments] ${date} |
238 | - ${wait_timeout}= wait_to_date ${date} | ||
239 | - Run Keyword If ${wait_timeout}>0 Sleep ${wait_timeout} | 301 | + ${sleep}= wait_to_date ${date} |
302 | + Run Keyword If ${sleep} > 0 Sleep ${sleep} | ||
240 | 303 | ||
241 | 304 | ||
242 | Дочекатись дати початку прийому пропозицій | 305 | Дочекатись дати початку прийому пропозицій |
243 | [Arguments] ${username} | 306 | [Arguments] ${username} |
244 | - log ${username} | ||
245 | - Дочекатись дати ${USERS.users['${username}'].tender_data.data.tenderPeriod.startDate} | 307 | + Log ${username} |
308 | + # This tries to get the date from current user's procurement data cache. | ||
309 | + # On failure, it reads from tender_owner's cached initial_data. | ||
310 | + # XXX: This is a dirty hack! | ||
311 | + # HACK: It was left here only for backward compatibiliy. | ||
312 | + # HACK: Before caching was implemented, this keyword used to look into | ||
313 | + # HACK: tender_owner's initial_data. | ||
314 | + # HACK: This should be cleaned up as soon as each broker implements reading | ||
315 | + # HACK: of the needed dates from tender's page. | ||
316 | + ${status} ${date}= Run Keyword And Ignore Error | ||
317 | + ... Set Variable | ||
318 | + ... ${USERS.users['${username}'].tender_data.data.tenderPeriod.startDate} | ||
319 | + # By default if condition is not satisfied, variable is set to None. | ||
320 | + # The third argument sets the variable to itself instead of None. | ||
321 | + ${date}= Set Variable If | ||
322 | + ... '${status}' == 'FAIL' | ||
323 | + ... ${USERS.users['${tender_owner}'].initial_data.data.tenderPeriod.startDate} | ||
324 | + ... ${date} | ||
325 | + Дочекатись дати ${date} | ||
246 | 326 | ||
247 | 327 | ||
248 | Дочекатись дати закінчення прийому пропозицій | 328 | Дочекатись дати закінчення прийому пропозицій |
249 | [Arguments] ${username} | 329 | [Arguments] ${username} |
250 | - log ${username} | ||
251 | - Дочекатись дати ${USERS.users['${username}'].tender_data.data.tenderPeriod.endDate} | 330 | + Log ${username} |
331 | + # XXX: HACK: Same as above | ||
332 | + ${status} ${date}= Run Keyword And Ignore Error | ||
333 | + ... Set Variable | ||
334 | + ... ${USERS.users['${username}'].tender_data.data.tenderPeriod.endDate} | ||
335 | + ${date}= Set Variable If | ||
336 | + ... '${status}' == 'FAIL' | ||
337 | + ... ${USERS.users['${tender_owner}'].initial_data.data.tenderPeriod.endDate} | ||
338 | + ... ${date} | ||
339 | + Дочекатись дати ${date} | ||
252 | 340 | ||
253 | 341 | ||
254 | Дочекатись дати початку аукціону | 342 | Дочекатись дати початку аукціону |
255 | [Arguments] ${username} | 343 | [Arguments] ${username} |
256 | - log ${username} | 344 | + Log ${username} |
345 | + # Can't use that dirty hack here since we don't know | ||
346 | + # the date of auction when creating the procurement :) | ||
257 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.startDate} | 347 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.startDate} |
258 | 348 | ||
259 | 349 | ||
260 | Дочекатись дати закінчення аукціону | 350 | Дочекатись дати закінчення аукціону |
261 | [Arguments] ${username} | 351 | [Arguments] ${username} |
262 | - log ${username} | 352 | + Log ${username} |
263 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.endDate} | 353 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.endDate} |
354 | + | ||
355 | +Дочекатись дати закінчення періоду подання скарг | ||
356 | + [Arguments] ${username} | ||
357 | + log ${username} | ||
358 | + Дочекатись дати ${USERS.users['${username}'].tender_data.data.complaintPeriod.endDate} |
@@ -3,7 +3,7 @@ Library op_robot_tests.tests_files.service_keywords | @@ -3,7 +3,7 @@ Library op_robot_tests.tests_files.service_keywords | ||
3 | Library Collections | 3 | Library Collections |
4 | Resource keywords.robot | 4 | Resource keywords.robot |
5 | Resource resource.robot | 5 | Resource resource.robot |
6 | -Suite Setup TestSuiteSetup | 6 | +Suite Setup Test Suite Setup |
7 | Suite Teardown Close all browsers | 7 | Suite Teardown Close all browsers |
8 | 8 | ||
9 | 9 | ||
@@ -22,7 +22,7 @@ ${broker} Quinta | @@ -22,7 +22,7 @@ ${broker} Quinta | ||
22 | ... tender_owner | 22 | ... tender_owner |
23 | ... ${USERS.users['${tender_owner}'].broker} | 23 | ... ${USERS.users['${tender_owner}'].broker} |
24 | ... minimal | 24 | ... minimal |
25 | - ${tender_data}= Підготовка початкових даних | 25 | + ${tender_data}= Підготовка даних для створення тендера |
26 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} | 26 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} |
27 | ... Створити тендер | 27 | ... Створити тендер |
28 | ... ${tender_data} | 28 | ... ${tender_data} |
@@ -34,59 +34,23 @@ ${broker} Quinta | @@ -34,59 +34,23 @@ ${broker} Quinta | ||
34 | Log ${TENDER} | 34 | Log ${TENDER} |
35 | 35 | ||
36 | 36 | ||
37 | -Можливість сформувати запит на скасування прямої закупівлі | ||
38 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість сформувати запит на скасування прямої закупівлі | 37 | +Можливість скасувати пряму закупівлю |
38 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість скасувати пряму закупівлю | ||
39 | ... tender_owner | 39 | ... tender_owner |
40 | ... ${USERS.users['${tender_owner}'].broker} | 40 | ... ${USERS.users['${tender_owner}'].broker} |
41 | - ... critical level 2 | 41 | + ... level2 |
42 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 42 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
43 | - ${CANCEL_NUM}= Set variable 0 | ||
44 | - Set suite variable ${CANCEL_NUM} | ||
45 | - ${cancellation_reason}= Set variable prosto tak :) | 43 | + ${cancellation_data}= Підготувати дані про скасування ${tender_owner} |
46 | Викликати для учасника ${tender_owner} | 44 | Викликати для учасника ${tender_owner} |
47 | - ... Додати запит на скасування | 45 | + ... Скасувати закупівлю |
48 | ... ${TENDER['TENDER_UAID']} | 46 | ... ${TENDER['TENDER_UAID']} |
49 | - ... ${cancellation_reason} | ||
50 | - Викликати для учасника ${tender_owner} | ||
51 | - ... Завантажити документацію до запиту на скасування | ||
52 | - ... ${TENDER['TENDER_UAID']} | ||
53 | - ... ${CANCEL_NUM} | ||
54 | - | ||
55 | - | ||
56 | -Можливість змінити опис документа в скасуванні прямої закупівлі | ||
57 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість змінити опис документа в скасуванні прямої закупівлі | ||
58 | - ... tender_owner | ||
59 | - ... ${USERS.users['${tender_owner}'].broker} | ||
60 | - ${FIRST_DOC}= Set variable 0 | ||
61 | - Set Suite Variable ${FIRST_DOC} | ||
62 | - ${field}= Set variable description | ||
63 | - ${value}= Set variable test description | ||
64 | - Викликати для учасника ${tender_owner} | ||
65 | - ... Змінити опис документа в скасуванні | ||
66 | - ... ${TENDER['TENDER_UAID']} ${CANCEL_NUM} ${FIRST_DOC} | ||
67 | - ... ${field} | ||
68 | - ... ${value} | ||
69 | - Set To Dictionary ${USERS.users['${tender_owner}']} cancellation_document_description ${value} | ||
70 | - | ||
71 | - | ||
72 | -Можливість завантажити нову версію документа до запиту на скасування прямої закупівлі | ||
73 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити нову версію документа до запиту на скасування прямої закупівлі | ||
74 | - ... tender_owner | ||
75 | - ... ${USERS.users['${tender_owner}'].broker} | ||
76 | - Викликати для учасника ${tender_owner} | ||
77 | - ... Завантажити нову версію документа до запиту на скасування | ||
78 | - ... ${TENDER['TENDER_UAID']} ${CANCEL_NUM} ${FIRST_DOC} | ||
79 | - | ||
80 | - | ||
81 | -Можливість активувати скасування прямої закупівлі | ||
82 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість активувати скасування прямої закупівлі | ||
83 | - ... tender_owner | ||
84 | - ... ${USERS.users['${tender_owner}'].broker} | ||
85 | - ... critical level 2 | ||
86 | - Викликати для учасника ${tender_owner} | ||
87 | - ... Підтвердити скасування закупівлі | ||
88 | - ... ${TENDER['TENDER_UAID']} | ||
89 | - ... ${CANCEL_NUM} | 47 | + ... ${cancellation_data['cancellation_reason']} |
48 | + ... ${cancellation_data['document']} | ||
49 | + ... ${cancellation_data['description']} | ||
50 | + ${CANCEL_NUM}= Set variable 0 | ||
51 | + Set suite variable ${CANCEL_NUM} | ||
52 | + ${DOC_NUM}= Set variable 0 | ||
53 | + Set suite variable ${DOC_NUM} | ||
90 | 54 | ||
91 | 55 | ||
92 | Відображення активного статусу скасування прямої закупівлі | 56 | Відображення активного статусу скасування прямої закупівлі |
@@ -104,7 +68,7 @@ ${broker} Quinta | @@ -104,7 +68,7 @@ ${broker} Quinta | ||
104 | ... viewer | 68 | ... viewer |
105 | ... ${USERS.users['${viewer}'].broker} | 69 | ... ${USERS.users['${viewer}'].broker} |
106 | Звірити поле тендера із значенням ${viewer} | 70 | Звірити поле тендера із значенням ${viewer} |
107 | - ... ${USERS.users['${tender_owner}']['cancellation_reason']['data']['reason']} | 71 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['cancellation_reason']} |
108 | ... cancellations[${CANCEL_NUM}].reason | 72 | ... cancellations[${CANCEL_NUM}].reason |
109 | 73 | ||
110 | 74 | ||
@@ -113,27 +77,17 @@ ${broker} Quinta | @@ -113,27 +77,17 @@ ${broker} Quinta | ||
113 | ... viewer | 77 | ... viewer |
114 | ... ${USERS.users['${viewer}'].broker} | 78 | ... ${USERS.users['${viewer}'].broker} |
115 | Звірити поле тендера із значенням ${viewer} | 79 | Звірити поле тендера із значенням ${viewer} |
116 | - ... ${USERS.users['${tender_owner}']['cancellation_document_description']} | ||
117 | - ... cancellations[${CANCEL_NUM}].documents[${FIRST_DOC}].description | 80 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['description']} |
81 | + ... cancellations[${CANCEL_NUM}].documents[${DOC_NUM}].description | ||
118 | 82 | ||
119 | 83 | ||
120 | -Відображення заголовку першого документа скасування прямої закупівлі | ||
121 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення заголовку першого документа скасування прямої закупівлі | 84 | +Відображення заголовку документа скасування прямої закупівлі |
85 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення заголовку документа скасування прямої закупівлі | ||
122 | ... viewer | 86 | ... viewer |
123 | ... ${USERS.users['${viewer}'].broker} | 87 | ... ${USERS.users['${viewer}'].broker} |
124 | Звірити поле тендера із значенням ${viewer} | 88 | Звірити поле тендера із значенням ${viewer} |
125 | - ... ${USERS.users['${tender_owner}']['first_cancel_doc']} | ||
126 | - ... cancellations[${CANCEL_NUM}].documents[${FIRST_DOC}].title | ||
127 | - | ||
128 | - | ||
129 | -Відображення заголовку другого документа скасування прямої закупівлі | ||
130 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення заголовку другого документа скасування прямої закупівлі | ||
131 | - ... viewer | ||
132 | - ... ${USERS.users['${viewer}'].broker} | ||
133 | - ${second_doc_num}= Set variable 1 | ||
134 | - Звірити поле тендера із значенням ${viewer} | ||
135 | - ... ${USERS.users['${tender_owner}']['second_cancel_doc']} | ||
136 | - ... cancellations[${CANCEL_NUM}].documents[${second_doc_num}].title | 89 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['document']} |
90 | + ... cancellations[${CANCEL_NUM}].documents[${DOC_NUM}].title | ||
137 | 91 | ||
138 | ############################################################################################## | 92 | ############################################################################################## |
139 | # MAIN | 93 | # MAIN |
@@ -144,7 +98,7 @@ ${broker} Quinta | @@ -144,7 +98,7 @@ ${broker} Quinta | ||
144 | ... tender_owner | 98 | ... tender_owner |
145 | ... ${USERS.users['${tender_owner}'].broker} | 99 | ... ${USERS.users['${tender_owner}'].broker} |
146 | ... minimal | 100 | ... minimal |
147 | - ${tender_data}= Підготовка початкових даних | 101 | + ${tender_data}= Підготовка даних для створення тендера |
148 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} | 102 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} |
149 | ... Створити тендер | 103 | ... Створити тендер |
150 | ... ${tender_data} | 104 | ... ${tender_data} |
@@ -197,13 +151,11 @@ ${broker} Quinta | @@ -197,13 +151,11 @@ ${broker} Quinta | ||
197 | ... minimal | 151 | ... minimal |
198 | ${SUPP_NUM}= Set variable 0 | 152 | ${SUPP_NUM}= Set variable 0 |
199 | Set Suite Variable ${SUPP_NUM} | 153 | Set Suite Variable ${SUPP_NUM} |
154 | + ${supplier_data}= Підготувати дані про постачальника ${tender_owner} | ||
200 | Викликати для учасника ${tender_owner} | 155 | Викликати для учасника ${tender_owner} |
201 | - ... Додати постачальника | 156 | + ... Додати і підтвердити постачальника |
202 | ... ${TENDER['TENDER_UAID']} | 157 | ... ${TENDER['TENDER_UAID']} |
203 | - Викликати для учасника ${tender_owner} | ||
204 | - ... Підтвердити постачальника | ||
205 | - ... ${TENDER['TENDER_UAID']} | ||
206 | - ... ${SUPP_NUM} | 158 | + ... ${supplier_data} |
207 | 159 | ||
208 | ############################################################################################## | 160 | ############################################################################################## |
209 | # MAIN DATA | 161 | # MAIN DATA |
@@ -219,33 +171,6 @@ ${broker} Quinta | @@ -219,33 +171,6 @@ ${broker} Quinta | ||
219 | ... title | 171 | ... title |
220 | 172 | ||
221 | 173 | ||
222 | -Відображення власника прямої закупівлі | ||
223 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення власника прямої закупівлі | ||
224 | - ... viewer | ||
225 | - ... ${USERS.users['${viewer}'].broker} | ||
226 | - Звірити поле тендера ${viewer} | ||
227 | - ... ${USERS.users['${tender_owner}'].initial_data} | ||
228 | - ... owner | ||
229 | - | ||
230 | - | ||
231 | -Відображення методу прямої закупівлі | ||
232 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення методу прямої закупівлі | ||
233 | - ... viewer | ||
234 | - ... ${USERS.users['${viewer}'].broker} | ||
235 | - Звірити поле тендера ${viewer} | ||
236 | - ... ${USERS.users['${tender_owner}'].initial_data} | ||
237 | - ... procurementMethod | ||
238 | - | ||
239 | - | ||
240 | -Відображення типу методу прямої закупівлі | ||
241 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення типу методу прямої закупівлі | ||
242 | - ... viewer | ||
243 | - ... ${USERS.users['${viewer}'].broker} | ||
244 | - Звірити поле тендера ${viewer} | ||
245 | - ... ${USERS.users['${tender_owner}'].initial_data} | ||
246 | - ... procurementMethodType | ||
247 | - | ||
248 | - | ||
249 | Відображення ідентифікатора прямої закупівлі | 174 | Відображення ідентифікатора прямої закупівлі |
250 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення ідентифікатора прямої закупівлі | 175 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення ідентифікатора прямої закупівлі |
251 | ... viewer | 176 | ... viewer |
@@ -297,8 +222,8 @@ ${broker} Quinta | @@ -297,8 +222,8 @@ ${broker} Quinta | ||
297 | ... procuringEntity.address.countryName | 222 | ... procuringEntity.address.countryName |
298 | 223 | ||
299 | 224 | ||
300 | -Відображення міста замовника прямої закупівлі | ||
301 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення міста замовника прямої закупівлі | 225 | +Відображення населеного пункту замовника прямої закупівлі |
226 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення населеного пункту замовника прямої закупівлі | ||
302 | ... viewer | 227 | ... viewer |
303 | ... ${USERS.users['${viewer}'].broker} | 228 | ... ${USERS.users['${viewer}'].broker} |
304 | Звірити поле тендера ${viewer} | 229 | Звірити поле тендера ${viewer} |
@@ -370,7 +295,7 @@ ${broker} Quinta | @@ -370,7 +295,7 @@ ${broker} Quinta | ||
370 | 295 | ||
371 | 296 | ||
372 | Відображення схеми ідентифікації замовника прямої закупівлі | 297 | Відображення схеми ідентифікації замовника прямої закупівлі |
373 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення схеми замовника прямої закупівлі | 298 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення схеми ідентифікації замовника прямої закупівлі |
374 | ... viewer | 299 | ... viewer |
375 | ... ${USERS.users['${viewer}'].broker} | 300 | ... ${USERS.users['${viewer}'].broker} |
376 | Звірити поле тендера ${viewer} | 301 | Звірити поле тендера ${viewer} |
@@ -574,8 +499,8 @@ ${broker} Quinta | @@ -574,8 +499,8 @@ ${broker} Quinta | ||
574 | ... items[${ITEMS_NUM}].deliveryAddress.region | 499 | ... items[${ITEMS_NUM}].deliveryAddress.region |
575 | 500 | ||
576 | 501 | ||
577 | -Відображення міста адреси доставки номенклатури прямої закупівлі | ||
578 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення locality адреси доставки номенклатури прямої закупівлі | 502 | +Відображення населеного пункту адреси доставки номенклатури прямої закупівлі |
503 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення населеного пункту адреси доставки номенклатури прямої закупівлі | ||
579 | ... viewer | 504 | ... viewer |
580 | ... ${USERS.users['${viewer}'].broker} | 505 | ... ${USERS.users['${viewer}'].broker} |
581 | Звірити поле тендера ${viewer} | 506 | Звірити поле тендера ${viewer} |
@@ -692,7 +617,7 @@ ${broker} Quinta | @@ -692,7 +617,7 @@ ${broker} Quinta | ||
692 | 617 | ||
693 | 618 | ||
694 | Відображення схеми ідентифікації постачальника прямої закупівлі | 619 | Відображення схеми ідентифікації постачальника прямої закупівлі |
695 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення контактного імейлу постачальника прямої закупівлі | 620 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення схеми ідентифікації постачальника прямої закупівлі |
696 | ... viewer | 621 | ... viewer |
697 | ... ${USERS.users['${viewer}'].broker} | 622 | ... ${USERS.users['${viewer}'].broker} |
698 | Звірити поле тендера із значенням ${viewer} | 623 | Звірити поле тендера із значенням ${viewer} |
@@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
6 | Library DebugLibrary | 6 | Library DebugLibrary |
7 | Resource keywords.robot | 7 | Resource keywords.robot |
8 | Resource resource.robot | 8 | Resource resource.robot |
9 | -Suite Setup TestSuiteSetup | ||
10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
10 | +Suite Teardown Test Suite Teardown | ||
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | ${mode} single | 13 | ${mode} single |
@@ -17,9 +17,12 @@ ${broker} Quinta | @@ -17,9 +17,12 @@ ${broker} Quinta | ||
17 | 17 | ||
18 | *** Test Cases *** | 18 | *** Test Cases *** |
19 | Можливість оголосити однопредметний тендер з неціновим показником | 19 | Можливість оголосити однопредметний тендер з неціновим показником |
20 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 20 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер з неціновим показником |
21 | + ... tender_owner | ||
22 | + ... ${USERS.users['${tender_owner}'].broker} | ||
23 | + ... minimal | ||
21 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), | 24 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), |
22 | - ${base_tender_data}= Підготовка початкових даних | 25 | + ${base_tender_data}= Підготовка даних для створення тендера |
23 | ${tender_data}= test_meat_tender_data ${base_tender_data} | 26 | ${tender_data}= test_meat_tender_data ${base_tender_data} |
24 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | 27 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} |
25 | ${LAST_MODIFICATION_DATE}= Get Current TZdate | 28 | ${LAST_MODIFICATION_DATE}= Get Current TZdate |
@@ -28,18 +31,25 @@ ${broker} Quinta | @@ -28,18 +31,25 @@ ${broker} Quinta | ||
28 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | 31 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} |
29 | Log ${TENDER} | 32 | Log ${TENDER} |
30 | 33 | ||
34 | + | ||
31 | Можливість знайти однопредметний тендер по ідентифікатору | 35 | Можливість знайти однопредметний тендер по ідентифікатору |
32 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 36 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
33 | - ... viewer | ||
34 | - ... ${USERS.users['${viewer}'].broker} | 37 | + ... viewer tender_owner provider provider1 |
38 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
39 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
35 | ... minimal | 40 | ... minimal |
36 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
37 | - ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
38 | - :FOR ${username} IN @{usernames} | 41 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} |
42 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
39 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 43 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
40 | 44 | ||
45 | + | ||
41 | Неможливість перевищити ліміт для нецінових критеріїв | 46 | Неможливість перевищити ліміт для нецінових критеріїв |
47 | + [Documentation] | ||
48 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
42 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 49 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
50 | + ... tender_owner | ||
51 | + ... ${USERS.users['${tender_owner}'].broker} | ||
52 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
43 | ${invalid_features}= test_invalid_features_data | 53 | ${invalid_features}= test_invalid_features_data |
44 | ${fail}= Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} features ${invalid_features} | 54 | ${fail}= Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} features ${invalid_features} |
45 | Log ${fail} | 55 | Log ${fail} |
@@ -48,58 +58,76 @@ ${broker} Quinta | @@ -48,58 +58,76 @@ ${broker} Quinta | ||
48 | #Подання пропозицій | 58 | #Подання пропозицій |
49 | 59 | ||
50 | Відображення початку періоду прийому пропозицій оголошеного тендера | 60 | Відображення початку періоду прийому пропозицій оголошеного тендера |
51 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
52 | - ... viewer | ||
53 | - ... ${USERS.users['${viewer}'].broker} | 61 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
62 | + ... viewer provider provider1 | ||
63 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} | ||
64 | + ... ${USERS.users['${provider1}'].broker} | ||
54 | ... minimal | 65 | ... minimal |
55 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
56 | - :FOR ${username} IN @{usernames} | 66 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
67 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
57 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | 68 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate |
58 | 69 | ||
70 | + | ||
59 | Неможливість подати цінову пропозицію без нецінового показника | 71 | Неможливість подати цінову пропозицію без нецінового показника |
72 | + [Documentation] | ||
73 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
60 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 74 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
75 | + ... provider | ||
76 | + ... ${USERS.users['${provider}'].broker} | ||
77 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
61 | Дочекатись дати початку прийому пропозицій ${provider} | 78 | Дочекатись дати початку прийому пропозицій ${provider} |
62 | sleep 90 | 79 | sleep 90 |
63 | ${bid}= test bid data | 80 | ${bid}= test bid data |
64 | Log ${bid} | 81 | Log ${bid} |
65 | - ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
66 | - log ${biddingresponse0} | 82 | + ${failbid}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} |
83 | + log ${failbid} | ||
67 | 84 | ||
68 | -Подати цінову пропозицію з неціновим показником | 85 | + |
86 | +Можливість подати цінову пропозицію з неціновим показником | ||
69 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 87 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
88 | + ... provider | ||
89 | + ... ${USERS.users['${provider}'].broker} | ||
70 | ${bid}= test bid data meat tender | 90 | ${bid}= test bid data meat tender |
71 | Log ${bid} | 91 | Log ${bid} |
92 | + ${bidresponses}= Create Dictionary | ||
93 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
94 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
72 | ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 95 | ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
73 | - ${biddingresponse0}= Create Dictionary | ||
74 | - Set To Dictionary ${biddingresponse0} resp ${resp} | ||
75 | - Set To Dictionary ${USERS.users['${provider}']} biddingresponse0 ${biddingresponse0} | 96 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} |
76 | log ${resp} | 97 | log ${resp} |
77 | 98 | ||
99 | + | ||
78 | Можливість змінити неціновий показник повторної цінової пропозиції до 0 | 100 | Можливість змінити неціновий показник повторної цінової пропозиції до 0 |
79 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 101 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
80 | - Set To Dictionary ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} value 0 | ||
81 | - Log ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} | ||
82 | - ${fixbidparamsto0resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].biddingresponse0['resp']} | ||
83 | - Set To Dictionary ${USERS.users['${provider}'].biddingresponse0} fixbidparamsto0resp ${fixbidparamsto0resp} | 102 | + ... provider |
103 | + ... ${USERS.users['${provider}'].broker} | ||
104 | + ${fixbidparamsto0resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} parameters.0.value 0 | ||
105 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidparamsto0resp ${fixbidparamsto0resp} | ||
84 | log ${fixbidparamsto0resp} | 106 | log ${fixbidparamsto0resp} |
85 | 107 | ||
108 | + | ||
86 | Можливість змінити неціновий показник повторної цінової пропозиції до 0.15 | 109 | Можливість змінити неціновий показник повторної цінової пропозиції до 0.15 |
87 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 110 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
88 | - Set To Dictionary ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} value 0.15 | ||
89 | - Log ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} | ||
90 | - ${fixbidparamsto015resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].biddingresponse0['resp']} | ||
91 | - Set To Dictionary ${USERS.users['${provider}'].biddingresponse0} fixbidparamsto015resp ${fixbidparamsto015resp} | 111 | + ... provider |
112 | + ... ${USERS.users['${provider}'].broker} | ||
113 | + ${fixbidparamsto015resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} parameters.0.value 0.15 | ||
114 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidparamsto015resp ${fixbidparamsto015resp} | ||
92 | log ${fixbidparamsto015resp} | 115 | log ${fixbidparamsto015resp} |
93 | 116 | ||
94 | -Подати цінову пропозицію з неціновим показником другим учасником | 117 | + |
118 | +Можливість подати цінову пропозицію з неціновим показником другим учасником | ||
95 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | 119 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
120 | + ... provider1 | ||
121 | + ... ${USERS.users['${provider1}'].broker} | ||
122 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
96 | Дочекатись дати початку прийому пропозицій ${provider1} | 123 | Дочекатись дати початку прийому пропозицій ${provider1} |
97 | ${bid}= test bid data meat tender | 124 | ${bid}= test bid data meat tender |
98 | Log ${bid} | 125 | Log ${bid} |
99 | ${bidresponses}= Create Dictionary | 126 | ${bidresponses}= Create Dictionary |
100 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
101 | - Set To Dictionary ${bidresponses} resp ${resp} | 127 | + Set To Dictionary ${bidresponses} bid ${bid} |
102 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | 128 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} |
129 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
130 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
103 | log ${resp} | 131 | log ${resp} |
104 | log ${USERS.users['${provider1}'].bidresponses} | 132 | log ${USERS.users['${provider1}'].bidresponses} |
105 | 133 | ||
@@ -111,15 +139,23 @@ ${broker} Quinta | @@ -111,15 +139,23 @@ ${broker} Quinta | ||
111 | ... viewer | 139 | ... viewer |
112 | ... ${USERS.users['${viewer}'].broker} | 140 | ... ${USERS.users['${viewer}'].broker} |
113 | ... minimal | 141 | ... minimal |
142 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
114 | Викликати для учасника ${viewer} Отримати інформацію із тендера auctionPeriod.startDate | 143 | Викликати для учасника ${viewer} Отримати інформацію із тендера auctionPeriod.startDate |
115 | 144 | ||
116 | 145 | ||
117 | Очікування аукціону | 146 | Очікування аукціону |
147 | + [Tags] ${USERS.users['${viewer}'].broker}: Очікування аукціону | ||
148 | + ... viewer | ||
149 | + ... ${USERS.users['${viewer}'].broker} | ||
118 | Дочекатись дати початку аукціону ${viewer} | 150 | Дочекатись дати початку аукціону ${viewer} |
119 | sleep 1500 | 151 | sleep 1500 |
120 | 152 | ||
121 | -Завершення аукціону | ||
122 | - Дочекатись синхронізації з майданчиком ${tender_owner} | 153 | + |
154 | +Можливість отримати результати аукціону | ||
155 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Результати аукціону | ||
156 | + ... tender_owner | ||
157 | + ... ${USERS.users['${tender_owner}'].broker} | ||
158 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
123 | ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 159 | ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
124 | ${result}= chef ${tender_data.data.bids} ${tender_data.data.features} | 160 | ${result}= chef ${tender_data.data.bids} ${tender_data.data.features} |
125 | Log Many ${result[0]} ${tender_data.data.awards[0]} | 161 | Log Many ${result[0]} ${tender_data.data.awards[0]} |
@@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
6 | Library DebugLibrary | 6 | Library DebugLibrary |
7 | Resource keywords.robot | 7 | Resource keywords.robot |
8 | Resource resource.robot | 8 | Resource resource.robot |
9 | -Suite Setup TestSuiteSetup | ||
10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
10 | +Suite Teardown Test Suite Teardown | ||
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | ${mode} multi | 13 | ${mode} multi |
@@ -18,7 +18,10 @@ ${broker} Quinta | @@ -18,7 +18,10 @@ ${broker} Quinta | ||
18 | *** Test Cases *** | 18 | *** Test Cases *** |
19 | Можливість оголосити багатопредметний тендер | 19 | Можливість оголосити багатопредметний тендер |
20 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 20 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
21 | - ${tender_data}= Підготовка початкових даних | 21 | + ... tender_owner |
22 | + ... ${USERS.users['${tender_owner}'].broker} | ||
23 | + ... minimal | ||
24 | + ${tender_data}= Підготовка даних для створення тендера | ||
22 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | 25 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} |
23 | ${LAST_MODIFICATION_DATE}= Get Current TZdate | 26 | ${LAST_MODIFICATION_DATE}= Get Current TZdate |
24 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | 27 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} |
@@ -26,93 +29,152 @@ ${broker} Quinta | @@ -26,93 +29,152 @@ ${broker} Quinta | ||
26 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | 29 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} |
27 | log ${TENDER} | 30 | log ${TENDER} |
28 | 31 | ||
29 | -Отримати багатопредметний тендер по ідентифікатору | 32 | +Можливість знайти багатопредметний тендер по ідентифікатору |
30 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 33 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
31 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
32 | - ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
33 | - :FOR ${username} IN @{usernames} | 34 | + ... viewer tender_owner provider provider1 |
35 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
36 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
37 | + ... minimal | ||
38 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
39 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
34 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 40 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
35 | 41 | ||
36 | Відображення опису позицій закупівлі багатопредметного тендера | 42 | Відображення опису позицій закупівлі багатопредметного тендера |
37 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 43 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
44 | + ... viewer | ||
45 | + ... ${USERS.users['${viewer}'].broker} | ||
46 | + ... minimal | ||
38 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} description | 47 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} description |
39 | 48 | ||
40 | Відображення дати доставки позицій закупівлі багатопредметного тендера | 49 | Відображення дати доставки позицій закупівлі багатопредметного тендера |
41 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 50 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
51 | + ... viewer | ||
52 | + ... ${USERS.users['${viewer}'].broker} | ||
53 | + ... critical level 3 | ||
42 | Звірити дату предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryDate.endDate | 54 | Звірити дату предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryDate.endDate |
43 | 55 | ||
44 | Відображення координат широти доставки позицій закупівлі багатопредметного тендера | 56 | Відображення координат широти доставки позицій закупівлі багатопредметного тендера |
45 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 57 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
58 | + ... viewer | ||
59 | + ... ${USERS.users['${viewer}'].broker} | ||
46 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryLocation.latitude | 60 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryLocation.latitude |
47 | 61 | ||
48 | Відображення координат довготи доставки позицій закупівлі багатопредметного тендера | 62 | Відображення координат довготи доставки позицій закупівлі багатопредметного тендера |
49 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 63 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
64 | + ... viewer | ||
65 | + ... ${USERS.users['${viewer}'].broker} | ||
50 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryLocation.longitude | 66 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryLocation.longitude |
51 | 67 | ||
52 | Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера | 68 | Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера |
53 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 69 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
70 | + ... viewer | ||
71 | + ... ${USERS.users['${viewer}'].broker} | ||
72 | + ... critical level 3 | ||
54 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.countryName | 73 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.countryName |
55 | 74 | ||
56 | Відображення пошт. коду доставки позицій закупівлі багатопредметного тендера | 75 | Відображення пошт. коду доставки позицій закупівлі багатопредметного тендера |
57 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 76 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
77 | + ... viewer | ||
78 | + ... ${USERS.users['${viewer}'].broker} | ||
58 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.postalCode | 79 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.postalCode |
59 | 80 | ||
60 | Відображення регіону доставки позицій закупівлі багатопредметного тендера | 81 | Відображення регіону доставки позицій закупівлі багатопредметного тендера |
61 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 82 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
83 | + ... viewer | ||
84 | + ... ${USERS.users['${viewer}'].broker} | ||
85 | + ... critical level 3 | ||
62 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.region | 86 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.region |
63 | 87 | ||
64 | Відображення locality адреси доставки позицій закупівлі багатопредметного тендера | 88 | Відображення locality адреси доставки позицій закупівлі багатопредметного тендера |
65 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 89 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
90 | + ... viewer | ||
91 | + ... ${USERS.users['${viewer}'].broker} | ||
66 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.locality | 92 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.locality |
67 | 93 | ||
68 | Відображення вулиці доставки позицій закупівлі багатопредметного тендера | 94 | Відображення вулиці доставки позицій закупівлі багатопредметного тендера |
69 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 95 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
96 | + ... viewer | ||
97 | + ... ${USERS.users['${viewer}'].broker} | ||
70 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.streetAddress | 98 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.streetAddress |
71 | 99 | ||
72 | Відображення схеми класифікації позицій закупівлі багатопредметного тендера | 100 | Відображення схеми класифікації позицій закупівлі багатопредметного тендера |
73 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 101 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
102 | + ... viewer | ||
103 | + ... ${USERS.users['${viewer}'].broker} | ||
74 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.scheme | 104 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.scheme |
75 | 105 | ||
76 | Відображення ідентифікатора класифікації позицій закупівлі багатопредметного тендера | 106 | Відображення ідентифікатора класифікації позицій закупівлі багатопредметного тендера |
77 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 107 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
108 | + ... viewer | ||
109 | + ... ${USERS.users['${viewer}'].broker} | ||
110 | + ... critical level 3 | ||
78 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.id | 111 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.id |
79 | 112 | ||
80 | Відображення опису класифікації позицій закупівлі багатопредметного тендера | 113 | Відображення опису класифікації позицій закупівлі багатопредметного тендера |
81 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 114 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
115 | + ... viewer | ||
116 | + ... ${USERS.users['${viewer}'].broker} | ||
117 | + ... critical level 3 | ||
82 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.description | 118 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.description |
83 | 119 | ||
84 | Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера | 120 | Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера |
85 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 121 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
122 | + ... viewer | ||
123 | + ... ${USERS.users['${viewer}'].broker} | ||
86 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].scheme | 124 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].scheme |
87 | 125 | ||
88 | Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера | 126 | Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера |
89 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 127 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
128 | + ... viewer | ||
129 | + ... ${USERS.users['${viewer}'].broker} | ||
130 | + ... critical level 3 | ||
90 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].id | 131 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].id |
91 | 132 | ||
92 | Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера | 133 | Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера |
93 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 134 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
135 | + ... viewer | ||
136 | + ... ${USERS.users['${viewer}'].broker} | ||
137 | + ... critical level 3 | ||
94 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].description | 138 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].description |
95 | 139 | ||
96 | Відображення назви одиниці позицій закупівлі багатопредметного тендера | 140 | Відображення назви одиниці позицій закупівлі багатопредметного тендера |
97 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 141 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
142 | + ... viewer | ||
143 | + ... ${USERS.users['${viewer}'].broker} | ||
144 | + ... critical level 3 | ||
98 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.name | 145 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.name |
99 | 146 | ||
100 | Відображення коду одиниці позицій закупівлі багатопредметного тендера | 147 | Відображення коду одиниці позицій закупівлі багатопредметного тендера |
101 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 148 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
149 | + ... viewer | ||
150 | + ... ${USERS.users['${viewer}'].broker} | ||
102 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.code | 151 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.code |
103 | 152 | ||
104 | Відображення кількості позицій закупівлі багатопредметного тендера | 153 | Відображення кількості позицій закупівлі багатопредметного тендера |
105 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 154 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
155 | + ... viewer | ||
156 | + ... ${USERS.users['${viewer}'].broker} | ||
157 | + ... critical level 3 | ||
106 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} quantity | 158 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} quantity |
107 | 159 | ||
108 | Можливість редагувати багатопредметний тендер | 160 | Можливість редагувати багатопредметний тендер |
109 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 161 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
162 | + ... tender_owner | ||
163 | + ... ${USERS.users['${tender_owner}'].broker} | ||
164 | + ... critical level 2 | ||
165 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
110 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | 166 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description |
111 | 167 | ||
112 | Можливість додати позицію закупівлі в тендер | 168 | Можливість додати позицію закупівлі в тендер |
113 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 169 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
170 | + ... tender_owner | ||
171 | + ... ${USERS.users['${tender_owner}'].broker} | ||
172 | + ... critical level 2 | ||
114 | Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 3 | 173 | Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 3 |
115 | 174 | ||
116 | Можливість видалити позиції закупівлі тендера | 175 | Можливість видалити позиції закупівлі тендера |
117 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 176 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
177 | + ... tender_owner | ||
178 | + ... ${USERS.users['${tender_owner}'].broker} | ||
179 | + ... critical level 2 | ||
118 | Викликати для учасника ${tender_owner} Відняти предмети закупівлі ${TENDER['TENDER_UAID']} 2 | 180 | Викликати для учасника ${tender_owner} Відняти предмети закупівлі ${TENDER['TENDER_UAID']} 2 |
@@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
6 | Library DebugLibrary | 6 | Library DebugLibrary |
7 | Resource keywords.robot | 7 | Resource keywords.robot |
8 | Resource resource.robot | 8 | Resource resource.robot |
9 | -Suite Setup TestSuiteSetup | ||
10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
10 | +Suite Teardown Test Suite Teardown | ||
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | ${mode} multi | 13 | ${mode} multi |
@@ -21,7 +21,10 @@ ${complaint_id} 1 | @@ -21,7 +21,10 @@ ${complaint_id} 1 | ||
21 | *** Test Cases *** | 21 | *** Test Cases *** |
22 | Можливість оголосити мультилотовий тендер | 22 | Можливість оголосити мультилотовий тендер |
23 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер | 23 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер |
24 | - ${tender_data}= Підготовка початкових даних | 24 | + ... tender_owner |
25 | + ... ${USERS.users['${tender_owner}'].broker} | ||
26 | + ... minimal | ||
27 | + ${tender_data}= Підготовка даних для створення тендера | ||
25 | ${tender_data}= test_tender_data_multiple_lots ${tender_data} | 28 | ${tender_data}= test_tender_data_multiple_lots ${tender_data} |
26 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | 29 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} |
27 | ${LAST_MODIFICATION_DATE}= Get Current TZdate | 30 | ${LAST_MODIFICATION_DATE}= Get Current TZdate |
@@ -30,21 +33,24 @@ ${complaint_id} 1 | @@ -30,21 +33,24 @@ ${complaint_id} 1 | ||
30 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | 33 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} |
31 | Log ${TENDER} | 34 | Log ${TENDER} |
32 | 35 | ||
33 | -Пошук мультилотового тендера по ідентифікатору | 36 | +Можливість знайти мультилотовий тендер по ідентифікатору |
34 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 37 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
35 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
36 | - ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
37 | - :FOR ${username} IN @{usernames} | 38 | + ... viewer tender_owner provider provider1 |
39 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
40 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
41 | + ... minimal | ||
42 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
43 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
38 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 44 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
39 | 45 | ||
40 | -Отримання тендера | ||
41 | - Дочекатись синхронізації з майданчиком ${tender_owner} | ||
42 | - Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
43 | - | ||
44 | ####### | 46 | ####### |
45 | #Операції з лотом | 47 | #Операції з лотом |
46 | 48 | ||
47 | -Створення лоту | 49 | +Можливість створення лоту |
50 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
51 | + ... tender_owner | ||
52 | + ... ${USERS.users['${tender_owner}'].broker} | ||
53 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
48 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 54 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
49 | ${lot}= test lot data | 55 | ${lot}= test lot data |
50 | ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | 56 | ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} |
@@ -54,12 +60,18 @@ ${complaint_id} 1 | @@ -54,12 +60,18 @@ ${complaint_id} 1 | ||
54 | log ${lotcreate} | 60 | log ${lotcreate} |
55 | 61 | ||
56 | Можливість видалення лоту | 62 | Можливість видалення лоту |
63 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
64 | + ... tender_owner | ||
65 | + ... ${USERS.users['${tender_owner}'].broker} | ||
57 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 66 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
58 | ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} | 67 | ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} |
59 | ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} | 68 | ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} |
60 | Log ${lotdelete} | 69 | Log ${lotdelete} |
61 | 70 | ||
62 | -Повторне створення лоту | 71 | +Можливість повторого створення лоту |
72 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
73 | + ... tender_owner | ||
74 | + ... ${USERS.users['${tender_owner}'].broker} | ||
63 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 75 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
64 | ${lot}= test lot data | 76 | ${lot}= test lot data |
65 | ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | 77 | ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} |
@@ -69,6 +81,9 @@ ${complaint_id} 1 | @@ -69,6 +81,9 @@ ${complaint_id} 1 | ||
69 | log ${lotcreate} | 81 | log ${lotcreate} |
70 | 82 | ||
71 | Можливість змінити цінову пропозицію у новому лоті до 8000 | 83 | Можливість змінити цінову пропозицію у новому лоті до 8000 |
84 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
85 | + ... tender_owner | ||
86 | + ... ${USERS.users['${tender_owner}'].broker} | ||
72 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 87 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
73 | Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | 88 | Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 |
74 | ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | 89 | ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} |
@@ -76,6 +91,9 @@ ${complaint_id} 1 | @@ -76,6 +91,9 @@ ${complaint_id} 1 | ||
76 | log ${fixlotto8000resp} | 91 | log ${fixlotto8000resp} |
77 | 92 | ||
78 | Можливість змінити цінову пропозицію у новому лоті до 100 | 93 | Можливість змінити цінову пропозицію у новому лоті до 100 |
94 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
95 | + ... tender_owner | ||
96 | + ... ${USERS.users['${tender_owner}'].broker} | ||
79 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 97 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
80 | Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | 98 | Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 |
81 | ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | 99 | ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} |
@@ -88,9 +106,14 @@ ${complaint_id} 1 | @@ -88,9 +106,14 @@ ${complaint_id} 1 | ||
88 | 106 | ||
89 | Можливість додати позицію закупівлі в тендер | 107 | Можливість додати позицію закупівлі в тендер |
90 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 108 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
109 | + ... tender_owner | ||
110 | + ... ${USERS.users['${tender_owner}'].broker} | ||
91 | Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 | 111 | Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 |
92 | 112 | ||
93 | -Добавити предмет закупівлі до лоту | 113 | +Можливість добавити предмет закупівлі до лоту |
114 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
115 | + ... tender_owner | ||
116 | + ... ${USERS.users['${tender_owner}'].broker} | ||
94 | ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | 117 | ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} |
95 | Log ${items} | 118 | Log ${items} |
96 | ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | 119 | ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} |
@@ -99,11 +122,19 @@ ${complaint_id} 1 | @@ -99,11 +122,19 @@ ${complaint_id} 1 | ||
99 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items} | 122 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items} |
100 | 123 | ||
101 | Неможливість видалення лоту з прив’язаними предметами закупівлі | 124 | Неможливість видалення лоту з прив’язаними предметами закупівлі |
125 | + [Documentation] | ||
126 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
127 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
128 | + ... tender_owner | ||
129 | + ... ${USERS.users['${tender_owner}'].broker} | ||
102 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 130 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
103 | ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} | 131 | ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} |
104 | Викликати для учасника ${tender_owner} Видалити лот shouldfail ${tender_data} ${lot} | 132 | Викликати для учасника ${tender_owner} Видалити лот shouldfail ${tender_data} ${lot} |
105 | 133 | ||
106 | Можливість видалити позиції закупівлі тендера | 134 | Можливість видалити позиції закупівлі тендера |
135 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
136 | + ... tender_owner | ||
137 | + ... ${USERS.users['${tender_owner}'].broker} | ||
107 | ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | 138 | ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} |
108 | Log ${items} | 139 | Log ${items} |
109 | ${resp}= Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} | 140 | ${resp}= Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} |
@@ -111,6 +142,8 @@ ${complaint_id} 1 | @@ -111,6 +142,8 @@ ${complaint_id} 1 | ||
111 | 142 | ||
112 | Можливість додати тендерну документацію лоту | 143 | Можливість додати тендерну документацію лоту |
113 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | 144 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ |
145 | + ... tender_owner | ||
146 | + ... ${USERS.users['${tender_owner}'].broker} | ||
114 | [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | 147 | [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі |
115 | ${filepath}= create_fake_doc | 148 | ${filepath}= create_fake_doc |
116 | ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | 149 | ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} |
@@ -125,19 +158,28 @@ ${complaint_id} 1 | @@ -125,19 +158,28 @@ ${complaint_id} 1 | ||
125 | ####### | 158 | ####### |
126 | #Запитання до лоту | 159 | #Запитання до лоту |
127 | 160 | ||
128 | -Задати питання | 161 | +Можливість задати питання |
129 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 162 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
130 | - ${question}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} | ||
131 | - log ${question} | 163 | + ... provider |
164 | + ... ${USERS.users['${provider}'].broker} | ||
165 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
166 | + ${question}= Підготовка даних для запитання | ||
167 | + ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | ||
132 | ${now}= Get Current TZdate | 168 | ${now}= Get Current TZdate |
133 | - Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} | ||
134 | - | ||
135 | -Відповісти на запитання | 169 | + ${question.data.date}= Set variable ${now} |
170 | + ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} | ||
171 | + Set To Dictionary ${USERS.users['${provider}']} question_data ${question_data} | ||
172 | +Можливість відповісти на запитання | ||
136 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | 173 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання |
137 | - Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]} | 174 | + ... tender_owner |
175 | + ... ${USERS.users['${tender_owner}'].broker} | ||
176 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
177 | + ${answer}= Підготовка даних для відповіді на запитання | ||
178 | + ${answer_resp}= Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} | ||
138 | ${now}= Get Current TZdate | 179 | ${now}= Get Current TZdate |
139 | - Set To Dictionary ${ANSWERS[${question_id}-1].data} date ${now} | ||
140 | - | 180 | + ${answer.data.date}= Set variable ${now} |
181 | + ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} | ||
182 | + Set To Dictionary ${USERS.users['${provider}']} answer_data ${answer_data} | ||
141 | 183 | ||
142 | ###### | 184 | ###### |
143 | #Cкарга на лот | 185 | #Cкарга на лот |
@@ -198,119 +240,157 @@ ${complaint_id} 1 | @@ -198,119 +240,157 @@ ${complaint_id} 1 | ||
198 | 240 | ||
199 | Відображення початку періоду прийому пропозицій оголошеного тендера | 241 | Відображення початку періоду прийому пропозицій оголошеного тендера |
200 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 242 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
201 | - ... viewer | 243 | + ... viewer provider provider1 |
202 | ... ${USERS.users['${viewer}'].broker} | 244 | ... ${USERS.users['${viewer}'].broker} |
245 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
203 | ... minimal | 246 | ... minimal |
204 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
205 | - :FOR ${username} IN @{usernames} | 247 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
248 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
206 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | 249 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate |
207 | 250 | ||
208 | Відображення закінчення періоду прийому пропозицій оголошеного тендера | 251 | Відображення закінчення періоду прийому пропозицій оголошеного тендера |
209 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 252 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
210 | - ... viewer | 253 | + ... viewer provider provider1 |
211 | ... ${USERS.users['${viewer}'].broker} | 254 | ... ${USERS.users['${viewer}'].broker} |
255 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
212 | ... minimal | 256 | ... minimal |
213 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
214 | - :FOR ${username} IN @{usernames} | 257 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
258 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
215 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | 259 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate |
216 | 260 | ||
217 | Неможливість подати цінову пропозицію до початку періоду подачі пропозицій | 261 | Неможливість подати цінову пропозицію до початку періоду подачі пропозицій |
262 | + [Documentation] | ||
263 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
218 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 264 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
265 | + ... prvider | ||
266 | + ... ${USERS.users['${provider}'].broker} | ||
267 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
219 | ${bid}= test lots bid data | 268 | ${bid}= test lots bid data |
220 | Log ${bid} | 269 | Log ${bid} |
221 | ${bidresponses}= Create Dictionary | 270 | ${bidresponses}= Create Dictionary |
222 | - ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
223 | - Set To Dictionary ${bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | 271 | + Set To Dictionary ${bidresponses} bid ${bid} |
224 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 272 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} |
273 | + ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
274 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | ||
225 | log ${USERS.users['${provider}']} | 275 | log ${USERS.users['${provider}']} |
226 | 276 | ||
227 | Неможливість подати цінову пропозицію без прив’язки до лоту | 277 | Неможливість подати цінову пропозицію без прив’язки до лоту |
278 | + [Documentation] | ||
279 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
228 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 280 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
281 | + ... prvider | ||
282 | + ... ${USERS.users['${provider}'].broker} | ||
283 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
229 | Дочекатись дати початку прийому пропозицій ${provider} | 284 | Дочекатись дати початку прийому пропозицій ${provider} |
230 | ${bid}= test bid data | 285 | ${bid}= test bid data |
231 | Log ${bid} | 286 | Log ${bid} |
232 | ${bidresponses}= Create Dictionary | 287 | ${bidresponses}= Create Dictionary |
233 | - ${no_lot_bid_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
234 | - Set To Dictionary ${bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | 288 | + Set To Dictionary ${bidresponses} bid ${bid} |
235 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 289 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} |
290 | + ${no_lot_bid_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
291 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | ||
236 | log ${USERS.users['${provider}']} | 292 | log ${USERS.users['${provider}']} |
237 | 293 | ||
238 | -Подати цінову пропозицію першим учасником | 294 | +Можливість подати цінову пропозицію першим учасником |
239 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 295 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
296 | + ... prvider | ||
297 | + ... ${USERS.users['${provider}'].broker} | ||
240 | ${bid}= test lots bid data | 298 | ${bid}= test lots bid data |
241 | Log ${bid} | 299 | Log ${bid} |
242 | - ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
243 | - Set Global Variable ${biddingresponse0} | ||
244 | - log ${biddingresponse0} | 300 | + ${bidresponses}= Create Dictionary |
301 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
302 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
303 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
304 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
305 | + log ${USERS.users['${provider}']} | ||
245 | 306 | ||
246 | Можливість скасувати цінову пропозицію | 307 | Можливість скасувати цінову пропозицію |
247 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | 308 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
248 | - ${biddingresponse_0}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponse0} | 309 | + ... prvider |
310 | + ... ${USERS.users['${provider}'].broker} | ||
311 | + ${canceledbidresp}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
312 | + Log ${canceledbidresp} | ||
249 | 313 | ||
250 | -Подати повторно цінову пропозицію першим учасником | 314 | +Можливість подати повторно цінову пропозицію першим учасником |
251 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 315 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
316 | + ... prvider | ||
317 | + ... ${USERS.users['${provider}'].broker} | ||
252 | Дочекатись дати початку прийому пропозицій ${provider} | 318 | Дочекатись дати початку прийому пропозицій ${provider} |
253 | ${bid}= test lots bid data | 319 | ${bid}= test lots bid data |
254 | Log ${bid} | 320 | Log ${bid} |
321 | + ${bidresponses}= Create Dictionary | ||
322 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
323 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
255 | ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 324 | ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
256 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | 325 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} |
257 | - log ${resp} | ||
258 | log ${USERS.users['${provider}'].bidresponses} | 326 | log ${USERS.users['${provider}'].bidresponses} |
259 | 327 | ||
260 | Можливість змінити повторну цінову пропозицію до 2000 | 328 | Можливість змінити повторну цінову пропозицію до 2000 |
261 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 329 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
262 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} amount 2000 | ||
263 | - Log ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} | ||
264 | - ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
265 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto50000resp ${fixbidto50000resp} | ||
266 | - log ${fixbidto50000resp} | 330 | + ... prvider |
331 | + ... ${USERS.users['${provider}'].broker} | ||
332 | + ${fixbidto2000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | ||
333 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto2000resp ${fixbidto2000resp} | ||
334 | + log ${fixbidto2000resp} | ||
267 | 335 | ||
268 | -Можливість змінити повторну цінову пропозицію до 100 | 336 | +Можливість змінити повторну цінову пропозицію до 10 |
269 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 337 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
270 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} amount 100 | ||
271 | - Log ${USERS.users['${provider}'].bidresponses['fixbidto50000resp'].data.lotValues[0].value} | ||
272 | - ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 338 | + ... prvider |
339 | + ... ${USERS.users['${provider}'].broker} | ||
340 | + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 | ||
273 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | 341 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} |
274 | log ${fixbidto10resp} | 342 | log ${fixbidto10resp} |
275 | 343 | ||
276 | -Подати цінову пропозицію другим учасником | 344 | +Можливість подати цінову пропозицію другим учасником |
277 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | 345 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
346 | + ... prvider1 | ||
347 | + ... ${USERS.users['${provider1}'].broker} | ||
348 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
278 | Дочекатись дати початку прийому пропозицій ${provider1} | 349 | Дочекатись дати початку прийому пропозицій ${provider1} |
279 | ${bid}= test lots bid data | 350 | ${bid}= test lots bid data |
280 | Log ${bid} | 351 | Log ${bid} |
281 | ${bidresponses}= Create Dictionary | 352 | ${bidresponses}= Create Dictionary |
282 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
283 | - Set To Dictionary ${bidresponses} resp ${resp} | 353 | + Set To Dictionary ${bidresponses} bid ${bid} |
284 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | 354 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} |
355 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
356 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
285 | log ${resp} | 357 | log ${resp} |
286 | log ${USERS.users['${provider1}'].bidresponses} | 358 | log ${USERS.users['${provider1}'].bidresponses} |
287 | 359 | ||
288 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | 360 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій |
289 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | 361 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
362 | + ... viewer | ||
363 | + ... ${USERS.users['${viewer}'].broker} | ||
364 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
290 | ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids | 365 | ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids |
291 | Should Be Equal ${bids} ${None} | 366 | Should Be Equal ${bids} ${None} |
292 | 367 | ||
293 | -Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | ||
294 | - [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | 368 | +Неможливість змінити цінову пропозицію до 2000 після закінчення прийому пропозицій |
369 | + [Documentation] | ||
370 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
371 | + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 2000 після закінчення прийому пропозицій | ||
372 | + ... provider1 | ||
373 | + ... ${USERS.users['${provider1}'].broker} | ||
374 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
295 | Дочекатись дати закінчення прийому пропозицій ${provider1} | 375 | Дочекатись дати закінчення прийому пропозицій ${provider1} |
296 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} amount 50000 | ||
297 | - Log ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} | ||
298 | - ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
299 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto50000resp ${failfixbidto50000resp} | ||
300 | - log ${failfixbidto50000resp} | 376 | + ${failfixbidto2000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 |
377 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto2000resp ${failfixbidto2000resp} | ||
378 | + log ${failfixbidto2000resp} | ||
301 | 379 | ||
302 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 380 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
381 | + [Documentation] | ||
382 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
303 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 383 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
304 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} amount 1 | ||
305 | - Log ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} | ||
306 | - ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 384 | + ... provider1 |
385 | + ... ${USERS.users['${provider1}'].broker} | ||
386 | + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} lotValues.0.value.amount 1 | ||
307 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | 387 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} |
308 | log ${failfixbidto1resp} | 388 | log ${failfixbidto1resp} |
309 | 389 | ||
310 | Неможливість скасувати цінову пропозицію | 390 | Неможливість скасувати цінову пропозицію |
391 | + [Documentation] | ||
392 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
311 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | 393 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію |
394 | + ... provider1 | ||
395 | + ... ${USERS.users['${provider1}'].broker} | ||
312 | ${biddingresponse}= Викликати для учасника ${provider1} Скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 396 | ${biddingresponse}= Викликати для учасника ${provider1} Скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} |
313 | - | ||
314 | -Отримання тендера після закінчення прийому пропозицій | ||
315 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
316 | - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
op_robot_tests/tests_files/openEU.robot
0 → 100644
1 | +*** Settings *** | ||
2 | +Resource keywords.robot | ||
3 | +Resource resource.robot | ||
4 | +Suite Setup Test Suite Setup | ||
5 | +Suite Teardown Test Suite Teardown | ||
6 | + | ||
7 | +*** Variables *** | ||
8 | +${mode} openeu | ||
9 | + | ||
10 | +${role} viewer | ||
11 | +${broker} Quinta | ||
12 | + | ||
13 | + | ||
14 | +*** Test Cases *** | ||
15 | +Можливість оголосити понадпороговий однопредметний тендер | ||
16 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
17 | + ... tender_owner | ||
18 | + ... ${USERS.users['${tender_owner}'].broker} | ||
19 | + ... minimal | ||
20 | + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера) | ||
21 | + ${tender_data}= Підготовка даних для створення тендера | ||
22 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | ||
23 | + ${LAST_MODIFICATION_DATE}= Get Current TZdate | ||
24 | + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | ||
25 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
26 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
27 | + Log ${TENDER} | ||
28 | + | ||
29 | +Пошук позапорогового однопредметного тендера по ідентифікатору | ||
30 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
31 | + ... viewer tender_owner provider provider1 | ||
32 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
33 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
34 | + ... minimal | ||
35 | + ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
36 | + :FOR ${username} IN @{usernames} | ||
37 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
38 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
39 | + | ||
40 | +Відображення типу закупівлі оголошеного тендер | ||
41 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
42 | + ... viewer | ||
43 | + ... ${USERS.users['${viewer}'].broker} | ||
44 | + Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procurementMethodType | ||
45 | + | ||
46 | +Відображення початку періоду прийому пропозицій оголошеного тендера | ||
47 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
48 | + ... viewer | ||
49 | + ... ${USERS.users['${viewer}'].broker} | ||
50 | + ... minimal | ||
51 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
52 | + :FOR ${username} IN @{usernames} | ||
53 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | ||
54 | + | ||
55 | +Відображення закінчення періоду прийому пропозицій оголошеного тендера | ||
56 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
57 | + ... viewer | ||
58 | + ... ${USERS.users['${viewer}'].broker} | ||
59 | + ... minimal | ||
60 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
61 | + :FOR ${username} IN @{usernames} | ||
62 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | ||
63 | + | ||
64 | +Відображення закінчення періоду подання скарг на оголошений тендер | ||
65 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
66 | + ... viewer | ||
67 | + ... ${USERS.users['${viewer}'].broker} | ||
68 | + ... minimal | ||
69 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
70 | + :FOR ${username} IN @{usernames} | ||
71 | + \ Викликати для учасника ${username} Отримати інформацію із тендера complaintPeriod.endDate | ||
72 | + | ||
73 | +Можливість подати вимогу на умови більше ніж за 10 днів до завершення періоду подання пропозицій | ||
74 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | ||
75 | + ... provider | ||
76 | + ... ${USERS.users['${provider}'].broker} | ||
77 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
78 | + ${claim}= Підготовка даних для подання скарги | ||
79 | + Set To Dictionary ${claim.data} status claim | ||
80 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${claim} | ||
81 | + ${complaints}= Create Dictionary | ||
82 | + Set To Dictionary ${complaints} claim0 ${claim} | ||
83 | + Set To Dictionary ${USERS.users['${provider}']} complaints ${complaints} | ||
84 | + | ||
85 | +Можливість скасувати вимогу на умови | ||
86 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | ||
87 | + ... provider | ||
88 | + ... ${USERS.users['${provider}'].broker} | ||
89 | + ${claim}= Get From Dictionary ${USERS.users['${provider}'].complaints} claim0 | ||
90 | + Set To Dictionary ${claim.data} status cancelled | ||
91 | + Set To Dictionary ${claim.data} cancellationReason test_draft_cancellation | ||
92 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${claim} | ||
93 | + | ||
94 | + | ||
95 | +Подати цінову пропозицію першим учасником після оголошення тендеру | ||
96 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
97 | + ... provider | ||
98 | + ... ${USERS.users['${provider}'].broker} | ||
99 | + ${bid}= test bid data | ||
100 | + Log ${bid} | ||
101 | + ${bidresponses}= Create Dictionary | ||
102 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
103 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
104 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
105 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
106 | + log ${resp} | ||
107 | + | ||
108 | +Можливість завантажити публічний документ до пропозиції першим учасником | ||
109 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
110 | + ... provider | ||
111 | + ... ${USERS.users['${provider}'].broker} | ||
112 | + log ${USERS.users['${provider}'].broker} | ||
113 | + ${filepath}= create_fake_doc | ||
114 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | ||
115 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
116 | + | ||
117 | +Можливість змінити документацію цінової пропозиції з публічної на приватну | ||
118 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
119 | + ... provider | ||
120 | + ... ${USERS.users['${provider}'].broker} | ||
121 | + log ${USERS.users['${provider}'].broker} | ||
122 | + ${privat_doc}= create_data_dict data.confidentialityRationale "Only our company sells badgers with pink hair." | ||
123 | + Set To Dictionary ${privat_doc.data} confidentiality buyerOnly | ||
124 | + ${bidid}= Get Variable Value ${USERS.users['${provider}'].bidresponses['resp'].data.id} | ||
125 | + ${docid}= Get Variable Value ${USERS.users['${provider}'].bidresponses['bid_doc_upload']['upload_response'].data.id} | ||
126 | + ${bid_doc_modified}= Викликати для учасника ${provider} Змінити документацію в ставці ${privat_doc} ${bidid} ${docid} | ||
127 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_modified ${bid_doc_modified} | ||
128 | + | ||
129 | +Можливість завантажити фінансовий документ до пропозиції першим учасником | ||
130 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
131 | + ... provider | ||
132 | + ... ${USERS.users['${provider}'].broker} | ||
133 | + log ${USERS.users['${provider}'].broker} | ||
134 | + ${filepath}= create_fake_doc | ||
135 | + ${doc_type}= Set variable financial_documents | ||
136 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
137 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
138 | + | ||
139 | +Можливість завантажити кваліфікаційний документ до пропозиції першим учасником | ||
140 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
141 | + ... provider | ||
142 | + ... ${USERS.users['${provider}'].broker} | ||
143 | + log ${USERS.users['${provider}'].broker} | ||
144 | + ${filepath}= create_fake_doc | ||
145 | + ${doc_type}= Set variable eligibility_documents | ||
146 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
147 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
148 | + | ||
149 | +Можливість завантажити документ для критеріїв прийнятності до пропозиції першим учасником | ||
150 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
151 | + ... provider | ||
152 | + ... ${USERS.users['${provider}'].broker} | ||
153 | + log ${USERS.users['${provider}'].broker} | ||
154 | + ${filepath}= create_fake_doc | ||
155 | + ${doc_type}= Set variable qualification_documents | ||
156 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
157 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
158 | + | ||
159 | +Подати цінову пропозицію другим учасником | ||
160 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
161 | + ... provider1 | ||
162 | + ... ${USERS.users['${provider1}'].broker} | ||
163 | + ${bid}= test bid data | ||
164 | + Log ${bid} | ||
165 | + ${bidresponses}= Create Dictionary | ||
166 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
167 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
168 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
169 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
170 | + log ${resp} | ||
171 | + | ||
172 | +Можливість редагувати однопредметний тендер більше ніж за 7 днів до завершення періоду подання пропозицій | ||
173 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
174 | + ... tender_owner | ||
175 | + ... ${USERS.users['${tender_owner}'].broker} | ||
176 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
177 | + | ||
178 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю | ||
179 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
180 | + ... provider provider1 | ||
181 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
182 | + ${usernames}= Create List ${provider} ${provider1} | ||
183 | + :FOR ${username} IN @{usernames} | ||
184 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
185 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
186 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
187 | + \ Should Be Equal ${bid.data.status} invalid | ||
188 | + \ Log ${bid} | ||
189 | + | ||
190 | + | ||
191 | +Оновити статус цінової пропозиції першого учасника | ||
192 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
193 | + ... provider | ||
194 | + ... ${USERS.users['${provider}'].broker} | ||
195 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status pending | ||
196 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | ||
197 | + log ${activestatusresp} | ||
198 | + | ||
199 | +Cкасувати цінову пропозицію другого учасника | ||
200 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | ||
201 | + ... provider1 | ||
202 | + ... ${USERS.users['${provider1}'].broker} | ||
203 | + ${bid}= Get Variable Value ${USERS.users['${provider1}'].bidresponses['resp']} | ||
204 | + ${bidresponses}= Викликати для учасника ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
205 | + | ||
206 | +Повторно подати цінову пропозицію другим учасником після першої зміни | ||
207 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
208 | + ... provider1 | ||
209 | + ... ${USERS.users['${provider1}'].broker} | ||
210 | + ${bid}= test bid data | ||
211 | + Log ${bid} | ||
212 | + ${bidresponses}= Create Dictionary | ||
213 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
214 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
215 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
216 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
217 | + log ${resp} | ||
218 | + | ||
219 | +Неможливість редагувати однопредметний тендер менше ніж за 7 днів до завершення періоду подання пропозицій | ||
220 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
221 | + ... tender_owner | ||
222 | + ... ${USERS.users['${tender_owner}'].broker} | ||
223 | + ${no_edit_time}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} -6 | ||
224 | + Дочекатись дати ${no_edit_time} | ||
225 | + Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} description description | ||
226 | + | ||
227 | +Неможливість подати вимогу на умови менше ніж за 10 днів до завершення періоду подання пропозицій | ||
228 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | ||
229 | + ... provider | ||
230 | + ... ${USERS.users['${provider}'].broker} | ||
231 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
232 | + ${claim}= Підготовка даних для подання скарги | ||
233 | + Set To Dictionary ${claim.data} status claim | ||
234 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${claim} | ||
235 | + | ||
236 | + | ||
237 | +Продовжити період редагування подання пропозиції на 7 днів | ||
238 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
239 | + ... tender_owner | ||
240 | + ... ${USERS.users['${tender_owner}'].broker} | ||
241 | + ${endDate}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} 7 | ||
242 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} tenderPeriod.endDate ${endDate} | ||
243 | + | ||
244 | + | ||
245 | +Можливість подати скаргу на умови більше ніж за 4 дні до завершення періоду подання пропозицій | ||
246 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
247 | + ... provider | ||
248 | + ... ${USERS.users['${provider}'].broker} | ||
249 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
250 | + Дочекатись синхронізації з майданчиком ${provider} | ||
251 | + ${complaint}= Підготовка даних для подання скарги | ||
252 | + Set To Dictionary ${complaint.data} status pending | ||
253 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${complaint} | ||
254 | + Set To Dictionary ${USERS.users['${provider}'].complaints} complaint ${complaint} | ||
255 | + | ||
256 | + | ||
257 | +Можливість скасувати скаргу на умови | ||
258 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | ||
259 | + ... provider | ||
260 | + ... ${USERS.users['${provider}'].broker} | ||
261 | + ${complaint}= Get From Dictionary ${USERS.users['${provider}'].complaints} complaint | ||
262 | + Set To Dictionary ${complaint.data} status cancelled | ||
263 | + Set To Dictionary ${complaint.data} cancellationReason test_draft_cancellation | ||
264 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${complaint} | ||
265 | + | ||
266 | + | ||
267 | + | ||
268 | +Можливість редагувати однопредметний тендер після продовження періоду подання пропозицій | ||
269 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
270 | + ... tender_owner | ||
271 | + ... ${USERS.users['${tender_owner}'].broker} | ||
272 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
273 | + | ||
274 | + | ||
275 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю після другої зміни | ||
276 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
277 | + ... provider provider1 | ||
278 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
279 | + ${usernames}= Create List ${provider} ${provider1} | ||
280 | + :FOR ${username} IN @{usernames} | ||
281 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
282 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
283 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
284 | + \ Should Be Equal ${bid.data.status} invalid | ||
285 | + \ Log ${bid} | ||
286 | + | ||
287 | + | ||
288 | +Можливість оновити статус цінової пропозиції першого учасника після другої зміни | ||
289 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
290 | + ... provider | ||
291 | + ... ${USERS.users['${provider}'].broker} | ||
292 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status pending | ||
293 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | ||
294 | + log ${activestatusresp} | ||
295 | + | ||
296 | + | ||
297 | +Повторно подати цінову пропозицію другим учасником після другої зміни | ||
298 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
299 | + ... provider1 | ||
300 | + ... ${USERS.users['${provider1}'].broker} | ||
301 | + ${bid}= test bid data | ||
302 | + Log ${bid} | ||
303 | + ${bidresponses}= Create Dictionary | ||
304 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
305 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
306 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
307 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
308 | + log ${resp} | ||
309 | + | ||
310 | + | ||
311 | +Неможливість подати скаргу на умови менше ніж за 4 дні до завершення періоду подання пропозицій | ||
312 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
313 | + ... provider | ||
314 | + ... ${USERS.users['${provider}'].broker} | ||
315 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
316 | + Дочекатись дати закінчення періоду подання скарг ${provider} | ||
317 | + Дочекатись синхронізації з майданчиком ${provider} | ||
318 | + ${complaint}= Підготовка даних для подання скарги | ||
319 | + Set To Dictionary ${complaint.data} status pending | ||
320 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${complaint} | ||
321 | + | ||
322 | +#### | ||
323 | +# Qualification | ||
324 | +Відображення статусу першої пропозиції кваліфікації | ||
325 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера | ||
326 | + ... tender_owner | ||
327 | + ... ${USERS.users['${tender_owner}'].broker} | ||
328 | + Дочекатись дати закінчення прийому пропозицій ${tender_owner} | ||
329 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
330 | + Звірити поле тендера із значенням ${tender_owner} pending qualifications[0].status | ||
331 | + | ||
332 | +Відображення статусу другої пропозиції кваліфікації | ||
333 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера | ||
334 | + ... tender_owner | ||
335 | + ... ${USERS.users['${tender_owner}'].broker} | ||
336 | + Дочекатись дати закінчення прийому пропозицій ${tender_owner} | ||
337 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
338 | + Звірити поле тендера із значенням ${tender_owner} pending qualifications[1].status | ||
339 | + | ||
340 | +Можливість завантажити документ у кваліфікацію пропозиції першого учасника | ||
341 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
342 | + ... tender_owner | ||
343 | + ... ${USERS.users['${tender_owner}'].broker} | ||
344 | + log ${USERS.users['${tender_owner}'].broker} | ||
345 | + ${filepath}= create_fake_doc | ||
346 | + Викликати для учасника ${tender_owner} Завантажити документ у кваліфікацію ${filepath} ${TENDER['TENDER_UAID']} 0 | ||
347 | + | ||
348 | +Можливість підтвердити першу пропозицію кваліфікації | ||
349 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
350 | + ... tender_owner | ||
351 | + ... ${USERS.users['${tender_owner}'].broker} | ||
352 | + Викликати для учасника ${tender_owner} Підтвердити кваліфікацію ${TENDER['TENDER_UAID']} 0 | ||
353 | + | ||
354 | +Можливість завантажити документ у кваліфікацію пропозиції другого учасника | ||
355 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
356 | + ... tender_owner | ||
357 | + ... ${USERS.users['${tender_owner}'].broker} | ||
358 | + log ${USERS.users['${tender_owner}'].broker} | ||
359 | + ${filepath}= create_fake_doc | ||
360 | + Викликати для учасника ${tender_owner} Завантажити документ у кваліфікацію ${filepath} ${TENDER['TENDER_UAID']} 1 | ||
361 | + | ||
362 | +Можливість відхилити другу пропозицію кваліфікації | ||
363 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
364 | + ... tender_owner | ||
365 | + ... ${USERS.users['${tender_owner}'].broker} | ||
366 | + Викликати для учасника ${tender_owner} Відхилити кваліфікацію ${TENDER['TENDER_UAID']} 1 | ||
367 | + | ||
368 | +Можливість скасувати рішення кваліфікації для другої пропопозиції | ||
369 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
370 | + ... tender_owner | ||
371 | + ... ${USERS.users['${tender_owner}'].broker} | ||
372 | + Викликати для учасника ${tender_owner} Скасувати кваліфікацію ${TENDER['TENDER_UAID']} 1 | ||
373 | + | ||
374 | +Можливість підтвердити другу пропозицію кваліфікації | ||
375 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
376 | + ... tender_owner | ||
377 | + ... ${USERS.users['${tender_owner}'].broker} | ||
378 | + Викликати для учасника ${tender_owner} Підтвердити кваліфікацію ${TENDER['TENDER_UAID']} 2 |
op_robot_tests/tests_files/openUA.robot
0 → 100644
1 | +*** Settings *** | ||
2 | +Resource keywords.robot | ||
3 | +Resource resource.robot | ||
4 | +Suite Setup Test Suite Setup | ||
5 | +Suite Teardown Test Suite Teardown | ||
6 | + | ||
7 | +*** Variables *** | ||
8 | +${mode} openua | ||
9 | + | ||
10 | +${role} viewer | ||
11 | +${broker} Quinta | ||
12 | + | ||
13 | + | ||
14 | +*** Test Cases *** | ||
15 | +Можливість оголосити понадпороговий однопредметний тендер | ||
16 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
17 | + ... tender_owner | ||
18 | + ... ${USERS.users['${tender_owner}'].broker} | ||
19 | + ... minimal | ||
20 | + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера) | ||
21 | + ${tender_data}= Підготовка даних для створення тендера | ||
22 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | ||
23 | + ${LAST_MODIFICATION_DATE}= Get Current TZdate | ||
24 | + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | ||
25 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
26 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
27 | + Log ${TENDER} | ||
28 | + | ||
29 | +Пошук позапорогового однопредметного тендера по ідентифікатору | ||
30 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
31 | + ... viewer tender_owner provider provider1 | ||
32 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
33 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
34 | + ... minimal | ||
35 | + ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
36 | + :FOR ${username} IN @{usernames} | ||
37 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
38 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
39 | + | ||
40 | +Відображення типу закупівлі оголошеного тендер | ||
41 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
42 | + ... viewer | ||
43 | + ... ${USERS.users['${viewer}'].broker} | ||
44 | + Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procurementMethodType | ||
45 | + | ||
46 | +Відображення початку періоду прийому пропозицій оголошеного тендера | ||
47 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
48 | + ... viewer | ||
49 | + ... ${USERS.users['${viewer}'].broker} | ||
50 | + ... minimal | ||
51 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
52 | + :FOR ${username} IN @{usernames} | ||
53 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | ||
54 | + | ||
55 | +Відображення закінчення періоду прийому пропозицій оголошеного тендера | ||
56 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
57 | + ... viewer | ||
58 | + ... ${USERS.users['${viewer}'].broker} | ||
59 | + ... minimal | ||
60 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
61 | + :FOR ${username} IN @{usernames} | ||
62 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | ||
63 | + | ||
64 | +Можливість подати вимогу на умови більше ніж за 10 днів до завершення періоду подання пропозицій | ||
65 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | ||
66 | + ... provider | ||
67 | + ... ${USERS.users['${provider}'].broker} | ||
68 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
69 | + ${claim}= Підготовка даних для подання скарги | ||
70 | + Set To Dictionary ${claim.data} status claim | ||
71 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${claim} | ||
72 | + ${complaints}= Create Dictionary | ||
73 | + Set To Dictionary ${complaints} claim0 ${claim} | ||
74 | + Set To Dictionary ${USERS.users['${provider}']} complaints ${complaints} | ||
75 | + | ||
76 | +Можливість скасувати вимогу на умови | ||
77 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | ||
78 | + ... provider | ||
79 | + ... ${USERS.users['${provider}'].broker} | ||
80 | + ${claim}= Get From Dictionary ${USERS.users['${provider}'].complaints} claim0 | ||
81 | + Set To Dictionary ${claim.data} status cancelled | ||
82 | + Set To Dictionary ${claim.data} cancellationReason test_draft_cancellation | ||
83 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${claim} | ||
84 | + | ||
85 | + | ||
86 | +Подати цінову пропозицію першим учасником після оголошення тендеру | ||
87 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
88 | + ... provider | ||
89 | + ... ${USERS.users['${provider}'].broker} | ||
90 | + ${bid}= test bid data | ||
91 | + Log ${bid} | ||
92 | + ${bidresponses}= Create Dictionary | ||
93 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
94 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
95 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
96 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
97 | + log ${resp} | ||
98 | + | ||
99 | +Подати цінову пропозицію другим учасником | ||
100 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
101 | + ... provider1 | ||
102 | + ... ${USERS.users['${provider1}'].broker} | ||
103 | + ${bid}= test bid data | ||
104 | + Log ${bid} | ||
105 | + ${bidresponses}= Create Dictionary | ||
106 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
107 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
108 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
109 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
110 | + log ${resp} | ||
111 | + | ||
112 | +Можливість редагувати однопредметний тендер більше ніж за 7 днів до завершення періоду подання пропозицій | ||
113 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
114 | + ... tender_owner | ||
115 | + ... ${USERS.users['${tender_owner}'].broker} | ||
116 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
117 | + | ||
118 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю | ||
119 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
120 | + ... provider provider1 | ||
121 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
122 | + ${usernames}= Create List ${provider} ${provider1} | ||
123 | + :FOR ${username} IN @{usernames} | ||
124 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
125 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
126 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
127 | + \ Should Be Equal ${bid.data.status} invalid | ||
128 | + \ Log ${bid} | ||
129 | + | ||
130 | + | ||
131 | +Оновити статус цінової пропозиції першого учасника | ||
132 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
133 | + ... provider | ||
134 | + ... ${USERS.users['${provider}'].broker} | ||
135 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status active | ||
136 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | ||
137 | + log ${activestatusresp} | ||
138 | + | ||
139 | +Cкасувати цінову пропозицію другого учасника | ||
140 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | ||
141 | + ... provider1 | ||
142 | + ... ${USERS.users['${provider1}'].broker} | ||
143 | + ${bid}= Get Variable Value ${USERS.users['${provider1}'].bidresponses['resp']} | ||
144 | + ${bidresponses}= Викликати для учасника ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
145 | + | ||
146 | +Повторно подати цінову пропозицію другим учасником після першої зміни | ||
147 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
148 | + ... provider1 | ||
149 | + ... ${USERS.users['${provider1}'].broker} | ||
150 | + ${bid}= test bid data | ||
151 | + Log ${bid} | ||
152 | + ${bidresponses}= Create Dictionary | ||
153 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
154 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
155 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
156 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
157 | + log ${resp} | ||
158 | + | ||
159 | +Неможливість редагувати однопредметний тендер менше ніж за 7 днів до завершення періоду подання пропозицій | ||
160 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
161 | + ... tender_owner | ||
162 | + ... ${USERS.users['${tender_owner}'].broker} | ||
163 | + ${no_edit_time}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} -6 | ||
164 | + Дочекатись дати ${no_edit_time} | ||
165 | + Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} description description | ||
166 | + | ||
167 | +Неможливість подати вимогу на умови менше ніж за 10 днів до завершення періоду подання пропозицій | ||
168 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | ||
169 | + ... provider | ||
170 | + ... ${USERS.users['${provider}'].broker} | ||
171 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
172 | + ${claim}= Підготовка даних для подання скарги | ||
173 | + Set To Dictionary ${claim.data} status claim | ||
174 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${claim} | ||
175 | + | ||
176 | + | ||
177 | +Продовжити період редагування подання пропозиції на 7 днів | ||
178 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
179 | + ... tender_owner | ||
180 | + ... ${USERS.users['${tender_owner}'].broker} | ||
181 | + ${endDate}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} 7 | ||
182 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} tenderPeriod.endDate ${endDate} | ||
183 | + | ||
184 | + | ||
185 | +Можливість подати скаргу на умови більше ніж за 4 дні до завершення періоду подання пропозицій | ||
186 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
187 | + ... provider | ||
188 | + ... ${USERS.users['${provider}'].broker} | ||
189 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
190 | + Дочекатись синхронізації з майданчиком ${provider} | ||
191 | + ${complaint}= Підготовка даних для подання скарги | ||
192 | + Set To Dictionary ${complaint.data} status pending | ||
193 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${complaint} | ||
194 | + Set To Dictionary ${USERS.users['${provider}'].complaints} complaint ${complaint} | ||
195 | + | ||
196 | + | ||
197 | +Можливість скасувати скаргу на умови | ||
198 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | ||
199 | + ... provider | ||
200 | + ... ${USERS.users['${provider}'].broker} | ||
201 | + ${complaint}= Get From Dictionary ${USERS.users['${provider}'].complaints} complaint | ||
202 | + Set To Dictionary ${complaint.data} status cancelled | ||
203 | + Set To Dictionary ${complaint.data} cancellationReason test_draft_cancellation | ||
204 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${complaint} | ||
205 | + | ||
206 | + | ||
207 | + | ||
208 | +Можливість редагувати однопредметний тендер після продовження періоду подання пропозицій | ||
209 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
210 | + ... tender_owner | ||
211 | + ... ${USERS.users['${tender_owner}'].broker} | ||
212 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
213 | + | ||
214 | + | ||
215 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю після другої зміни | ||
216 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
217 | + ... provider provider1 | ||
218 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
219 | + ${usernames}= Create List ${provider} ${provider1} | ||
220 | + :FOR ${username} IN @{usernames} | ||
221 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
222 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
223 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
224 | + \ Should Be Equal ${bid.data.status} invalid | ||
225 | + \ Log ${bid} | ||
226 | + | ||
227 | + | ||
228 | +Можливість оновити статус цінової пропозиції першого учасника після другої зміни | ||
229 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
230 | + ... provider | ||
231 | + ... ${USERS.users['${provider}'].broker} | ||
232 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status active | ||
233 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | ||
234 | + log ${activestatusresp} | ||
235 | + | ||
236 | + | ||
237 | +Повторно подати цінову пропозицію другим учасником після другої зміни | ||
238 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
239 | + ... provider1 | ||
240 | + ... ${USERS.users['${provider1}'].broker} | ||
241 | + ${bid}= test bid data | ||
242 | + Log ${bid} | ||
243 | + ${bidresponses}= Create Dictionary | ||
244 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
245 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
246 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
247 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
248 | + log ${resp} | ||
249 | + | ||
250 | + | ||
251 | +Неможливість подати скаргу на умови менше ніж за 4 дні до завершення періоду подання пропозицій | ||
252 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
253 | + ... provider | ||
254 | + ... ${USERS.users['${provider}'].broker} | ||
255 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
256 | + Log ${USERS.users['${provider}'].tender_data.data.complaintPeriod.endDate} | ||
257 | + Дочекатись Дати ${USERS.users['${provider}'].tender_data.data.complaintPeriod.endDate} | ||
258 | + Дочекатись синхронізації з майданчиком ${provider} | ||
259 | + ${complaint}= Підготовка даних для подання скарги | ||
260 | + Set To Dictionary ${complaint.data} status pending | ||
261 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${complaint} |
1 | # -*- coding: utf-8 - | 1 | # -*- coding: utf-8 - |
2 | from datetime import timedelta | 2 | from datetime import timedelta |
3 | from dateutil.parser import parse | 3 | from dateutil.parser import parse |
4 | -from dpath.util import set as xpathset | 4 | +from dpath.util import new as xpathnew |
5 | from iso8601 import parse_date | 5 | from iso8601 import parse_date |
6 | from json import load | 6 | from json import load |
7 | from jsonpath_rw import parse as parse_path | 7 | from jsonpath_rw import parse as parse_path |
@@ -16,6 +16,7 @@ from robot.output.loggerhelper import Message | @@ -16,6 +16,7 @@ from robot.output.loggerhelper import Message | ||
16 | from .initial_data import ( | 16 | from .initial_data import ( |
17 | auction_bid, | 17 | auction_bid, |
18 | create_fake_doc, | 18 | create_fake_doc, |
19 | + create_fake_sentence, | ||
19 | test_additional_items_data, | 20 | test_additional_items_data, |
20 | test_award_data, | 21 | test_award_data, |
21 | test_bid_data, | 22 | test_bid_data, |
@@ -24,12 +25,12 @@ from .initial_data import ( | @@ -24,12 +25,12 @@ from .initial_data import ( | ||
24 | test_cancel_tender_data, | 25 | test_cancel_tender_data, |
25 | test_change_cancellation_document_field_data, | 26 | test_change_cancellation_document_field_data, |
26 | test_claim_answer_data, | 27 | test_claim_answer_data, |
27 | - test_claim_data, | ||
28 | - test_confirm_data, | ||
29 | test_claim_answer_satisfying_data, | 28 | test_claim_answer_satisfying_data, |
29 | + test_claim_data, | ||
30 | test_complaint_answer_data, | 30 | test_complaint_answer_data, |
31 | test_complaint_data, | 31 | test_complaint_data, |
32 | test_complaint_reply_data, | 32 | test_complaint_reply_data, |
33 | + test_confirm_data, | ||
33 | test_escalate_claim_data, | 34 | test_escalate_claim_data, |
34 | test_invalid_features_data, | 35 | test_invalid_features_data, |
35 | test_item_data, | 36 | test_item_data, |
@@ -46,17 +47,24 @@ from .initial_data import ( | @@ -46,17 +47,24 @@ from .initial_data import ( | ||
46 | test_tender_data, | 47 | test_tender_data, |
47 | test_tender_data_limited, | 48 | test_tender_data_limited, |
48 | test_tender_data_multiple_items, | 49 | test_tender_data_multiple_items, |
49 | - test_tender_data_multiple_lots | 50 | + test_tender_data_multiple_lots, |
51 | + test_tender_data_openeu, | ||
52 | + test_tender_data_openua | ||
50 | ) | 53 | ) |
51 | from .local_time import get_now, TZ | 54 | from .local_time import get_now, TZ |
52 | import os | 55 | import os |
53 | from barbecue import chef | 56 | from barbecue import chef |
57 | +import re | ||
54 | 58 | ||
55 | 59 | ||
56 | def get_current_tzdate(): | 60 | def get_current_tzdate(): |
57 | return get_now().strftime('%Y-%m-%d %H:%M:%S.%f') | 61 | return get_now().strftime('%Y-%m-%d %H:%M:%S.%f') |
58 | 62 | ||
59 | 63 | ||
64 | +def add_minutes_to_date(date, minutes): | ||
65 | + return (parse_date(date) + timedelta(minutes=int(minutes))).isoformat() | ||
66 | + | ||
67 | + | ||
60 | def get_file_contents(path): | 68 | def get_file_contents(path): |
61 | with open(path, 'r') as f: | 69 | with open(path, 'r') as f: |
62 | return unicode(f.read()) or u'' | 70 | return unicode(f.read()) or u'' |
@@ -71,7 +79,7 @@ def change_state(arguments): | @@ -71,7 +79,7 @@ def change_state(arguments): | ||
71 | return "pass" | 79 | return "pass" |
72 | 80 | ||
73 | 81 | ||
74 | -def compare_date(date1, date2): | 82 | +def compare_date(date1, date2, accuracy): |
75 | date1 = parse(date1) | 83 | date1 = parse(date1) |
76 | date2 = parse(date2) | 84 | date2 = parse(date2) |
77 | if date1.tzinfo is None: | 85 | if date1.tzinfo is None: |
@@ -80,7 +88,7 @@ def compare_date(date1, date2): | @@ -80,7 +88,7 @@ def compare_date(date1, date2): | ||
80 | date2 = TZ.localize(date2) | 88 | date2 = TZ.localize(date2) |
81 | 89 | ||
82 | delta = (date1 - date2).total_seconds() | 90 | delta = (date1 - date2).total_seconds() |
83 | - if abs(delta) > 60: | 91 | + if abs(delta) > accuracy: |
84 | return False | 92 | return False |
85 | return True | 93 | return True |
86 | 94 | ||
@@ -119,7 +127,7 @@ def log_object_data(data, file_name=None, format="yaml"): | @@ -119,7 +127,7 @@ def log_object_data(data, file_name=None, format="yaml"): | ||
119 | 127 | ||
120 | def load_initial_data_from(file_name): | 128 | def load_initial_data_from(file_name): |
121 | if not os.path.exists(file_name): | 129 | if not os.path.exists(file_name): |
122 | - file_name = os.path.join(os.path.dirname(__file__), 'data/{}'.format(file_name)) | 130 | + file_name = os.path.join(os.path.dirname(__file__), 'data', file_name) |
123 | with open(file_name) as file_obj: | 131 | with open(file_name) as file_obj: |
124 | if file_name.endswith(".json"): | 132 | if file_name.endswith(".json"): |
125 | return Munch.fromDict(load(file_obj)) | 133 | return Munch.fromDict(load(file_obj)) |
@@ -127,14 +135,36 @@ def load_initial_data_from(file_name): | @@ -127,14 +135,36 @@ def load_initial_data_from(file_name): | ||
127 | return fromYAML(file_obj) | 135 | return fromYAML(file_obj) |
128 | 136 | ||
129 | 137 | ||
130 | -def prepare_test_tender_data(period_intervals, mode): | 138 | +def prepare_test_tender_data(procedure_intervals, mode): |
139 | + # Get actual intervals by mode name | ||
140 | + if mode in procedure_intervals: | ||
141 | + intervals = procedure_intervals[mode] | ||
142 | + else: | ||
143 | + intervals = procedure_intervals['default'] | ||
144 | + LOGGER.log_message(Message(intervals)) | ||
145 | + | ||
146 | + # Set acceleration value for certain modes | ||
147 | + if mode in ['openua', 'openeu']: | ||
148 | + assert isinstance(intervals['accelerator'], int), \ | ||
149 | + "Accelerator should be an 'int', " \ | ||
150 | + "not '{}'".format(type(intervals['accelerator']).__name__) | ||
151 | + assert intervals['accelerator'] >= 0, \ | ||
152 | + "Accelerator should not be less than 0" | ||
153 | + else: | ||
154 | + assert 'accelerator' not in intervals.keys(), \ | ||
155 | + "Accelerator is not available for mode '{0}'".format(mode) | ||
156 | + | ||
131 | if mode == 'single': | 157 | if mode == 'single': |
132 | - return munchify({'data': test_tender_data(period_intervals)}) | 158 | + return munchify({'data': test_tender_data(intervals)}) |
133 | elif mode == 'multi': | 159 | elif mode == 'multi': |
134 | - return munchify({'data': test_tender_data_multiple_items(period_intervals)}) | 160 | + return munchify({'data': test_tender_data_multiple_items(intervals)}) |
135 | elif mode == 'limited': | 161 | elif mode == 'limited': |
136 | - return munchify({'data': test_tender_data_limited(period_intervals)}) | ||
137 | - raise ValueError('Invalid mode for test_tender_data') | 162 | + return munchify({'data': test_tender_data_limited(intervals)}) |
163 | + elif mode == 'openua': | ||
164 | + return munchify({'data': test_tender_data_openua(intervals)}) | ||
165 | + elif mode == 'openeu': | ||
166 | + return munchify({'data': test_tender_data_openeu(intervals)}) | ||
167 | + raise ValueError("Invalid mode for prepare_test_tender_data") | ||
138 | 168 | ||
139 | 169 | ||
140 | def run_keyword_and_ignore_keyword_definitions(name, *args): | 170 | def run_keyword_and_ignore_keyword_definitions(name, *args): |
@@ -175,7 +205,7 @@ def set_access_key(tender, access_token): | @@ -175,7 +205,7 @@ def set_access_key(tender, access_token): | ||
175 | 205 | ||
176 | 206 | ||
177 | def set_to_object(obj, attribute, value): | 207 | def set_to_object(obj, attribute, value): |
178 | - xpathset(obj, attribute.replace('.', '/'), value) | 208 | + xpathnew(obj, attribute, value, separator='.') |
179 | return obj | 209 | return obj |
180 | 210 | ||
181 | 211 | ||
@@ -206,6 +236,74 @@ def merge_dicts(left, right): | @@ -206,6 +236,74 @@ def merge_dicts(left, right): | ||
206 | new.update(right) | 236 | new.update(right) |
207 | return new | 237 | return new |
208 | 238 | ||
239 | + | ||
240 | +def create_data_dict(path_to_value=None, value=None): | ||
241 | + data_dict = munchify({'data': {}}) | ||
242 | + if isinstance(path_to_value, basestring) and value: | ||
243 | + list_items = re.search('\d+', path_to_value) | ||
244 | + if list_items: | ||
245 | + list_items = list_items.group(0) | ||
246 | + path_to_value = path_to_value.split('[' + list_items + ']') | ||
247 | + path_to_value.insert(1, '.' + list_items) | ||
248 | + set_to_object(data_dict, path_to_value[0], []) | ||
249 | + set_to_object(data_dict, ''.join(path_to_value[:2]), {}) | ||
250 | + set_to_object(data_dict, ''.join(path_to_value), value) | ||
251 | + else: | ||
252 | + data_dict = set_to_object(data_dict, path_to_value, value) | ||
253 | + return data_dict | ||
254 | + | ||
255 | + | ||
256 | +def cancel_tender(cancellation_reason): | ||
257 | + return { | ||
258 | + 'data': { | ||
259 | + 'reason': cancellation_reason | ||
260 | + } | ||
261 | + } | ||
262 | + | ||
263 | + | ||
264 | +def confirm_supplier(supplier_id): | ||
265 | + return { | ||
266 | + "data": { | ||
267 | + "status": "active", | ||
268 | + "id": supplier_id | ||
269 | + } | ||
270 | + } | ||
271 | + | ||
272 | + | ||
273 | +def change_cancellation_document_field(key, value): | ||
274 | + data = { | ||
275 | + "data": { | ||
276 | + key: value | ||
277 | + } | ||
278 | + } | ||
279 | + return data | ||
280 | + | ||
281 | + | ||
282 | +def confirm_cancellation(cancellation_id): | ||
283 | + data = { | ||
284 | + "data": { | ||
285 | + "status": "active", | ||
286 | + "id": cancellation_id | ||
287 | + } | ||
288 | + } | ||
289 | + return data | ||
290 | + | ||
291 | + | ||
292 | +def confirm_contract(contract_id): | ||
293 | + data = { | ||
294 | + "data": { | ||
295 | + "id": contract_id, | ||
296 | + "status": "active" | ||
297 | + } | ||
298 | + } | ||
299 | + return data | ||
300 | + | ||
301 | + | ||
302 | +def additional_items_data(tender_id, access_token): | ||
303 | + data = {"access": {"token": access_token}, "data": {"id": tender_id, "items": [{"unit": {"code": "MON", "name": "month"}, "quantity": 9}]}} | ||
304 | + return data | ||
305 | + | ||
306 | + | ||
209 | def munch_dict(arg=None, data=False): | 307 | def munch_dict(arg=None, data=False): |
210 | if arg is None: | 308 | if arg is None: |
211 | arg = {} | 309 | arg = {} |
@@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
6 | Library DebugLibrary | 6 | Library DebugLibrary |
7 | Resource keywords.robot | 7 | Resource keywords.robot |
8 | Resource resource.robot | 8 | Resource resource.robot |
9 | -Suite Setup TestSuiteSetup | ||
10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
10 | +Suite Teardown Test Suite Teardown | ||
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | ${mode} single | 13 | ${mode} single |
@@ -24,7 +24,7 @@ ${question_id} 0 | @@ -24,7 +24,7 @@ ${question_id} 0 | ||
24 | ... ${USERS.users['${tender_owner}'].broker} | 24 | ... ${USERS.users['${tender_owner}'].broker} |
25 | ... minimal | 25 | ... minimal |
26 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), | 26 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), |
27 | - ${tender_data}= Підготовка початкових даних | 27 | + ${tender_data}= Підготовка даних для створення тендера |
28 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | 28 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} |
29 | ${LAST_MODIFICATION_DATE}= Get Current TZdate | 29 | ${LAST_MODIFICATION_DATE}= Get Current TZdate |
30 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | 30 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} |
@@ -33,9 +33,10 @@ ${question_id} 0 | @@ -33,9 +33,10 @@ ${question_id} 0 | ||
33 | Log ${TENDER} | 33 | Log ${TENDER} |
34 | 34 | ||
35 | Можливість додати тендерну документацію | 35 | Можливість додати тендерну документацію |
36 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
37 | - ... tender_owner | ||
38 | - ... ${USERS.users['${tender_owner}'].broker} | 36 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ |
37 | + ... tender_owner | ||
38 | + ... ${USERS.users['${tender_owner}'].broker} | ||
39 | + ... critical level 2 | ||
39 | [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | 40 | [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі |
40 | ${filepath}= create_fake_doc | 41 | ${filepath}= create_fake_doc |
41 | ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']} | 42 | ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']} |
@@ -46,12 +47,12 @@ ${question_id} 0 | @@ -46,12 +47,12 @@ ${question_id} 0 | ||
46 | 47 | ||
47 | Можливість знайти однопредметний тендер по ідентифікатору | 48 | Можливість знайти однопредметний тендер по ідентифікатору |
48 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 49 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
49 | - ... viewer | ||
50 | - ... ${USERS.users['${viewer}'].broker} | 50 | + ... viewer tender_owner provider provider1 |
51 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
52 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
51 | ... minimal | 53 | ... minimal |
52 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
53 | - ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
54 | - :FOR ${username} IN @{usernames} | 54 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} |
55 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
55 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 56 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
56 | 57 | ||
57 | ###### | 58 | ###### |
@@ -61,35 +62,39 @@ ${question_id} 0 | @@ -61,35 +62,39 @@ ${question_id} 0 | ||
61 | 62 | ||
62 | Відображення заголовку оголошеного тендера | 63 | Відображення заголовку оголошеного тендера |
63 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 64 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
64 | - ... viewer | ||
65 | - ... ${USERS.users['${viewer}'].broker} | 65 | + ... viewer provider provider1 |
66 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
66 | ... minimal | 67 | ... minimal |
67 | - ${usernames}= Create List ${viewer} ${provider} | ||
68 | - :FOR ${username} IN @{usernames} | 68 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
69 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
69 | \ Звірити поле тендера ${username} ${USERS.users['${tender_owner}'].initial_data} title | 70 | \ Звірити поле тендера ${username} ${USERS.users['${tender_owner}'].initial_data} title |
70 | 71 | ||
71 | Відображення опису оголошеного тендера | 72 | Відображення опису оголошеного тендера |
72 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 73 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
73 | ... viewer | 74 | ... viewer |
74 | ... ${USERS.users['${viewer}'].broker} | 75 | ... ${USERS.users['${viewer}'].broker} |
76 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
75 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} description | 77 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} description |
76 | 78 | ||
77 | Відображення бюджету оголошеного тендера | 79 | Відображення бюджету оголошеного тендера |
78 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 80 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
79 | ... viewer | 81 | ... viewer |
80 | ... ${USERS.users['${viewer}'].broker} | 82 | ... ${USERS.users['${viewer}'].broker} |
83 | + ... critical level 2 | ||
81 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} value.amount | 84 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} value.amount |
82 | 85 | ||
83 | Відображення tenderID оголошеного тендера | 86 | Відображення tenderID оголошеного тендера |
84 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 87 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
85 | ... viewer | 88 | ... viewer |
86 | ... ${USERS.users['${viewer}'].broker} | 89 | ... ${USERS.users['${viewer}'].broker} |
90 | + ... critical level 2 | ||
87 | Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} tenderID | 91 | Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} tenderID |
88 | 92 | ||
89 | Відображення procuringEntity.name оголошеного тендера | 93 | Відображення procuringEntity.name оголошеного тендера |
90 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 94 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
91 | ... viewer | 95 | ... viewer |
92 | ... ${USERS.users['${viewer}'].broker} | 96 | ... ${USERS.users['${viewer}'].broker} |
97 | + ... critical level 2 | ||
93 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procuringEntity.name | 98 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procuringEntity.name |
94 | 99 | ||
95 | Відображення початку періоду уточнення оголошеного тендера | 100 | Відображення початку періоду уточнення оголошеного тендера |
@@ -107,20 +112,20 @@ ${question_id} 0 | @@ -107,20 +112,20 @@ ${question_id} 0 | ||
107 | 112 | ||
108 | Відображення початку періоду прийому пропозицій оголошеного тендера | 113 | Відображення початку періоду прийому пропозицій оголошеного тендера |
109 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 114 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
110 | - ... viewer | ||
111 | - ... ${USERS.users['${viewer}'].broker} | 115 | + ... viewer provider provider1 |
116 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
112 | ... minimal | 117 | ... minimal |
113 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
114 | - :FOR ${username} IN @{usernames} | 118 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
119 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
115 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | 120 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate |
116 | 121 | ||
117 | Відображення закінчення періоду прийому пропозицій оголошеного тендера | 122 | Відображення закінчення періоду прийому пропозицій оголошеного тендера |
118 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 123 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
119 | - ... viewer | ||
120 | - ... ${USERS.users['${viewer}'].broker} | 124 | + ... viewer provider provider1 |
125 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
121 | ... minimal | 126 | ... minimal |
122 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
123 | - :FOR ${username} IN @{usernames} | 127 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
128 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
124 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | 129 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate |
125 | 130 | ||
126 | Відображення мінімального кроку оголошеного тендера | 131 | Відображення мінімального кроку оголошеного тендера |
@@ -133,6 +138,8 @@ ${question_id} 0 | @@ -133,6 +138,8 @@ ${question_id} 0 | ||
133 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 138 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
134 | ... tender_owner | 139 | ... tender_owner |
135 | ... ${USERS.users['${tender_owner}'].broker} | 140 | ... ${USERS.users['${tender_owner}'].broker} |
141 | + ... critical level 2 | ||
142 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
136 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | 143 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description |
137 | 144 | ||
138 | ####### | 145 | ####### |
@@ -143,12 +150,15 @@ ${question_id} 0 | @@ -143,12 +150,15 @@ ${question_id} 0 | ||
143 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 150 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
144 | ... viewer | 151 | ... viewer |
145 | ... ${USERS.users['${viewer}'].broker} | 152 | ... ${USERS.users['${viewer}'].broker} |
153 | + ... critical level 2 | ||
154 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
146 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].description | 155 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].description |
147 | 156 | ||
148 | Відображення дати доставки позицій закупівлі однопредметного тендера | 157 | Відображення дати доставки позицій закупівлі однопредметного тендера |
149 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 158 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
150 | ... viewer | 159 | ... viewer |
151 | ... ${USERS.users['${viewer}'].broker} | 160 | ... ${USERS.users['${viewer}'].broker} |
161 | + ... critical level 3 | ||
152 | Звірити дату тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryDate.endDate | 162 | Звірити дату тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryDate.endDate |
153 | 163 | ||
154 | Відображення координат широти доставки позицій закупівлі однопредметного тендера | 164 | Відображення координат широти доставки позицій закупівлі однопредметного тендера |
@@ -167,6 +177,7 @@ ${question_id} 0 | @@ -167,6 +177,7 @@ ${question_id} 0 | ||
167 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 177 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
168 | ... viewer | 178 | ... viewer |
169 | ... ${USERS.users['${viewer}'].broker} | 179 | ... ${USERS.users['${viewer}'].broker} |
180 | + ... critical level 3 | ||
170 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryAddress.countryName | 181 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryAddress.countryName |
171 | 182 | ||
172 | Відображення пошт. коду доставки позицій закупівлі однопредметного тендера | 183 | Відображення пошт. коду доставки позицій закупівлі однопредметного тендера |
@@ -179,6 +190,7 @@ ${question_id} 0 | @@ -179,6 +190,7 @@ ${question_id} 0 | ||
179 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 190 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
180 | ... viewer | 191 | ... viewer |
181 | ... ${USERS.users['${viewer}'].broker} | 192 | ... ${USERS.users['${viewer}'].broker} |
193 | + ... critical level 3 | ||
182 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryAddress.region | 194 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryAddress.region |
183 | 195 | ||
184 | Відображення locality адреси доставки позицій закупівлі однопредметного тендера | 196 | Відображення locality адреси доставки позицій закупівлі однопредметного тендера |
@@ -203,12 +215,14 @@ ${question_id} 0 | @@ -203,12 +215,14 @@ ${question_id} 0 | ||
203 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 215 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
204 | ... viewer | 216 | ... viewer |
205 | ... ${USERS.users['${viewer}'].broker} | 217 | ... ${USERS.users['${viewer}'].broker} |
218 | + ... critical level 3 | ||
206 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].classification.id | 219 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].classification.id |
207 | 220 | ||
208 | Відображення опису класифікації позицій закупівлі однопредметного тендера | 221 | Відображення опису класифікації позицій закупівлі однопредметного тендера |
209 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 222 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
210 | ... viewer | 223 | ... viewer |
211 | ... ${USERS.users['${viewer}'].broker} | 224 | ... ${USERS.users['${viewer}'].broker} |
225 | + ... critical level 3 | ||
212 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].classification.description | 226 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].classification.description |
213 | 227 | ||
214 | Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера | 228 | Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера |
@@ -221,18 +235,21 @@ ${question_id} 0 | @@ -221,18 +235,21 @@ ${question_id} 0 | ||
221 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 235 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
222 | ... viewer | 236 | ... viewer |
223 | ... ${USERS.users['${viewer}'].broker} | 237 | ... ${USERS.users['${viewer}'].broker} |
238 | + ... critical level 3 | ||
224 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].additionalClassifications[0].id | 239 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].additionalClassifications[0].id |
225 | 240 | ||
226 | Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера | 241 | Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера |
227 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 242 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
228 | ... viewer | 243 | ... viewer |
229 | ... ${USERS.users['${viewer}'].broker} | 244 | ... ${USERS.users['${viewer}'].broker} |
245 | + ... critical level 3 | ||
230 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].additionalClassifications[0].description | 246 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].additionalClassifications[0].description |
231 | 247 | ||
232 | Відображення назви одиниці позицій закупівлі однопредметного тендера | 248 | Відображення назви одиниці позицій закупівлі однопредметного тендера |
233 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 249 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
234 | ... viewer | 250 | ... viewer |
235 | ... ${USERS.users['${viewer}'].broker} | 251 | ... ${USERS.users['${viewer}'].broker} |
252 | + ... critical level 3 | ||
236 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].unit.name | 253 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].unit.name |
237 | 254 | ||
238 | Відображення коду одиниці позицій закупівлі однопредметного тендера | 255 | Відображення коду одиниці позицій закупівлі однопредметного тендера |
@@ -245,6 +262,7 @@ ${question_id} 0 | @@ -245,6 +262,7 @@ ${question_id} 0 | ||
245 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 262 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
246 | ... viewer | 263 | ... viewer |
247 | ... ${USERS.users['${viewer}'].broker} | 264 | ... ${USERS.users['${viewer}'].broker} |
265 | + ... critical level 3 | ||
248 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].quantity | 266 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].quantity |
249 | 267 | ||
250 | ####### | 268 | ####### |
@@ -254,38 +272,51 @@ ${question_id} 0 | @@ -254,38 +272,51 @@ ${question_id} 0 | ||
254 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 272 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
255 | ... provider | 273 | ... provider |
256 | ... ${USERS.users['${provider}'].broker} | 274 | ... ${USERS.users['${provider}'].broker} |
257 | - Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} | 275 | + ... critical level 2 |
276 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
277 | + ${question}= Підготовка даних для запитання | ||
278 | + ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | ||
258 | ${now}= Get Current TZdate | 279 | ${now}= Get Current TZdate |
259 | - Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} | 280 | + ${question.data.date}= Set variable ${now} |
281 | + ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} | ||
282 | + ${question_data}= munch_dict arg=${question_data} | ||
283 | + Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} | ||
260 | 284 | ||
261 | Відображення заголовку анонімного питання без відповіді | 285 | Відображення заголовку анонімного питання без відповіді |
262 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей | 286 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей |
263 | ... viewer | 287 | ... viewer |
264 | ... ${USERS.users['${viewer}'].broker} | 288 | ... ${USERS.users['${viewer}'].broker} |
265 | - Дочекатись синхронізації з майданчиком ${viewer} | 289 | + ... critical level 2 |
290 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
266 | Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | 291 | Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} |
267 | - Звірити поле тендера із значенням ${viewer} ${QUESTIONS[${question_id}].data.title} questions[${question_id}].title | 292 | + Звірити поле тендера із значенням ${viewer} ${USERS.users['${provider}'].question_data.question.data.title} questions[${question_id}].title |
268 | 293 | ||
269 | Відображення опису анонімного питання без відповіді | 294 | Відображення опису анонімного питання без відповіді |
270 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей | 295 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей |
271 | ... viewer | 296 | ... viewer |
272 | ... ${USERS.users['${viewer}'].broker} | 297 | ... ${USERS.users['${viewer}'].broker} |
273 | - Звірити поле тендера із значенням ${viewer} ${QUESTIONS[${question_id}].data.description} questions[${question_id}].description | 298 | + ... critical level 2 |
299 | + Звірити поле тендера із значенням ${viewer} ${USERS.users['${provider}'].question_data.question.data.description} questions[${question_id}].description | ||
274 | 300 | ||
275 | Відображення дати анонімного питання без відповіді | 301 | Відображення дати анонімного питання без відповіді |
276 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей | 302 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей |
277 | ... viewer | 303 | ... viewer |
278 | ... ${USERS.users['${viewer}'].broker} | 304 | ... ${USERS.users['${viewer}'].broker} |
279 | - Звірити дату тендера із значенням ${viewer} ${QUESTIONS[${question_id}].data.date} questions[${question_id}].date | 305 | + Звірити дату тендера із значенням ${viewer} ${USERS.users['${provider}'].question_data.question.data.date} questions[${question_id}].date |
280 | 306 | ||
281 | Неможливість подати цінову пропозицію до початку періоду подачі пропозицій першим учасником | 307 | Неможливість подати цінову пропозицію до початку періоду подачі пропозицій першим учасником |
282 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 308 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
283 | ... provider | 309 | ... provider |
284 | ... ${USERS.users['${provider}'].broker} | 310 | ... ${USERS.users['${provider}'].broker} |
311 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
285 | ${bid}= test bid data | 312 | ${bid}= test bid data |
286 | Log ${bid} | 313 | Log ${bid} |
314 | + ${bidresponses}= Create Dictionary | ||
315 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
316 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
287 | ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | 317 | ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} |
288 | - Log ${bid_before_bidperiod_resp} | 318 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} |
319 | + log ${USERS.users['${provider}']} | ||
289 | 320 | ||
290 | ####### | 321 | ####### |
291 | #Відображення відповіді на запитання | 322 | #Відображення відповіді на запитання |
@@ -294,34 +325,45 @@ ${question_id} 0 | @@ -294,34 +325,45 @@ ${question_id} 0 | ||
294 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | 325 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання |
295 | ... tender_owner | 326 | ... tender_owner |
296 | ... ${USERS.users['${tender_owner}'].broker} | 327 | ... ${USERS.users['${tender_owner}'].broker} |
297 | - Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]} | 328 | + ... critical level 2 |
329 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
330 | + ${answer}= Підготовка даних для відповіді на запитання | ||
331 | + ${answer_resp}= Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} | ||
298 | ${now}= Get Current TZdate | 332 | ${now}= Get Current TZdate |
299 | - Set To Dictionary ${ANSWERS[${question_id}].data} date ${now} | 333 | + ${answer.data.date}= Set variable ${now} |
334 | + ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} | ||
335 | + Set To Dictionary ${USERS.users['${provider}']} answer_data ${answer_data} | ||
300 | 336 | ||
301 | Відображення відповіді на запитання | 337 | Відображення відповіді на запитання |
302 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання | 338 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання |
303 | ... viewer | 339 | ... viewer |
304 | ... ${USERS.users['${viewer}'].broker} | 340 | ... ${USERS.users['${viewer}'].broker} |
305 | - Дочекатись синхронізації з майданчиком ${viewer} | 341 | + ... critical level 2 |
342 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
306 | Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | 343 | Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} |
307 | - Звірити поле тендера із значенням ${viewer} ${ANSWERS[${question_id}].data.answer} questions[${question_id}].answer | 344 | + Звірити поле тендера із значенням ${viewer} ${USERS.users['${provider}']['answer_data']['answer'].data.answer} questions[${question_id}].answer |
308 | 345 | ||
309 | Можливість подати цінову пропозицію першим учасником | 346 | Можливість подати цінову пропозицію першим учасником |
310 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 347 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
311 | ... provider | 348 | ... provider |
312 | ... ${USERS.users['${provider}'].broker} | 349 | ... ${USERS.users['${provider}'].broker} |
350 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
313 | Дочекатись дати початку прийому пропозицій ${provider} | 351 | Дочекатись дати початку прийому пропозицій ${provider} |
314 | ${bid}= test bid data | 352 | ${bid}= test bid data |
315 | Log ${bid} | 353 | Log ${bid} |
316 | - ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
317 | - Set Global Variable ${biddingresponse0} | ||
318 | - log ${biddingresponse0} | 354 | + ${bidresponses}= Create Dictionary |
355 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
356 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
357 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
358 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
359 | + log ${USERS.users['${provider}'].bidresponses} | ||
319 | 360 | ||
320 | Можливість скасувати цінову пропозицію | 361 | Можливість скасувати цінову пропозицію |
321 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | 362 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
322 | - ... provider | ||
323 | - ... ${USERS.users['${provider}'].broker} | ||
324 | - ${biddingresponse_0}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponse0} | 363 | + ... provider |
364 | + ... ${USERS.users['${provider}'].broker} | ||
365 | + ${canceledbidresp}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
366 | + Log ${canceledbidresp} | ||
325 | 367 | ||
326 | Можливість подати повторно цінову пропозицію першим учасником | 368 | Можливість подати повторно цінову пропозицію першим учасником |
327 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 369 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
@@ -332,18 +374,17 @@ ${question_id} 0 | @@ -332,18 +374,17 @@ ${question_id} 0 | ||
332 | ${bid}= test bid data | 374 | ${bid}= test bid data |
333 | Log ${bid} | 375 | Log ${bid} |
334 | ${bidresponses}= Create Dictionary | 376 | ${bidresponses}= Create Dictionary |
335 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
336 | - Set To Dictionary ${bidresponses} resp ${resp} | 377 | + Set To Dictionary ${bidresponses} bid ${bid} |
337 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 378 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} |
379 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
380 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
338 | log ${USERS.users['${provider}'].bidresponses} | 381 | log ${USERS.users['${provider}'].bidresponses} |
339 | 382 | ||
340 | Можливість змінити повторну цінову пропозицію до 50000 | 383 | Можливість змінити повторну цінову пропозицію до 50000 |
341 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 384 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
342 | ... provider | 385 | ... provider |
343 | ... ${USERS.users['${provider}'].broker} | 386 | ... ${USERS.users['${provider}'].broker} |
344 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.value} amount 50000 | ||
345 | - Log ${USERS.users['${provider}'].bidresponses['resp'].data.value} | ||
346 | - ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 387 | + ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} value.amount 50000 |
347 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto50000resp ${fixbidto50000resp} | 388 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto50000resp ${fixbidto50000resp} |
348 | log ${fixbidto50000resp} | 389 | log ${fixbidto50000resp} |
349 | 390 | ||
@@ -351,9 +392,7 @@ ${question_id} 0 | @@ -351,9 +392,7 @@ ${question_id} 0 | ||
351 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 392 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
352 | ... provider | 393 | ... provider |
353 | ... ${USERS.users['${provider}'].broker} | 394 | ... ${USERS.users['${provider}'].broker} |
354 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.value} amount 10 | ||
355 | - Log ${USERS.users['${provider}'].bidresponses['fixbidto50000resp'].data.value} | ||
356 | - ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 395 | + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} value.amount 10 |
357 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | 396 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} |
358 | log ${fixbidto10resp} | 397 | log ${fixbidto10resp} |
359 | 398 | ||
@@ -361,6 +400,7 @@ ${question_id} 0 | @@ -361,6 +400,7 @@ ${question_id} 0 | ||
361 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | 400 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця |
362 | ... provider | 401 | ... provider |
363 | ... ${USERS.users['${provider}'].broker} | 402 | ... ${USERS.users['${provider}'].broker} |
403 | + ... critical level 2 | ||
364 | log ${USERS.users['${provider}'].broker} | 404 | log ${USERS.users['${provider}'].broker} |
365 | ${filepath}= create_fake_doc | 405 | ${filepath}= create_fake_doc |
366 | ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | 406 | ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} |
@@ -379,24 +419,27 @@ ${question_id} 0 | @@ -379,24 +419,27 @@ ${question_id} 0 | ||
379 | 419 | ||
380 | Неможливість задати запитання після закінчення періоду уточнень | 420 | Неможливість задати запитання після закінчення періоду уточнень |
381 | [Documentation] | 421 | [Documentation] |
382 | - ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | 422 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" |
383 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 423 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
384 | ... provider | 424 | ... provider |
385 | ... ${USERS.users['${provider}'].broker} | 425 | ... ${USERS.users['${provider}'].broker} |
386 | - ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} | 426 | + ${question}= Підготовка даних для запитання |
427 | + Викликати для учасника ${provider} Задати питання shouldfail ${TENDER['TENDER_UAID']} ${question} | ||
387 | 428 | ||
388 | Можливість подати цінову пропозицію другим учасником | 429 | Можливість подати цінову пропозицію другим учасником |
389 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | 430 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
390 | ... provider1 | 431 | ... provider1 |
391 | ... ${USERS.users['${provider1}'].broker} | 432 | ... ${USERS.users['${provider1}'].broker} |
392 | ... minimal | 433 | ... minimal |
434 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
393 | Дочекатись дати початку прийому пропозицій ${provider1} | 435 | Дочекатись дати початку прийому пропозицій ${provider1} |
394 | ${bid}= test bid data | 436 | ${bid}= test bid data |
395 | Log ${bid} | 437 | Log ${bid} |
396 | ${bidresponses}= Create Dictionary | 438 | ${bidresponses}= Create Dictionary |
397 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
398 | - Set To Dictionary ${bidresponses} resp ${resp} | 439 | + Set To Dictionary ${bidresponses} bid ${bid} |
399 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | 440 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} |
441 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
442 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
400 | log ${resp} | 443 | log ${resp} |
401 | log ${USERS.users['${provider1}'].bidresponses} | 444 | log ${USERS.users['${provider1}'].bidresponses} |
402 | 445 | ||
@@ -404,14 +447,16 @@ ${question_id} 0 | @@ -404,14 +447,16 @@ ${question_id} 0 | ||
404 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | 447 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
405 | ... viewer | 448 | ... viewer |
406 | ... ${USERS.users['${viewer}'].broker} | 449 | ... ${USERS.users['${viewer}'].broker} |
450 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
407 | ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids | 451 | ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids |
408 | - ${bool}= Convert To Boolean ${bids} | ||
409 | - Should Be Equal ${bool} ${False} | 452 | + Should Not Be True ${bids} |
410 | 453 | ||
411 | Можливість завантажити документ другим учасником | 454 | Можливість завантажити документ другим учасником |
412 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість прийняти пропозицію переможця | 455 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість прийняти пропозицію переможця |
413 | ... provider1 | 456 | ... provider1 |
414 | ... ${USERS.users['${provider1}'].broker} | 457 | ... ${USERS.users['${provider1}'].broker} |
458 | + ... critical level 2 | ||
459 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
415 | log ${USERS.users['${provider1}'].broker} | 460 | log ${USERS.users['${provider1}'].broker} |
416 | ${filepath}= create_fake_doc | 461 | ${filepath}= create_fake_doc |
417 | ${bid_doc_upload}= Викликати для учасника ${provider1} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | 462 | ${bid_doc_upload}= Викликати для учасника ${provider1} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} |
@@ -422,9 +467,7 @@ ${question_id} 0 | @@ -422,9 +467,7 @@ ${question_id} 0 | ||
422 | ... provider1 | 467 | ... provider1 |
423 | ... ${USERS.users['${provider1}'].broker} | 468 | ... ${USERS.users['${provider1}'].broker} |
424 | Дочекатись дати закінчення прийому пропозицій ${provider1} | 469 | Дочекатись дати закінчення прийому пропозицій ${provider1} |
425 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.value} amount 50000 | ||
426 | - Log ${USERS.users['${provider1}'].bidresponses['resp'].data.value} | ||
427 | - ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 470 | + ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} value.amount 50000 |
428 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto50000resp ${failfixbidto50000resp} | 471 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto50000resp ${failfixbidto50000resp} |
429 | log ${failfixbidto50000resp} | 472 | log ${failfixbidto50000resp} |
430 | 473 | ||
@@ -432,9 +475,7 @@ ${question_id} 0 | @@ -432,9 +475,7 @@ ${question_id} 0 | ||
432 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 475 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
433 | ... provider1 | 476 | ... provider1 |
434 | ... ${USERS.users['${provider1}'].broker} | 477 | ... ${USERS.users['${provider1}'].broker} |
435 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.value} amount 1 | ||
436 | - Log ${USERS.users['${provider1}'].bidresponses['resp'].data.value} | ||
437 | - ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 478 | + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} value.amount 1 |
438 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | 479 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} |
439 | log ${failfixbidto1resp} | 480 | log ${failfixbidto1resp} |
440 | 481 | ||
@@ -463,28 +504,30 @@ ${question_id} 0 | @@ -463,28 +504,30 @@ ${question_id} 0 | ||
463 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_modified_failed ${bid_doc_modified_failed} | 504 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_modified_failed ${bid_doc_modified_failed} |
464 | 505 | ||
465 | Можливість вичитати посилання на аукціон для глядача | 506 | Можливість вичитати посилання на аукціон для глядача |
466 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | ||
467 | - ... viewer | ||
468 | - ... ${USERS.users['${viewer}'].broker} | ||
469 | - ... minimal | 507 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
508 | + ... viewer | ||
509 | + ... ${USERS.users['${viewer}'].broker} | ||
510 | + ... minimal | ||
511 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
470 | Дочекатись дати закінчення прийому пропозицій ${viewer} | 512 | Дочекатись дати закінчення прийому пропозицій ${viewer} |
471 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
472 | Sleep 120 | 513 | Sleep 120 |
473 | ${url}= Викликати для учасника ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} | 514 | ${url}= Викликати для учасника ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} |
474 | Log URL аукціону для глядача: ${url} | 515 | Log URL аукціону для глядача: ${url} |
475 | 516 | ||
476 | Можливість вичитати посилання на участь в аукціоні для першого учасника | 517 | Можливість вичитати посилання на участь в аукціоні для першого учасника |
477 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
478 | - ... provider | ||
479 | - ... ${USERS.users['${provider}'].broker} | ||
480 | - ... minimal | 518 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
519 | + ... provider | ||
520 | + ... ${USERS.users['${provider}'].broker} | ||
521 | + ... minimal | ||
522 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
481 | ${url}= Викликати для учасника ${provider} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} | 523 | ${url}= Викликати для учасника ${provider} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} |
482 | Log URL аукціону для першого учасника: ${url} | 524 | Log URL аукціону для першого учасника: ${url} |
483 | 525 | ||
484 | Можливість вичитати посилання на участь в аукціоні для другого учасника | 526 | Можливість вичитати посилання на участь в аукціоні для другого учасника |
485 | - [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
486 | - ... provider1 | ||
487 | - ... ${USERS.users['${provider1}'].broker} | ||
488 | - ... minimal | 527 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
528 | + ... provider1 | ||
529 | + ... ${USERS.users['${provider1}'].broker} | ||
530 | + ... minimal | ||
531 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
489 | ${url}= Викликати для учасника ${provider1} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} | 532 | ${url}= Викликати для учасника ${provider1} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} |
490 | Log URL аукціону для другого учасника: ${url} | 533 | Log URL аукціону для другого учасника: ${url} |
@@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
6 | Library DebugLibrary | 6 | Library DebugLibrary |
7 | Resource keywords.robot | 7 | Resource keywords.robot |
8 | Resource resource.robot | 8 | Resource resource.robot |
9 | -Suite Setup TestSuiteSetup | ||
10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
10 | +Suite Teardown Test Suite Teardown | ||
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | ${mode} single | 13 | ${mode} single |
@@ -20,7 +20,7 @@ ${broker} Quinta | @@ -20,7 +20,7 @@ ${broker} Quinta | ||
20 | ... tender_owner | 20 | ... tender_owner |
21 | ... ${USERS.users['${tender_owner}'].broker} | 21 | ... ${USERS.users['${tender_owner}'].broker} |
22 | ... from-0.12 | 22 | ... from-0.12 |
23 | - ${tender_data}= Підготовка початкових даних | 23 | + ${tender_data}= Підготовка даних для створення тендера |
24 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} | 24 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} |
25 | ... Створити тендер | 25 | ... Створити тендер |
26 | ... ${tender_data} | 26 | ... ${tender_data} |
@@ -58,7 +58,7 @@ ${broker} Quinta | @@ -58,7 +58,7 @@ ${broker} Quinta | ||
58 | ... ${USERS.users['${provider}'].broker} | 58 | ... ${USERS.users['${provider}'].broker} |
59 | ... from-0.12 | 59 | ... from-0.12 |
60 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 60 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
61 | - ${claim}= test_claim_data | 61 | + ${claim}= Підготовка даних для подання вимоги |
62 | ${claim_resp}= Викликати для учасника ${provider} | 62 | ${claim_resp}= Викликати для учасника ${provider} |
63 | ... Створити вимогу | 63 | ... Створити вимогу |
64 | ... ${TENDER['TENDER_UAID']} | 64 | ... ${TENDER['TENDER_UAID']} |
@@ -358,7 +358,7 @@ ${broker} Quinta | @@ -358,7 +358,7 @@ ${broker} Quinta | ||
358 | ... provider | 358 | ... provider |
359 | ... ${USERS.users['${provider}'].broker} | 359 | ... ${USERS.users['${provider}'].broker} |
360 | ... from-0.12 | 360 | ... from-0.12 |
361 | - ${claim}= test_claim_data | 361 | + ${claim}= Підготовка даних для подання вимоги |
362 | ${claim_resp}= Викликати для учасника ${provider} | 362 | ${claim_resp}= Викликати для учасника ${provider} |
363 | ... Створити вимогу | 363 | ... Створити вимогу |
364 | ... ${TENDER['TENDER_UAID']} | 364 | ... ${TENDER['TENDER_UAID']} |
@@ -436,7 +436,7 @@ ${broker} Quinta | @@ -436,7 +436,7 @@ ${broker} Quinta | ||
436 | ... provider | 436 | ... provider |
437 | ... ${USERS.users['${provider}'].broker} | 437 | ... ${USERS.users['${provider}'].broker} |
438 | ... from-0.12 | 438 | ... from-0.12 |
439 | - ${claim}= test_claim_data | 439 | + ${claim}= Підготовка даних для подання вимоги |
440 | ${claim_resp}= Викликати для учасника ${provider} | 440 | ${claim_resp}= Викликати для учасника ${provider} |
441 | ... Створити вимогу | 441 | ... Створити вимогу |
442 | ... ${TENDER['TENDER_UAID']} | 442 | ... ${TENDER['TENDER_UAID']} |
@@ -503,7 +503,7 @@ ${broker} Quinta | @@ -503,7 +503,7 @@ ${broker} Quinta | ||
503 | ... provider | 503 | ... provider |
504 | ... ${USERS.users['${provider}'].broker} | 504 | ... ${USERS.users['${provider}'].broker} |
505 | ... from-0.12 | 505 | ... from-0.12 |
506 | - ${claim}= test_claim_data | 506 | + ${claim}= Підготовка даних для подання вимоги |
507 | ${claim_resp}= Викликати для учасника ${provider} | 507 | ${claim_resp}= Викликати для учасника ${provider} |
508 | ... Створити вимогу | 508 | ... Створити вимогу |
509 | ... ${TENDER['TENDER_UAID']} | 509 | ... ${TENDER['TENDER_UAID']} |
@@ -580,7 +580,7 @@ ${broker} Quinta | @@ -580,7 +580,7 @@ ${broker} Quinta | ||
580 | ... provider | 580 | ... provider |
581 | ... ${USERS.users['${provider}'].broker} | 581 | ... ${USERS.users['${provider}'].broker} |
582 | ... from-0.12 | 582 | ... from-0.12 |
583 | - ${claim}= test_claim_data | 583 | + ${claim}= Підготовка даних для подання вимоги |
584 | ${claim_resp}= Викликати для учасника ${provider} | 584 | ${claim_resp}= Викликати для учасника ${provider} |
585 | ... Створити вимогу | 585 | ... Створити вимогу |
586 | ... ${TENDER['TENDER_UAID']} | 586 | ... ${TENDER['TENDER_UAID']} |
Please
register
or
login
to post a comment