Showing
22 changed files
with
692 additions
and
687 deletions
@@ -60,7 +60,7 @@ robot_tests.broker.publicportal = git ${remotes:gh}openprocurement/robot_tests.b | @@ -60,7 +60,7 @@ robot_tests.broker.publicportal = git ${remotes:gh}openprocurement/robot_tests.b | ||
60 | robot_tests.broker.smarttender = git ${remotes:gh}openprocurement/robot_tests.broker.smarttender.git | 60 | robot_tests.broker.smarttender = git ${remotes:gh}openprocurement/robot_tests.broker.smarttender.git |
61 | robot_tests.broker.uatenders = git ${remotes:gh}openprocurement/robot_tests.broker.uatenders.git | 61 | robot_tests.broker.uatenders = git ${remotes:gh}openprocurement/robot_tests.broker.uatenders.git |
62 | robot_tests.broker.ubiz = git ${remotes:gh}openprocurement/robot_tests.broker.ubiz.git | 62 | robot_tests.broker.ubiz = git ${remotes:gh}openprocurement/robot_tests.broker.ubiz.git |
63 | -robot_tests.broker.zakpro = git ${remotes:gh}openprocurement/robot_tests.broker.zakpro.git | 63 | +robot_tests.broker.zakpro = git ${remotes:gh}openprocurement/robot_tests.broker.zakpro.git |
64 | robot_tests.broker.proztorg = git ${remotes:gh}openprocurement/robot_tests.broker.proztorg.git | 64 | robot_tests.broker.proztorg = git ${remotes:gh}openprocurement/robot_tests.broker.proztorg.git |
65 | 65 | ||
66 | [versions] | 66 | [versions] |
@@ -4,9 +4,9 @@ Resource resource.robot | @@ -4,9 +4,9 @@ Resource resource.robot | ||
4 | Suite Setup Test Suite Setup | 4 | Suite Setup Test Suite Setup |
5 | Suite Teardown Test Suite Teardown | 5 | Suite Teardown Test Suite Teardown |
6 | 6 | ||
7 | + | ||
7 | *** Variables *** | 8 | *** Variables *** |
8 | -${role} viewer | ||
9 | -${broker} Quinta | 9 | +@{used_roles} viewer |
10 | 10 | ||
11 | 11 | ||
12 | *** Test Cases *** | 12 | *** Test Cases *** |
@@ -16,7 +16,6 @@ ${broker} Quinta | @@ -16,7 +16,6 @@ ${broker} Quinta | ||
16 | Завантажити дані про тендер | 16 | Завантажити дані про тендер |
17 | Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 17 | Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
18 | 18 | ||
19 | - | ||
20 | ############################################################################################## | 19 | ############################################################################################## |
21 | # AUCTION | 20 | # AUCTION |
22 | ############################################################################################## | 21 | ############################################################################################## |
@@ -29,21 +28,25 @@ ${broker} Quinta | @@ -29,21 +28,25 @@ ${broker} Quinta | ||
29 | Отримати дані із тендера ${viewer} auctionPeriod.startDate | 28 | Отримати дані із тендера ${viewer} auctionPeriod.startDate |
30 | 29 | ||
31 | 30 | ||
32 | -Очікування початку аукціону | ||
33 | - [Tags] ${USERS.users['${viewer}'].broker}: Очікування аукціону | 31 | +Можливість дочекатися початку аукціону |
32 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися початку аукціону | ||
34 | ... viewer | 33 | ... viewer |
35 | ... ${USERS.users['${viewer}'].broker} | 34 | ... ${USERS.users['${viewer}'].broker} |
36 | Дочекатись дати початку аукціону ${viewer} | 35 | Дочекатись дати початку аукціону ${viewer} |
37 | 36 | ||
38 | -Очікування завершення аукціону | ||
39 | - [Tags] ${USERS.users['${viewer}'].broker}: Очікування аукціону | 37 | + |
38 | +Можливість дочекатися завершення аукціону | ||
39 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися завершення аукціону | ||
40 | ... viewer | 40 | ... viewer |
41 | ... ${USERS.users['${viewer}'].broker} | 41 | ... ${USERS.users['${viewer}'].broker} |
42 | [Teardown] Оновити LAST_MODIFICATION_DATE | 42 | [Teardown] Оновити LAST_MODIFICATION_DATE |
43 | - ${auctionEnd}= add_minutes_to_date ${USERS.users['${viewer}'].tender_data.data.auctionPeriod.startDate} 25 | ||
44 | - Дочекатись дати ${auctionEnd} # auction time for two bids plus 4 minutes for reliability | 43 | + Відкрити сторінку аукціону для глядача |
44 | + Wait Until Keyword Succeeds 61 times 30 s Page should contain Аукціон завершився | ||
45 | + Wait Until Keyword Succeeds 5 times 30 s Page should not contain очікуємо розкриття учасників | ||
46 | + Close browser | ||
47 | + | ||
45 | 48 | ||
46 | -Відображення дати закінчення аукціону | 49 | +Відображення дати завершення аукціону |
47 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 50 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
48 | ... viewer | 51 | ... viewer |
49 | ... ${USERS.users['${viewer}'].broker} | 52 | ... ${USERS.users['${viewer}'].broker} |
@@ -107,29 +107,18 @@ Library openprocurement_client_helper.py | @@ -107,29 +107,18 @@ Library openprocurement_client_helper.py | ||
107 | [Return] ${tender} | 107 | [Return] ${tender} |
108 | 108 | ||
109 | 109 | ||
110 | -Відняти предмети закупівлі | ||
111 | - [Arguments] ${username} ${tender_uaid} ${number} | ||
112 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
113 | - @{items}= Get From Object ${tender.data} items | ||
114 | - Log Many @{items} | ||
115 | - :FOR ${INDEX} IN RANGE ${number} | ||
116 | - \ Remove From List ${items} 0 | ||
117 | - Log Many @{items} | ||
118 | - Set_To_Object ${tender.data} items ${items} | 110 | +Додати предмет закупівлі |
111 | + [Arguments] ${username} ${tender_uaid} ${item} | ||
112 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
113 | + Append To List ${tender.data['items']} ${item} | ||
119 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 114 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
120 | 115 | ||
121 | 116 | ||
122 | -Додати предмети закупівлі | ||
123 | - [Arguments] ${username} ${tender_uaid} ${number} | 117 | +Видалити предмет закупівлі |
118 | + [Arguments] ${username} ${tender_uaid} ${item_id} | ||
124 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 119 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
125 | - @{items}= Get From Object ${tender.data} items | ||
126 | - Log Many @{items} | ||
127 | - :FOR ${INDEX} IN RANGE ${number} | ||
128 | - \ ${item}= test_item_data | ||
129 | - \ Append To List ${items} ${item} | ||
130 | - Log Many @{items} | ||
131 | - Set_To_Object ${tender.data} items ${items} | ||
132 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 120 | + ${item_index}= get_object_index_by_id ${tender.data['items']} ${item_id} |
121 | + Remove From List ${tender.data['items']} ${item_index} | ||
133 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 122 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
134 | 123 | ||
135 | 124 | ||
@@ -154,8 +143,8 @@ Library openprocurement_client_helper.py | @@ -154,8 +143,8 @@ Library openprocurement_client_helper.py | ||
154 | Подати цінову пропозицію | 143 | Подати цінову пропозицію |
155 | [Arguments] ${username} ${tender_uaid} ${bid} | 144 | [Arguments] ${username} ${tender_uaid} ${bid} |
156 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 145 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
157 | - ${lots}= Get Variable Value ${tender.data.lots} | ||
158 | - ${bid}= Run Keyword If ${lots} test_lots_bid_data | 146 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} |
147 | + ${bid}= Run Keyword If ${lots} test_bid_data multiLot | ||
159 | ... ELSE Set Variable ${bid} | 148 | ... ELSE Set Variable ${bid} |
160 | Run Keyword If ${lots} | 149 | Run Keyword If ${lots} |
161 | ... Run Keywords | 150 | ... Run Keywords |
@@ -171,7 +160,7 @@ Library openprocurement_client_helper.py | @@ -171,7 +160,7 @@ Library openprocurement_client_helper.py | ||
171 | Змінити цінову пропозицію | 160 | Змінити цінову пропозицію |
172 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | 161 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
173 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 162 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
174 | - ${lots}= Get Variable Value ${tender.data.lots} | 163 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} |
175 | ${fieldname}= Run Keyword If ${lots} Set Variable lotValues.0.${fieldname} | 164 | ${fieldname}= Run Keyword If ${lots} Set Variable lotValues.0.${fieldname} |
176 | ... ELSE Set Variable ${fieldname} | 165 | ... ELSE Set Variable ${fieldname} |
177 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | 166 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} |
@@ -249,7 +238,7 @@ Library openprocurement_client_helper.py | @@ -249,7 +238,7 @@ Library openprocurement_client_helper.py | ||
249 | Отримати посилання на аукціон для глядача | 238 | Отримати посилання на аукціон для глядача |
250 | [Arguments] ${username} ${tender_uaid} | 239 | [Arguments] ${username} ${tender_uaid} |
251 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 240 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
252 | - ${lots}= Get Variable Value ${tender.data.lots} | 241 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} |
253 | ${auctionUrl}= Run Keyword If ${lots} Set Variable ${tender.data.lots[0].auctionUrl} | 242 | ${auctionUrl}= Run Keyword If ${lots} Set Variable ${tender.data.lots[0].auctionUrl} |
254 | ... ELSE Set Variable ${tender.data.auctionUrl} | 243 | ... ELSE Set Variable ${tender.data.auctionUrl} |
255 | [return] ${auctionUrl} | 244 | [return] ${auctionUrl} |
@@ -258,7 +247,7 @@ Library openprocurement_client_helper.py | @@ -258,7 +247,7 @@ Library openprocurement_client_helper.py | ||
258 | Отримати посилання на аукціон для учасника | 247 | Отримати посилання на аукціон для учасника |
259 | [Arguments] ${username} ${tender_uaid} | 248 | [Arguments] ${username} ${tender_uaid} |
260 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | 249 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} |
261 | - ${lots}= Get Variable Value ${bid.data.lotValues} | 250 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${bid.data.lotValues} |
262 | ${participationUrl}= Run Keyword If ${lots} Set Variable ${bid.data.lotValues[0].participationUrl} | 251 | ${participationUrl}= Run Keyword If ${lots} Set Variable ${bid.data.lotValues[0].participationUrl} |
263 | ... ELSE Set Variable ${bid.data.participationUrl} | 252 | ... ELSE Set Variable ${bid.data.participationUrl} |
264 | [return] ${participationUrl} | 253 | [return] ${participationUrl} |
@@ -286,50 +275,77 @@ Library openprocurement_client_helper.py | @@ -286,50 +275,77 @@ Library openprocurement_client_helper.py | ||
286 | ############################################################################## | 275 | ############################################################################## |
287 | 276 | ||
288 | Створити лот | 277 | Створити лот |
289 | - [Arguments] ${username} ${tender} ${lot} | ||
290 | - Log ${username} | ||
291 | - Log ${tender} | ||
292 | - Log ${lot} | ||
293 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
294 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} create_lot ${tender} ${lot} | ||
295 | - Log ${tender_lot} | ||
296 | - [return] ${tender_lot} | ||
297 | - #TODO: | ||
298 | - #[Arguments] ${username} ${tender_uaid} ${lot} | ||
299 | - #${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 278 | + [Arguments] ${username} ${tender_uaid} ${lot} |
279 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
280 | + ${reply}= Call Method ${USERS.users['${username}'].client} create_lot ${tender} ${lot} | ||
281 | + [return] ${reply} | ||
282 | + | ||
283 | + | ||
284 | +Отримати інформацію із лоту | ||
285 | + [Arguments] ${username} ${lot_id} ${field_name} | ||
286 | + ${field_name}= Отримати шлях до поля об’єкта ${username} ${field_name} ${lot_id} | ||
287 | + Run Keyword And Return openprocurement_client.Отримати інформацію із тендера ${username} ${field_name} | ||
300 | 288 | ||
301 | 289 | ||
302 | Змінити лот | 290 | Змінити лот |
303 | - [Arguments] ${username} ${tender} ${lot} | ||
304 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
305 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} patch_lot ${tender} ${lot} | ||
306 | - Log ${tender_lot} | ||
307 | - [return] ${tender_lot} | ||
308 | - #TODO: | ||
309 | - #[Arguments] ${username} ${tender_uaid} ${lot} | ||
310 | - #${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 291 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${fieldname} ${fieldvalue} |
292 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
293 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
294 | + ${lot}= Create Dictionary data=${tender.data.lots[${lot_index}]} | ||
295 | + Set_To_Object ${lot.data} ${fieldname} ${fieldvalue} | ||
296 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_lot ${tender} ${lot} | ||
297 | + [return] ${reply} | ||
298 | + | ||
299 | + | ||
300 | +Додати предмет закупівлі в лот | ||
301 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${item} | ||
302 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
303 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
304 | + ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
305 | + Set_To_Object ${item} relatedLot ${lot_id} | ||
306 | + Append To List ${tender.data['items']} ${item} | ||
307 | + Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | ||
308 | + | ||
309 | + | ||
310 | +Задати питання до лоту | ||
311 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${question} | ||
312 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
313 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
314 | + ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
315 | + ${question}= test_lot_question_data ${question} ${lot_id} | ||
316 | + ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_question ${tender} ${question} | ||
317 | + [return] ${biddingresponse} | ||
311 | 318 | ||
312 | 319 | ||
313 | Завантажити документ в лот | 320 | Завантажити документ в лот |
314 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} | 321 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} |
315 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 322 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
316 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 323 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} |
324 | + ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
317 | ${doc}= openprocurement_client.Завантажити документ ${username} ${filepath} ${tender_uaid} | 325 | ${doc}= openprocurement_client.Завантажити документ ${username} ${filepath} ${tender_uaid} |
318 | ${lot_doc}= test_lot_document_data ${doc} ${lot_id} | 326 | ${lot_doc}= test_lot_document_data ${doc} ${lot_id} |
319 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_document ${tender} ${lot_doc} | 327 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_document ${tender} ${lot_doc} |
320 | - Log object data ${reply} reply | ||
321 | [return] ${reply} | 328 | [return] ${reply} |
322 | 329 | ||
323 | 330 | ||
324 | Видалити лот | 331 | Видалити лот |
325 | - [Arguments] ${username} ${tender} ${lot} | ||
326 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
327 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} delete_lot ${tender} ${lot} | ||
328 | - Log ${tender_lot} | ||
329 | - [return] ${tender_lot} | ||
330 | - #TODO: | ||
331 | - #[Arguments] ${username} ${tender_uaid} ${lot} | ||
332 | - #${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 332 | + [Arguments] ${username} ${tender_uaid} ${lot_id} |
333 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
334 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
335 | + ${lot}= Create Dictionary data=${tender.data.lots[${lot_index}]} | ||
336 | + ${reply}= Call Method ${USERS.users['${username}'].client} delete_lot ${tender} ${lot} | ||
337 | + [return] ${reply} | ||
338 | + | ||
339 | + | ||
340 | +Подати цінову пропозицію на лоти | ||
341 | + [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids} | ||
342 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
343 | + : FOR ${index} ${lot_id} IN ENUMERATE @{lots_ids} | ||
344 | + \ ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
345 | + \ ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
346 | + \ Set To Dictionary ${bid.data.lotValues[${index}]} relatedLot=${lot_id} | ||
347 | + ${reply}= openprocurement_client.Подати цінову пропозицію ${username} ${tender_uaid} ${bid} | ||
348 | + [return] ${reply} | ||
333 | 349 | ||
334 | ############################################################################## | 350 | ############################################################################## |
335 | # Claims | 351 | # Claims |
@@ -426,7 +442,7 @@ Library openprocurement_client_helper.py | @@ -426,7 +442,7 @@ Library openprocurement_client_helper.py | ||
426 | Підтвердити постачальника | 442 | Підтвердити постачальника |
427 | [Documentation] | 443 | [Documentation] |
428 | ... [Arguments] Username, tender uaid and number of the award to confirm | 444 | ... [Arguments] Username, tender uaid and number of the award to confirm |
429 | - ... Find tender using uaid, get data from confirm_supplier and call patch_award | 445 | + ... Find tender using uaid, create dict with confirmation data and call patch_award |
430 | ... [Return] Nothing | 446 | ... [Return] Nothing |
431 | [Arguments] ${username} ${tender_uaid} ${award_num} | 447 | [Arguments] ${username} ${tender_uaid} ${award_num} |
432 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 448 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
@@ -467,20 +483,6 @@ Library openprocurement_client_helper.py | @@ -467,20 +483,6 @@ Library openprocurement_client_helper.py | ||
467 | # Limited procurement | 483 | # Limited procurement |
468 | ############################################################################## | 484 | ############################################################################## |
469 | 485 | ||
470 | -Модифікувати закупівлю | ||
471 | - [Documentation] | ||
472 | - ... [Arguments] Username and tender uaid | ||
473 | - ... Find tender using uaid, get data from test_additional_items_data and call patch_tender | ||
474 | - ... [Return] Nothing | ||
475 | - [Arguments] ${username} ${tender_uaid} | ||
476 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
477 | - ${data}= test_additional_items_data ${tender['data']['id']} ${tender['access']['token']} | ||
478 | - Log ${data} | ||
479 | - Set To Dictionary ${USERS.users['${tender_owner}']} additional_items=${data['data']['items']} | ||
480 | - ${reply}= Call Method ${USERS.users['${username}'].client} patch_tender ${data} | ||
481 | - Log ${reply} | ||
482 | - | ||
483 | - | ||
484 | Додати і підтвердити постачальника | 486 | Додати і підтвердити постачальника |
485 | [Documentation] | 487 | [Documentation] |
486 | ... [Arguments] Username, tender uaid and supplier data | 488 | ... [Arguments] Username, tender uaid and supplier data |
@@ -5,8 +5,7 @@ Suite Setup Test Suite Setup | @@ -5,8 +5,7 @@ Suite Setup Test Suite Setup | ||
5 | Suite Teardown Test Suite Teardown | 5 | Suite Teardown Test Suite Teardown |
6 | 6 | ||
7 | *** Variables *** | 7 | *** Variables *** |
8 | -${role} viewer | ||
9 | -${broker} Quinta | 8 | +@{used_roles} tender_owner viewer |
10 | 9 | ||
11 | 10 | ||
12 | *** Test Cases *** | 11 | *** Test Cases *** |
@@ -42,7 +42,7 @@ Default: | @@ -42,7 +42,7 @@ Default: | ||
42 | Quinta: | 42 | Quinta: |
43 | intervals: | 43 | intervals: |
44 | default: | 44 | default: |
45 | - enquiry: [0, 2] | 45 | + enquiry: [0, 3] |
46 | tender: [0, 5] | 46 | tender: [0, 5] |
47 | openua: | 47 | openua: |
48 | tender: [1, 15] | 48 | tender: [1, 15] |
@@ -70,7 +70,10 @@ DZO: | @@ -70,7 +70,10 @@ DZO: | ||
70 | intervals: | 70 | intervals: |
71 | default: | 71 | default: |
72 | enquiry: [0, 20] | 72 | enquiry: [0, 20] |
73 | - tender: [0, 15] | 73 | + tender: [0, 20] |
74 | + openua: | ||
75 | + accelerator: 720 | ||
76 | + tender: [0, 30] | ||
74 | keywords_file: dzo | 77 | keywords_file: dzo |
75 | roles: | 78 | roles: |
76 | tender_owner: DZO_Owner | 79 | tender_owner: DZO_Owner |
@@ -84,11 +87,12 @@ Newtend: | @@ -84,11 +87,12 @@ Newtend: | ||
84 | provider: Newtend_Provider1 | 87 | provider: Newtend_Provider1 |
85 | tender_owner: Newtend_Owner | 88 | tender_owner: Newtend_Owner |
86 | viewer: Newtend_Viewer | 89 | viewer: Newtend_Viewer |
90 | + timeout_on_wait: 60 | ||
87 | PrivatMarket: | 91 | PrivatMarket: |
88 | intervals: | 92 | intervals: |
89 | default: | 93 | default: |
90 | - enquiry: [0, 2] | ||
91 | - tender: [0, 5] | 94 | + enquiry: [0, 15] |
95 | + tender: [0, 15] | ||
92 | keywords_file: privatmarket | 96 | keywords_file: privatmarket |
93 | roles: | 97 | roles: |
94 | provider: PrivatMarket_Provider | 98 | provider: PrivatMarket_Provider |
@@ -109,13 +113,14 @@ Prom: | @@ -109,13 +113,14 @@ Prom: | ||
109 | Publicbid: | 113 | Publicbid: |
110 | intervals: | 114 | intervals: |
111 | default: | 115 | default: |
112 | - enquiry: [21, 15] | ||
113 | - tender: [1, 15] | 116 | + enquiry: [1, 10] |
117 | + tender: [1, 12] | ||
114 | keywords_file: publicbid | 118 | keywords_file: publicbid |
115 | roles: | 119 | roles: |
116 | provider: Publicbid_Provider1 | 120 | provider: Publicbid_Provider1 |
117 | tender_owner: Publicbid_Owner | 121 | tender_owner: Publicbid_Owner |
118 | viewer: Publicbid_Viewer | 122 | viewer: Publicbid_Viewer |
123 | + timeout_on_wait: 120 | ||
119 | PublicPortal: | 124 | PublicPortal: |
120 | keywords_file: publicportal | 125 | keywords_file: publicportal |
121 | roles: | 126 | roles: |
@@ -11,6 +11,9 @@ users: | @@ -11,6 +11,9 @@ users: | ||
11 | Tender_Viewer: | 11 | Tender_Viewer: |
12 | api_key: "" | 12 | api_key: "" |
13 | broker: Quinta | 13 | broker: Quinta |
14 | + browser: firefox | ||
15 | + position: [0, 0] | ||
16 | + size: [1366, 800] | ||
14 | E-tender_Owner: | 17 | E-tender_Owner: |
15 | broker: E-tender | 18 | broker: E-tender |
16 | homepage: "http://bid.uat.e-tender.biz/#/" | 19 | homepage: "http://bid.uat.e-tender.biz/#/" |
@@ -89,7 +92,7 @@ users: | @@ -89,7 +92,7 @@ users: | ||
89 | size: [800, 700] | 92 | size: [800, 700] |
90 | Newtend_Viewer: | 93 | Newtend_Viewer: |
91 | broker: Newtend | 94 | broker: Newtend |
92 | - homepage: "http://openprocurement:test@dev23.newtend.com/opc/tenders" | 95 | + homepage: "http://dev23.newtend.com/opc" |
93 | browser: chrome | 96 | browser: chrome |
94 | position: [800, 400] | 97 | position: [800, 400] |
95 | size: [800, 700] | 98 | size: [800, 700] |
@@ -14,7 +14,7 @@ def create_fake_sentence(): | @@ -14,7 +14,7 @@ def create_fake_sentence(): | ||
14 | return fake.sentence(nb_words=10, variable_nb_words=True) | 14 | return fake.sentence(nb_words=10, variable_nb_words=True) |
15 | 15 | ||
16 | 16 | ||
17 | -def description_with_id(prefix, sentence): | 17 | +def field_with_id(prefix, sentence): |
18 | return "{}-{}: {}".format(prefix, fake.uuid4()[:8], sentence) | 18 | return "{}-{}: {}".format(prefix, fake.uuid4()[:8], sentence) |
19 | 19 | ||
20 | 20 | ||
@@ -57,7 +57,8 @@ def test_tender_data(intervals, periods=("enquiry", "tender")): | @@ -57,7 +57,8 @@ def test_tender_data(intervals, periods=("enquiry", "tender")): | ||
57 | "contactPoint": { | 57 | "contactPoint": { |
58 | "name": fake.name(), | 58 | "name": fake.name(), |
59 | "telephone": fake.phone_number() | 59 | "telephone": fake.phone_number() |
60 | - } | 60 | + }, |
61 | + "kind": "other" | ||
61 | }, | 62 | }, |
62 | "value": { | 63 | "value": { |
63 | "amount": 50000.99, | 64 | "amount": 50000.99, |
@@ -103,7 +104,7 @@ def test_tender_data_limited(intervals, procurement_method_type): | @@ -103,7 +104,7 @@ def test_tender_data_limited(intervals, procurement_method_type): | ||
103 | "id": "55523100-3", | 104 | "id": "55523100-3", |
104 | "scheme": "CPV" | 105 | "scheme": "CPV" |
105 | }, | 106 | }, |
106 | - "description": description_with_id('i', fake.sentence(nb_words=10, variable_nb_words=True)), | 107 | + "description": field_with_id('i', fake.sentence(nb_words=10, variable_nb_words=True)), |
107 | "id": "2dc54675d6364e2baffbc0f8e74432ac", | 108 | "id": "2dc54675d6364e2baffbc0f8e74432ac", |
108 | "deliveryDate": { | 109 | "deliveryDate": { |
109 | "endDate": (now + timedelta(days=5)).isoformat() | 110 | "endDate": (now + timedelta(days=5)).isoformat() |
@@ -123,7 +124,7 @@ def test_tender_data_limited(intervals, procurement_method_type): | @@ -123,7 +124,7 @@ def test_tender_data_limited(intervals, procurement_method_type): | ||
123 | } | 124 | } |
124 | } | 125 | } |
125 | ], | 126 | ], |
126 | - "owner": "test.quintagroup.com", | 127 | + "mode": "test", |
127 | "procurementMethod": "limited", | 128 | "procurementMethod": "limited", |
128 | "procurementMethodType": procurement_method_type, | 129 | "procurementMethodType": procurement_method_type, |
129 | "procuringEntity": | 130 | "procuringEntity": |
@@ -148,7 +149,8 @@ def test_tender_data_limited(intervals, procurement_method_type): | @@ -148,7 +149,8 @@ def test_tender_data_limited(intervals, procurement_method_type): | ||
148 | "legalName": u"Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"", | 149 | "legalName": u"Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"", |
149 | "scheme": u"UA-EDR" | 150 | "scheme": u"UA-EDR" |
150 | }, | 151 | }, |
151 | - "name": u"ЗОСШ #10 м.Вінниці" | 152 | + "name": u"ЗОСШ #10 м.Вінниці", |
153 | + "kind": "general" | ||
152 | }, | 154 | }, |
153 | "value": { | 155 | "value": { |
154 | "amount": 500000, | 156 | "amount": 500000, |
@@ -194,31 +196,25 @@ def test_tender_data_multiple_items(intervals): | @@ -194,31 +196,25 @@ def test_tender_data_multiple_items(intervals): | ||
194 | return t_data | 196 | return t_data |
195 | 197 | ||
196 | 198 | ||
197 | -def test_tender_data_multiple_lots(t_data): | 199 | +def test_tender_data_multiple_lots(intervals): |
200 | + tender = test_tender_data(intervals) | ||
198 | first_lot_id = "3c8f387879de4c38957402dbdb8b31af" | 201 | first_lot_id = "3c8f387879de4c38957402dbdb8b31af" |
199 | - second_lot_id = "bcac8d2ceb5f4227b841a2211f5cb646" | ||
200 | - | ||
201 | - for item in t_data['data']['items'][:-1]: | ||
202 | - item['relatedLot'] = first_lot_id | ||
203 | - t_data['data']['items'][-1]['relatedLot'] = second_lot_id | ||
204 | - t_data['data']['lots'] = [] | ||
205 | - for _ in range(2): | ||
206 | - new_lot = test_lot_data() | ||
207 | - t_data['data']['lots'].append(new_lot) | ||
208 | - t_data['data']['lots'][0]['id'] = first_lot_id | ||
209 | - t_data['data']['lots'][1]['id'] = second_lot_id | ||
210 | - return t_data | 202 | + tender['items'][0]['relatedLot'] = first_lot_id |
203 | + tender['lots'] = [test_lot_data()] | ||
204 | + tender['lots'][0]['id'] = first_lot_id | ||
205 | + return tender | ||
211 | 206 | ||
212 | 207 | ||
213 | -def test_meat_tender_data(tender): | 208 | +def test_tender_data_meat(intervals): |
209 | + tender = munchify(test_tender_data(intervals)) | ||
214 | item_id = "edd0032574bf4402877ad5f362df225a" | 210 | item_id = "edd0032574bf4402877ad5f362df225a" |
215 | - tender.data['items'][0].id = item_id | ||
216 | - tender.data.features = [ | 211 | + tender['items'][0].id = item_id |
212 | + tender.features = [ | ||
217 | { | 213 | { |
218 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | 214 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", |
219 | "featureOf": "tenderer", | 215 | "featureOf": "tenderer", |
220 | - "title": "Термін оплати", | ||
221 | - "description": description_with_id('f', "Умови відстрочки платежу після поставки товару"), | 216 | + "title": field_with_id('f', "Термін оплати"), |
217 | + "description": "Умови відстрочки платежу після поставки товару", | ||
222 | "enum": [ | 218 | "enum": [ |
223 | { | 219 | { |
224 | "value": 0.15, | 220 | "value": 0.15, |
@@ -242,8 +238,8 @@ def test_meat_tender_data(tender): | @@ -242,8 +238,8 @@ def test_meat_tender_data(tender): | ||
242 | "code": "48cfd91612c04125ab406374d7cc8d93", | 238 | "code": "48cfd91612c04125ab406374d7cc8d93", |
243 | "featureOf": "item", | 239 | "featureOf": "item", |
244 | "relatedItem": item_id, | 240 | "relatedItem": item_id, |
245 | - "title": "Сорт", | ||
246 | - "description": description_with_id('f', "Сорт продукції"), | 241 | + "title": field_with_id('f', "Сорт"), |
242 | + "description": "Сорт продукції", | ||
247 | "enum": [ | 243 | "enum": [ |
248 | { | 244 | { |
249 | "value": 0.05, | 245 | "value": 0.05, |
@@ -263,7 +259,7 @@ def test_meat_tender_data(tender): | @@ -263,7 +259,7 @@ def test_meat_tender_data(tender): | ||
263 | return tender | 259 | return tender |
264 | 260 | ||
265 | 261 | ||
266 | -def test_question_data(lot=False): | 262 | +def test_question_data(): |
267 | data = munchify({ | 263 | data = munchify({ |
268 | "data": { | 264 | "data": { |
269 | "author": { | 265 | "author": { |
@@ -287,12 +283,10 @@ def test_question_data(lot=False): | @@ -287,12 +283,10 @@ def test_question_data(lot=False): | ||
287 | }, | 283 | }, |
288 | "name": fake.company() | 284 | "name": fake.company() |
289 | }, | 285 | }, |
290 | - "description": description_with_id('q', fake.sentence(nb_words=10, variable_nb_words=True)), | ||
291 | - "title": fake.sentence(nb_words=6, variable_nb_words=True) | 286 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), |
287 | + "title": field_with_id('q', fake.sentence(nb_words=6, variable_nb_words=True)) | ||
292 | } | 288 | } |
293 | }) | 289 | }) |
294 | - if lot: | ||
295 | - data = test_lot_question_data(data) | ||
296 | return data | 290 | return data |
297 | 291 | ||
298 | 292 | ||
@@ -427,24 +421,6 @@ def test_submit_claim_data(claim_id): | @@ -427,24 +421,6 @@ def test_submit_claim_data(claim_id): | ||
427 | }) | 421 | }) |
428 | 422 | ||
429 | 423 | ||
430 | -def test_additional_items_data(tender_id, access_token): | ||
431 | - return munchify({ | ||
432 | - "access": { | ||
433 | - "token": access_token | ||
434 | - }, | ||
435 | - "data": { | ||
436 | - "id": tender_id, | ||
437 | - "items": [{ | ||
438 | - "unit": { | ||
439 | - "code": "MON", | ||
440 | - "name": "month" | ||
441 | - }, | ||
442 | - "quantity": 9 | ||
443 | - }] | ||
444 | - } | ||
445 | - }) | ||
446 | - | ||
447 | - | ||
448 | def test_complaint_reply_data(): | 424 | def test_complaint_reply_data(): |
449 | return munchify({ | 425 | return munchify({ |
450 | "data": { | 426 | "data": { |
@@ -453,7 +429,7 @@ def test_complaint_reply_data(): | @@ -453,7 +429,7 @@ def test_complaint_reply_data(): | ||
453 | }) | 429 | }) |
454 | 430 | ||
455 | 431 | ||
456 | -def test_bid_data(above_threshold=False): | 432 | +def test_bid_data(mode): |
457 | bid = munchify({ | 433 | bid = munchify({ |
458 | "data": { | 434 | "data": { |
459 | "tenderers": [ | 435 | "tenderers": [ |
@@ -477,23 +453,25 @@ def test_bid_data(above_threshold=False): | @@ -477,23 +453,25 @@ def test_bid_data(above_threshold=False): | ||
477 | }, | 453 | }, |
478 | "name": fake.company() | 454 | "name": fake.company() |
479 | } | 455 | } |
480 | - ], | ||
481 | - "value": { | ||
482 | - "currency": "UAH", | ||
483 | - "amount": 500, | ||
484 | - "valueAddedTaxIncluded": True | ||
485 | - } | 456 | + ] |
486 | } | 457 | } |
487 | }) | 458 | }) |
488 | - if above_threshold: | 459 | + if 'open' in mode: |
489 | bid.data['selfEligible'] = True | 460 | bid.data['selfEligible'] = True |
490 | bid.data['selfQualified'] = True | 461 | bid.data['selfQualified'] = True |
462 | + if mode == 'multiLot': | ||
463 | + bid.data.lotValues = list() | ||
464 | + for _ in range(2): | ||
465 | + bid.data.lotValues.append(test_bid_value()) | ||
466 | + else: | ||
467 | + bid.data.update(test_bid_value()) | ||
468 | + if mode == 'meat': | ||
469 | + bid.update(test_bid_params()) | ||
491 | return bid | 470 | return bid |
492 | 471 | ||
493 | 472 | ||
494 | -def test_bid_data_meat_tender(): | ||
495 | - bid = test_bid_data() | ||
496 | - bid.data.update({ | 473 | +def test_bid_params(): |
474 | + return munchify({ | ||
497 | "parameters": [ | 475 | "parameters": [ |
498 | { | 476 | { |
499 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | 477 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", |
@@ -505,47 +483,15 @@ def test_bid_data_meat_tender(): | @@ -505,47 +483,15 @@ def test_bid_data_meat_tender(): | ||
505 | } | 483 | } |
506 | ] | 484 | ] |
507 | }) | 485 | }) |
508 | - return bid | ||
509 | - | ||
510 | 486 | ||
511 | -def test_lots_bid_data(): | ||
512 | - bid = test_bid_data() | ||
513 | - del bid.data.value | ||
514 | - bid.data.update({ | ||
515 | - "lotValues": [ | ||
516 | - { | ||
517 | - "value": { | ||
518 | - "currency": "UAH", | ||
519 | - "amount": fake.random_int(max=1999), | ||
520 | - "valueAddedTaxIncluded": True | ||
521 | - }, | ||
522 | - "relatedLot": "3c8f387879de4c38957402dbdb8b31af", | ||
523 | - "date": "2015-11-01T12:43:12.482645+02:00" | ||
524 | - }, | ||
525 | - { | 487 | +def test_bid_value(): |
488 | + return munchify({ | ||
526 | "value": { | 489 | "value": { |
527 | "currency": "UAH", | 490 | "currency": "UAH", |
528 | "amount": fake.random_int(max=1999), | 491 | "amount": fake.random_int(max=1999), |
529 | "valueAddedTaxIncluded": True | 492 | "valueAddedTaxIncluded": True |
530 | - }, | ||
531 | - "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
532 | - "date": "2015-11-01T12:43:12.482645+02:00" | ||
533 | - } | ||
534 | - ] | ||
535 | - }) | ||
536 | - return bid | ||
537 | - | ||
538 | - | ||
539 | -def auction_bid(): | ||
540 | - return munchify({ | ||
541 | - "data": { | ||
542 | - "value": { | ||
543 | - "amount": 200, | ||
544 | - "currency": "UAH", | ||
545 | - "valueAddedTaxIncluded": True | ||
546 | - } | ||
547 | - } | ||
548 | - }) | 493 | + } |
494 | + }) | ||
549 | 495 | ||
550 | 496 | ||
551 | def test_supplier_data(): | 497 | def test_supplier_data(): |
@@ -589,8 +535,8 @@ def test_award_data(): | @@ -589,8 +535,8 @@ def test_award_data(): | ||
589 | 535 | ||
590 | def test_item_data(): | 536 | def test_item_data(): |
591 | now = get_now() | 537 | now = get_now() |
592 | - return { | ||
593 | - "description": description_with_id('i', fake.catch_phrase()), | 538 | + return munchify({ |
539 | + "description": field_with_id('i', fake.catch_phrase()), | ||
594 | "deliveryDate": { | 540 | "deliveryDate": { |
595 | "endDate": (now + timedelta(days=5)).isoformat() | 541 | "endDate": (now + timedelta(days=5)).isoformat() |
596 | }, | 542 | }, |
@@ -628,7 +574,7 @@ def test_item_data(): | @@ -628,7 +574,7 @@ def test_item_data(): | ||
628 | "code": u"KGM" | 574 | "code": u"KGM" |
629 | }, | 575 | }, |
630 | "quantity": fake.pyint() | 576 | "quantity": fake.pyint() |
631 | - } | 577 | + }) |
632 | 578 | ||
633 | 579 | ||
634 | def test_invalid_features_data(): | 580 | def test_invalid_features_data(): |
@@ -672,8 +618,8 @@ def test_invalid_features_data(): | @@ -672,8 +618,8 @@ def test_invalid_features_data(): | ||
672 | def test_lot_data(): | 618 | def test_lot_data(): |
673 | return munchify( | 619 | return munchify( |
674 | { | 620 | { |
675 | - "description": description_with_id('l', fake.sentence(nb_words=10, variable_nb_words=True)), | ||
676 | - "title": fake.sentence(nb_words=6, variable_nb_words=True), | 621 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), |
622 | + "title": field_with_id('l', fake.sentence(nb_words=6, variable_nb_words=True)), | ||
677 | "value": { | 623 | "value": { |
678 | "currency": "UAH", | 624 | "currency": "UAH", |
679 | "amount": 2000 + fake.pyfloat(left_digits=4, right_digits=1, positive=True), | 625 | "amount": 2000 + fake.pyfloat(left_digits=4, right_digits=1, positive=True), |
@@ -688,22 +634,19 @@ def test_lot_data(): | @@ -688,22 +634,19 @@ def test_lot_data(): | ||
688 | }) | 634 | }) |
689 | 635 | ||
690 | 636 | ||
691 | -def test_lot_document_data(document, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
692 | - lot_document = {"documentOf": "lot", "relatedItem": lot_id} | ||
693 | - lot_document.update(document.data) | ||
694 | - return munchify({"data": lot_document}) | 637 | +def test_lot_document_data(document, lot_id): |
638 | + document.data.update({"documentOf": "lot", "relatedItem": lot_id}) | ||
639 | + return munchify(document) | ||
695 | 640 | ||
696 | 641 | ||
697 | -def test_lot_question_data(question, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
698 | - lot_question = {"questionOf": "lot", "relatedItem": lot_id} | ||
699 | - lot_question.update(question.data) | ||
700 | - return munchify({"data": lot_question}) | 642 | +def test_lot_question_data(question, lot_id): |
643 | + question.data.update({"questionOf": "lot", "relatedItem": lot_id}) | ||
644 | + return munchify(question) | ||
701 | 645 | ||
702 | 646 | ||
703 | -def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
704 | - lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} | ||
705 | - lot_complaint.update(complaint.data) | ||
706 | - return munchify({"data": lot_complaint}) | 647 | +def test_lot_complaint_data(complaint, lot_id): |
648 | + complaint.data.update({"complaintOf": "lot", "relatedItem": lot_id}) | ||
649 | + return munchify(complaint) | ||
707 | 650 | ||
708 | 651 | ||
709 | def test_tender_data_openua(intervals): | 652 | def test_tender_data_openua(intervals): |
@@ -718,6 +661,7 @@ def test_tender_data_openua(intervals): | @@ -718,6 +661,7 @@ def test_tender_data_openua(intervals): | ||
718 | t_data['procurementMethodType'] = 'aboveThresholdUA' | 661 | t_data['procurementMethodType'] = 'aboveThresholdUA' |
719 | t_data['procurementMethodDetails'] = 'quick, ' \ | 662 | t_data['procurementMethodDetails'] = 'quick, ' \ |
720 | 'accelerator={}'.format(accelerator) | 663 | 'accelerator={}'.format(accelerator) |
664 | + t_data['procuringEntity']['kind'] = 'general' | ||
721 | return t_data | 665 | return t_data |
722 | 666 | ||
723 | 667 | ||
@@ -739,4 +683,5 @@ def test_tender_data_openeu(intervals): | @@ -739,4 +683,5 @@ def test_tender_data_openeu(intervals): | ||
739 | t_data['procuringEntity']['contactPoint']['name_en'] = fake_en.name() | 683 | t_data['procuringEntity']['contactPoint']['name_en'] = fake_en.name() |
740 | t_data['procuringEntity']['contactPoint']['availableLanguage'] = "en" | 684 | t_data['procuringEntity']['contactPoint']['availableLanguage'] = "en" |
741 | t_data['procuringEntity']['identifier']['legalName_en'] = "Institution \"Vinnytsia City Council primary and secondary general school № 10\"" | 685 | t_data['procuringEntity']['identifier']['legalName_en'] = "Institution \"Vinnytsia City Council primary and secondary general school № 10\"" |
686 | + t_data['procuringEntity']['kind'] = 'general' | ||
742 | return t_data | 687 | return t_data |
@@ -54,36 +54,80 @@ Set Suite Variable With Default Value | @@ -54,36 +54,80 @@ Set Suite Variable With Default Value | ||
54 | Завантажуємо дані про користувачів і майданчики | 54 | Завантажуємо дані про користувачів і майданчики |
55 | Log ${broker} | 55 | Log ${broker} |
56 | Log ${role} | 56 | Log ${role} |
57 | + # Suite variable; should be present in every test suite | ||
58 | + # in `*** Variables ***` section | ||
59 | + Log Many @{used_roles} | ||
57 | 60 | ||
61 | + # Load brokers data | ||
58 | ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml | 62 | ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml |
59 | - ${BROKERS}= load_initial_data_from ${file_path} | 63 | + ${BROKERS}= load_data_from ${file_path} mode=brokers |
60 | Log ${BROKERS} | 64 | Log ${BROKERS} |
61 | Set Suite Variable ${BROKERS} | 65 | Set Suite Variable ${BROKERS} |
66 | + # List of currently used brokers | ||
67 | + ${used_brokers}= Create List | ||
62 | 68 | ||
69 | + # Load users data | ||
63 | ${file_path}= Get Variable Value ${USERS_FILE} users.yaml | 70 | ${file_path}= Get Variable Value ${USERS_FILE} users.yaml |
64 | - ${USERS}= load_initial_data_from ${file_path} | ||
65 | - Set Global Variable ${USERS} | ||
66 | - | ||
67 | - Set Suite Variable With Default Value ${role} ${BROKERS['${broker}'].roles.${role}} | ||
68 | - Set Suite Variable With Default Value tender_owner Tender_Owner | ||
69 | - Set Suite Variable With Default Value provider Tender_User | ||
70 | - Set Suite Variable With Default Value provider1 Tender_User1 | ||
71 | - Set Suite Variable With Default Value viewer Tender_Viewer | ||
72 | - ${active_users}= Create Dictionary tender_owner=${tender_owner} provider=${provider} provider1=${provider1} viewer=${viewer} | ||
73 | - | ||
74 | - ${users_list}= Get Dictionary Items ${USERS.users} | ||
75 | - :FOR ${username} ${user_data} IN @{users_list} | ||
76 | - \ Log ${active_users} | ||
77 | - \ Log ${username} | 71 | + ${USERS}= load_data_from ${file_path} |
72 | + Log ${USERS.users} | ||
73 | + Set Suite Variable ${USERS} | ||
74 | + # List of currently used users | ||
75 | + ${used_users}= Create List | ||
76 | + | ||
77 | + # Handle `-v role:something` | ||
78 | + Run Keyword Unless '${role}' in @{used_roles} | ||
79 | + ... Log | ||
80 | + ... Role ${role} is not used in this test suite. | ||
81 | + ... WARN | ||
82 | + Set Suite Variable With Default Value | ||
83 | + ... ${role} | ||
84 | + ... ${BROKERS['${broker}'].roles.${role}} | ||
85 | + | ||
86 | + # Set default value for each role if it is not set yet; | ||
87 | + # fill `used_users`; | ||
88 | + # fill `used_brokers`. | ||
89 | + # | ||
90 | + # Don't even ask how this works! | ||
91 | + :FOR ${tmp_role} IN @{used_roles} | ||
92 | + \ Set Suite Variable With Default Value | ||
93 | + \ ... ${tmp_role} | ||
94 | + \ ... ${BROKERS['Quinta'].roles.${tmp_role}} | ||
95 | + \ Append To List ${used_users} ${${tmp_role}} | ||
96 | + \ Append To List ${used_brokers} ${USERS.users.${${tmp_role}}.broker} | ||
97 | + # Since `@{used_roles}` is already a suite variable, | ||
98 | + # let's make `@{used_brokers}` alike. | ||
99 | + ${used_brokers}= Remove Duplicates ${used_brokers} | ||
100 | + Set Suite Variable ${used_brokers} | ||
101 | + # We need to create two lists since Robot Framework doesn't support | ||
102 | + # dicts in `:FOR` loops. | ||
103 | + Log Many @{used_users} | ||
104 | + Log Many @{used_brokers} | ||
105 | + | ||
106 | + # A list of all users in users file | ||
107 | + ${known_users}= Get Dictionary Keys ${USERS.users} | ||
108 | + | ||
109 | + # Check whether users file contains an entry for each | ||
110 | + # selected user before preparing any clients | ||
111 | + :FOR ${username} IN @{used_users} | ||
112 | + \ List Should Contain Value | ||
113 | + \ ... ${known_users} | ||
114 | + \ ... ${username} | ||
115 | + \ ... msg=User ${username} not found in users file! | ||
116 | + | ||
117 | + # Prepare a client for each user | ||
118 | + :FOR ${username} IN @{used_users} | ||
78 | \ ${munch_dict}= munch_dict data=${True} | 119 | \ ${munch_dict}= munch_dict data=${True} |
79 | - \ Log Many ${munch_dict} | ||
80 | - \ ${status}= Run Keyword And Return Status Dictionary Should Contain Value ${active_users} ${username} | ||
81 | - \ ${keywords_file}= Get Broker Property By Username ${username} keywords_file | ||
82 | - \ Run Keyword If ${status} Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} | ||
83 | - \ Run Keyword If ${status} Викликати для учасника ${username} Підготувати клієнт для користувача | ||
84 | - \ Run Keyword If ${status} Set To Dictionary ${USERS.users['${username}']} tender_data=${munch_dict} | 120 | + \ ${keywords_file}= Get Broker Property ${USERS.users.${username}.broker} keywords_file |
121 | + \ Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} | ||
122 | + \ Run As ${username} Підготувати клієнт для користувача | ||
85 | \ ${LAST_REFRESH_DATE}= Get Current TZdate | 123 | \ ${LAST_REFRESH_DATE}= Get Current TZdate |
86 | - \ Set To Dictionary ${USERS.users['${username}']} LAST_REFRESH_DATE ${LAST_REFRESH_DATE} | 124 | + \ Set To Dictionary ${USERS} ${username}=${USERS.users.${username}} |
125 | + \ Set To Dictionary ${USERS.${username}} tender_data=${munch_dict} | ||
126 | + \ Set To Dictionary ${USERS.${username}} LAST_REFRESH_DATE ${LAST_REFRESH_DATE} | ||
127 | + | ||
128 | + # Drop all unused users | ||
129 | + Keep In Dictionary ${USERS.users} @{used_users} | ||
130 | + Log Many @{USERS} | ||
87 | 131 | ||
88 | 132 | ||
89 | Get Broker Property | 133 | Get Broker Property |
@@ -92,11 +136,9 @@ Get Broker Property | @@ -92,11 +136,9 @@ Get Broker Property | ||
92 | ... This keyword returns a property of specified broker | 136 | ... This keyword returns a property of specified broker |
93 | ... if that property exists, otherwise, it returns a | 137 | ... if that property exists, otherwise, it returns a |
94 | ... default value. | 138 | ... default value. |
95 | - ${status}= Run Keyword And Return Status Should Contain ${BROKERS['${broker_name}']} ${property} | ||
96 | - Return From Keyword If ${status} ${BROKERS['${broker_name}'].${property}} | ||
97 | - # If broker doesn't have that property, fall back to default value | ||
98 | - Should Contain ${BROKERS['Default']} ${property} | ||
99 | - [return] ${BROKERS['Default'].${property}} | 139 | + Run Keyword If '${broker_name}'=='${None}' Fail \${broker_name} is NoneType |
140 | + Should Contain ${BROKERS['${broker_name}']} ${property} | ||
141 | + Return From Keyword ${BROKERS['${broker_name}'].${property}} | ||
100 | 142 | ||
101 | 143 | ||
102 | Get Broker Property By Username | 144 | Get Broker Property By Username |
@@ -115,18 +157,22 @@ Get Broker Property By Username | @@ -115,18 +157,22 @@ Get Broker Property By Username | ||
115 | ... tender_uaid=${TENDER['TENDER_UAID']} | 157 | ... tender_uaid=${TENDER['TENDER_UAID']} |
116 | ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']} | 158 | ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']} |
117 | ... tender_owner=${USERS.users['${tender_owner}'].broker} | 159 | ... tender_owner=${USERS.users['${tender_owner}'].broker} |
160 | + ... mode=${mode} | ||
118 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' | 161 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' |
119 | ... Run Keyword And Ignore Error | 162 | ... Run Keyword And Ignore Error |
120 | ... Set To Dictionary ${artifact} | 163 | ... Set To Dictionary ${artifact} |
121 | ... access_token=${USERS.users['${tender_owner}'].access_token} | 164 | ... access_token=${USERS.users['${tender_owner}'].access_token} |
122 | ... tender_id=${USERS.users['${tender_owner}'].tender_data.data.id} | 165 | ... tender_id=${USERS.users['${tender_owner}'].tender_data.data.id} |
166 | + ${status} ${lots_ids}= Run Keyword And Ignore Error Отримати ідентифікатори об’єктів ${viewer} lots | ||
167 | + Run Keyword If ${status}'=='PASS' | ||
168 | + ... Set To Dictionary ${artifact} lots=${lots_ids} | ||
123 | Log ${artifact} | 169 | Log ${artifact} |
124 | log_object_data ${artifact} artifact update=${True} | 170 | log_object_data ${artifact} artifact update=${True} |
125 | 171 | ||
126 | 172 | ||
127 | Завантажити дані про тендер | 173 | Завантажити дані про тендер |
128 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml | 174 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml |
129 | - ${ARTIFACT}= load_initial_data_from ${file_path} | 175 | + ${ARTIFACT}= load_data_from ${file_path} |
130 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' | 176 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' |
131 | ... Set To Dictionary ${USERS.users['${tender_owner}']} access_token=${ARTIFACT.access_token} | 177 | ... Set To Dictionary ${USERS.users['${tender_owner}']} access_token=${ARTIFACT.access_token} |
132 | ${TENDER}= Create Dictionary | 178 | ${TENDER}= Create Dictionary |
@@ -137,9 +183,7 @@ Get Broker Property By Username | @@ -137,9 +183,7 @@ Get Broker Property By Username | ||
137 | 183 | ||
138 | 184 | ||
139 | Підготовка даних для створення тендера | 185 | Підготовка даних для створення тендера |
140 | - ${custom_intervals}= Get Broker Property By Username ${tender_owner} intervals | ||
141 | - ${default_intervals}= Get Broker Property Default intervals | ||
142 | - ${period_intervals}= merge_dicts ${default_intervals} ${custom_intervals} | 186 | + ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers} |
143 | ${tender_data}= prepare_test_tender_data ${period_intervals} ${mode} | 187 | ${tender_data}= prepare_test_tender_data ${period_intervals} ${mode} |
144 | ${TENDER}= Create Dictionary | 188 | ${TENDER}= Create Dictionary |
145 | Set Global Variable ${TENDER} | 189 | Set Global Variable ${TENDER} |
@@ -148,6 +192,11 @@ Get Broker Property By Username | @@ -148,6 +192,11 @@ Get Broker Property By Username | ||
148 | [return] ${tender_data} | 192 | [return] ${tender_data} |
149 | 193 | ||
150 | 194 | ||
195 | +Підготовка даних для створення предмету закупівлі | ||
196 | + ${item}= test_item_data | ||
197 | + [Return] ${item} | ||
198 | + | ||
199 | + | ||
151 | Підготовка даних для створення лоту | 200 | Підготовка даних для створення лоту |
152 | ${lot}= test_lot_data | 201 | ${lot}= test_lot_data |
153 | ${reply}= Create Dictionary data=${lot} | 202 | ${reply}= Create Dictionary data=${lot} |
@@ -171,8 +220,7 @@ Get Broker Property By Username | @@ -171,8 +220,7 @@ Get Broker Property By Username | ||
171 | 220 | ||
172 | 221 | ||
173 | Підготовка даних для запитання | 222 | Підготовка даних для запитання |
174 | - [Arguments] ${lot}=${False} | ||
175 | - ${question}= test_question_data ${lot} | 223 | + ${question}= test_question_data |
176 | [Return] ${question} | 224 | [Return] ${question} |
177 | 225 | ||
178 | 226 | ||
@@ -182,8 +230,7 @@ Get Broker Property By Username | @@ -182,8 +230,7 @@ Get Broker Property By Username | ||
182 | 230 | ||
183 | 231 | ||
184 | Підготувати дані для подання пропозиції | 232 | Підготувати дані для подання пропозиції |
185 | - [Arguments] ${aboveThreshold}=${False} | ||
186 | - ${supplier_data}= test_bid_data ${aboveThreshold} | 233 | + ${supplier_data}= test_bid_data ${mode} |
187 | [Return] ${supplier_data} | 234 | [Return] ${supplier_data} |
188 | 235 | ||
189 | 236 | ||
@@ -403,13 +450,26 @@ Get Broker Property By Username | @@ -403,13 +450,26 @@ Get Broker Property By Username | ||
403 | Отримати дані із об’єкта тендера | 450 | Отримати дані із об’єкта тендера |
404 | [Arguments] ${username} ${object_id} ${field_name} | 451 | [Arguments] ${username} ${object_id} ${field_name} |
405 | ${object_type}= get_object_type_by_id ${object_id} | 452 | ${object_type}= get_object_type_by_id ${object_id} |
406 | - ${status} ${value}= Run Keyword And Ignore Error Run As ${username} Отримати інформацію із запитання ${object_id} ${field_name} | 453 | + ${status} ${value}= Run Keyword If '${object_type}'=='question' |
454 | + ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із запитання ${object_id} ${field_name} | ||
455 | + ... ELSE IF '${object_type}'=='lots' | ||
456 | + ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із лоту ${object_id} ${field_name} | ||
407 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} | 457 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} |
408 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} | 458 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} |
409 | ... ELSE Run As ${username} Отримати інформацію із тендера ${field} | 459 | ... ELSE Run As ${username} Отримати інформацію із тендера ${field} |
410 | [return] ${field_value} | 460 | [return] ${field_value} |
411 | 461 | ||
412 | 462 | ||
463 | +Отримати ідентифікатори об’єктів | ||
464 | + [Arguments] ${username} ${objects_type} | ||
465 | + @{objects_ids}= Create List | ||
466 | + @{objects}= Get from object ${USERS.users['${username}'].tender_data.data} ${objects_type} | ||
467 | + :FOR ${obj} IN @{objects} | ||
468 | + \ ${obj_id}= get_id_from_object ${obj} | ||
469 | + \ Append To List ${objects_ids} ${obj_id} | ||
470 | + [return] ${objects_ids} | ||
471 | + | ||
472 | + | ||
413 | Викликати для учасника | 473 | Викликати для учасника |
414 | [Arguments] ${username} ${command} @{arguments} | 474 | [Arguments] ${username} ${command} @{arguments} |
415 | Run keyword unless '${WARN_RUN_AS}' == '${True}' | 475 | Run keyword unless '${WARN_RUN_AS}' == '${True}' |
@@ -463,6 +523,20 @@ Require Failure | @@ -463,6 +523,20 @@ Require Failure | ||
463 | Run Keyword If ${sleep} > 0 Sleep ${sleep} | 523 | Run Keyword If ${sleep} > 0 Sleep ${sleep} |
464 | 524 | ||
465 | 525 | ||
526 | +Дочекатись дати початку періоду уточнень | ||
527 | + [Arguments] ${username} | ||
528 | + Log ${username} | ||
529 | + # XXX: HACK: Same as below | ||
530 | + ${status} ${date}= Run Keyword And Ignore Error | ||
531 | + ... Set Variable | ||
532 | + ... ${USERS.users['${username}'].tender_data.data.enquiryPeriod.startDate} | ||
533 | + ${date}= Set Variable If | ||
534 | + ... '${status}' == 'FAIL' | ||
535 | + ... ${USERS.users['${tender_owner}'].initial_data.data.enquiryPeriod.startDate} | ||
536 | + ... ${date} | ||
537 | + Дочекатись дати ${date} | ||
538 | + | ||
539 | + | ||
466 | Дочекатись дати початку прийому пропозицій | 540 | Дочекатись дати початку прийому пропозицій |
467 | [Arguments] ${username} | 541 | [Arguments] ${username} |
468 | Log ${username} | 542 | Log ${username} |
@@ -508,6 +582,11 @@ Require Failure | @@ -508,6 +582,11 @@ Require Failure | ||
508 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.startDate} | 582 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.startDate} |
509 | 583 | ||
510 | 584 | ||
585 | +Відкрити сторінку аукціону для глядача | ||
586 | + ${url}= Run as ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} | ||
587 | + Open browser ${url} ${USERS.users['${viewer}'].browser} | ||
588 | + | ||
589 | + | ||
511 | Дочекатись дати закінчення аукціону | 590 | Дочекатись дати закінчення аукціону |
512 | [Arguments] ${username} | 591 | [Arguments] ${username} |
513 | Log ${username} | 592 | Log ${username} |
@@ -8,17 +8,6 @@ Resource resource.robot | @@ -8,17 +8,6 @@ Resource resource.robot | ||
8 | ############################################################################################## | 8 | ############################################################################################## |
9 | # CANCELLATIONS | 9 | # CANCELLATIONS |
10 | ############################################################################################## | 10 | ############################################################################################## |
11 | -Можливість створити закупівлю для тестування скасування | ||
12 | - ${tender_data}= Підготовка даних для створення тендера | ||
13 | - ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | ||
14 | - ${TENDER_UAID}= Викликати для учасника ${tender_owner} | ||
15 | - ... Створити тендер | ||
16 | - ... ${adapted_data} | ||
17 | - Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | ||
18 | - Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | ||
19 | - Log ${TENDER} | ||
20 | - | ||
21 | - | ||
22 | Можливість скасувати закупівлю | 11 | Можливість скасувати закупівлю |
23 | ${cancellation_data}= Підготувати дані про скасування ${tender_owner} | 12 | ${cancellation_data}= Підготувати дані про скасування ${tender_owner} |
24 | Викликати для учасника ${tender_owner} | 13 | Викликати для учасника ${tender_owner} |
@@ -77,12 +66,6 @@ Resource resource.robot | @@ -77,12 +66,6 @@ Resource resource.robot | ||
77 | ... ${TENDER['TENDER_UAID']} | 66 | ... ${TENDER['TENDER_UAID']} |
78 | 67 | ||
79 | 68 | ||
80 | -Можливість модифікації закупівлі | ||
81 | - Викликати для учасника ${tender_owner} | ||
82 | - ... Модифікувати закупівлю | ||
83 | - ... ${TENDER['TENDER_UAID']} | ||
84 | - | ||
85 | - | ||
86 | Можливість додати документацію до закупівлі | 69 | Можливість додати документацію до закупівлі |
87 | ${filepath}= create_fake_doc | 70 | ${filepath}= create_fake_doc |
88 | Викликати для учасника ${tender_owner} | 71 | Викликати для учасника ${tender_owner} |
@@ -305,27 +288,21 @@ Resource resource.robot | @@ -305,27 +288,21 @@ Resource resource.robot | ||
305 | ... items[${ITEMS_NUM}].description | 288 | ... items[${ITEMS_NUM}].description |
306 | 289 | ||
307 | 290 | ||
308 | -Відображення ідентифікатора номенклатури закупівлі | 291 | +Відображення кількості номенклатури закупівлі |
309 | Звірити поле тендера ${viewer} | 292 | Звірити поле тендера ${viewer} |
310 | ... ${USERS.users['${tender_owner}'].initial_data} | 293 | ... ${USERS.users['${tender_owner}'].initial_data} |
311 | - ... items[${ITEMS_NUM}].id | ||
312 | - | ||
313 | - | ||
314 | -Відображення кількості номенклатури закупівлі | ||
315 | - Звірити поле тендера із значенням ${viewer} | ||
316 | - ... ${USERS.users['${tender_owner}'].additional_items[${ITEMS_NUM}]['quantity']} | ||
317 | ... items[${ITEMS_NUM}].quantity | 294 | ... items[${ITEMS_NUM}].quantity |
318 | 295 | ||
319 | 296 | ||
320 | Відображення назви одиниці номенклатури закупівлі | 297 | Відображення назви одиниці номенклатури закупівлі |
321 | - Звірити поле тендера із значенням ${viewer} | ||
322 | - ... ${USERS.users['${tender_owner}'].additional_items[${ITEMS_NUM}]['unit']['name']} | 298 | + Звірити поле тендера ${viewer} |
299 | + ... ${USERS.users['${tender_owner}'].initial_data} | ||
323 | ... items[${ITEMS_NUM}].unit.name | 300 | ... items[${ITEMS_NUM}].unit.name |
324 | 301 | ||
325 | 302 | ||
326 | Відображення коду одиниці номенклатури закупівлі | 303 | Відображення коду одиниці номенклатури закупівлі |
327 | - Звірити поле тендера із значенням ${viewer} | ||
328 | - ... ${USERS.users['${tender_owner}'].additional_items[${ITEMS_NUM}]['unit']['code']} | 304 | + Звірити поле тендера ${viewer} |
305 | + ... ${USERS.users['${tender_owner}'].initial_data} | ||
329 | ... items[${ITEMS_NUM}].unit.code | 306 | ... items[${ITEMS_NUM}].unit.code |
330 | 307 | ||
331 | 308 |
@@ -10,10 +10,9 @@ Suite Setup Test Suite Setup | @@ -10,10 +10,9 @@ Suite Setup Test Suite Setup | ||
10 | Suite Teardown Test Suite Teardown | 10 | Suite Teardown Test Suite Teardown |
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | -${mode} single | 13 | +${mode} meat |
14 | +@{used_roles} tender_owner provider provider1 viewer | ||
14 | 15 | ||
15 | -${role} viewer | ||
16 | -${broker} Quinta | ||
17 | 16 | ||
18 | *** Test Cases *** | 17 | *** Test Cases *** |
19 | Можливість оголосити однопредметний тендер з неціновим показником | 18 | Можливість оголосити однопредметний тендер з неціновим показником |
@@ -23,8 +22,7 @@ ${broker} Quinta | @@ -23,8 +22,7 @@ ${broker} Quinta | ||
23 | ... minimal | 22 | ... minimal |
24 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), | 23 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), |
25 | [Teardown] Оновити LAST_MODIFICATION_DATE | 24 | [Teardown] Оновити LAST_MODIFICATION_DATE |
26 | - ${base_tender_data}= Підготовка даних для створення тендера | ||
27 | - ${tender_data}= test_meat_tender_data ${base_tender_data} | 25 | + ${tender_data}= Підготовка даних для створення тендера |
28 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | 26 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} |
29 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${adapted_data} | 27 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${adapted_data} |
30 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | 28 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} |
@@ -33,7 +31,7 @@ ${broker} Quinta | @@ -33,7 +31,7 @@ ${broker} Quinta | ||
33 | 31 | ||
34 | 32 | ||
35 | Можливість знайти однопредметний тендер по ідентифікатору | 33 | Можливість знайти однопредметний тендер по ідентифікатору |
36 | - [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 34 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти тендер |
37 | ... viewer tender_owner provider provider1 | 35 | ... viewer tender_owner provider provider1 |
38 | ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | 36 | ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} |
39 | ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | 37 | ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} |
@@ -59,7 +57,7 @@ ${broker} Quinta | @@ -59,7 +57,7 @@ ${broker} Quinta | ||
59 | #Подання пропозицій | 57 | #Подання пропозицій |
60 | 58 | ||
61 | Відображення початку періоду прийому пропозицій оголошеного тендера | 59 | Відображення початку періоду прийому пропозицій оголошеного тендера |
62 | - [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 60 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера |
63 | ... viewer provider provider1 | 61 | ... viewer provider provider1 |
64 | ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} | 62 | ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} |
65 | ... ${USERS.users['${provider1}'].broker} | 63 | ... ${USERS.users['${provider1}'].broker} |
@@ -78,7 +76,7 @@ ${broker} Quinta | @@ -78,7 +76,7 @@ ${broker} Quinta | ||
78 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 76 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
79 | Дочекатись дати початку прийому пропозицій ${provider} | 77 | Дочекатись дати початку прийому пропозицій ${provider} |
80 | sleep 90 | 78 | sleep 90 |
81 | - ${bid}= test bid data | 79 | + ${bid}= test bid data single |
82 | Log ${bid} | 80 | Log ${bid} |
83 | ${failbid}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 81 | ${failbid}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
84 | log ${failbid} | 82 | log ${failbid} |
@@ -89,7 +87,7 @@ ${broker} Quinta | @@ -89,7 +87,7 @@ ${broker} Quinta | ||
89 | ... provider | 87 | ... provider |
90 | ... ${USERS.users['${provider}'].broker} | 88 | ... ${USERS.users['${provider}'].broker} |
91 | [Teardown] Оновити LAST_MODIFICATION_DATE | 89 | [Teardown] Оновити LAST_MODIFICATION_DATE |
92 | - ${bid}= test bid data meat tender | 90 | + ${bid}= Підготувати дані для подання пропозиції |
93 | Log ${bid} | 91 | Log ${bid} |
94 | ${bidresponses}= Create Dictionary | 92 | ${bidresponses}= Create Dictionary |
95 | Set To Dictionary ${bidresponses} bid ${bid} | 93 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -126,7 +124,7 @@ ${broker} Quinta | @@ -126,7 +124,7 @@ ${broker} Quinta | ||
126 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 124 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
127 | [Teardown] Оновити LAST_MODIFICATION_DATE | 125 | [Teardown] Оновити LAST_MODIFICATION_DATE |
128 | Дочекатись дати початку прийому пропозицій ${provider1} | 126 | Дочекатись дати початку прийому пропозицій ${provider1} |
129 | - ${bid}= test bid data meat tender | 127 | + ${bid}= Підготувати дані для подання пропозиції |
130 | Log ${bid} | 128 | Log ${bid} |
131 | ${bidresponses}= Create Dictionary | 129 | ${bidresponses}= Create Dictionary |
132 | Set To Dictionary ${bidresponses} bid ${bid} | 130 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -147,23 +145,105 @@ ${broker} Quinta | @@ -147,23 +145,105 @@ ${broker} Quinta | ||
147 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} | 145 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} |
148 | Отримати дані із тендера ${viewer} auctionPeriod.startDate | 146 | Отримати дані із тендера ${viewer} auctionPeriod.startDate |
149 | 147 | ||
150 | - | ||
151 | -Очікування аукціону | ||
152 | - [Tags] ${USERS.users['${viewer}'].broker}: Очікування аукціону | 148 | +Можливість дочекатися початку аукціону |
149 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися початку аукціону | ||
153 | ... viewer | 150 | ... viewer |
154 | ... ${USERS.users['${viewer}'].broker} | 151 | ... ${USERS.users['${viewer}'].broker} |
155 | Дочекатись дати початку аукціону ${viewer} | 152 | Дочекатись дати початку аукціону ${viewer} |
156 | - sleep 1500 | ||
157 | 153 | ||
154 | +Можливість дочекатися завершення аукціону | ||
155 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися завершення аукціону | ||
156 | + ... viewer | ||
157 | + ... ${USERS.users['${viewer}'].broker} | ||
158 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
159 | + Відкрити сторінку аукціону для глядача | ||
160 | + Wait Until Keyword Succeeds 61 times 30 s Page should contain Аукціон завершився | ||
161 | + Wait Until Keyword Succeeds 5 times 30 s Page should not contain очікуємо розкриття учасників | ||
162 | + Close browser | ||
163 | + | ||
164 | +Відображення дати завершення аукціону | ||
165 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
166 | + ... viewer | ||
167 | + ... ${USERS.users['${viewer}'].broker} | ||
168 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
169 | + Отримати дані із тендера ${viewer} auctionPeriod.endDate | ||
170 | + | ||
171 | +Відображення значення ставки першої пропозиції | ||
172 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
173 | + ... viewer | ||
174 | + ... ${USERS.users['${viewer}'].broker} | ||
175 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
176 | + Отримати дані із тендера ${viewer} bids[0].value.amount | ||
177 | + | ||
178 | +Відображення значення нецінового критерію першої пропозиції | ||
179 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
180 | + ... viewer | ||
181 | + ... ${USERS.users['${viewer}'].broker} | ||
182 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
183 | + Отримати дані із тендера ${viewer} bids[0].parameters | ||
184 | + | ||
185 | +Відображення дати першої пропозиції | ||
186 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
187 | + ... viewer | ||
188 | + ... ${USERS.users['${viewer}'].broker} | ||
189 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
190 | + Отримати дані із тендера ${viewer} bids[0].date | ||
191 | + | ||
192 | +Відображення назви учасника першої пропозиції | ||
193 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
194 | + ... viewer | ||
195 | + ... ${USERS.users['${viewer}'].broker} | ||
196 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
197 | + Отримати дані із тендера ${viewer} bids[0].tenderers[0].name | ||
198 | + | ||
199 | +Відображення значення ставки другої пропозиції | ||
200 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
201 | + ... viewer | ||
202 | + ... ${USERS.users['${viewer}'].broker} | ||
203 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
204 | + Отримати дані із тендера ${viewer} bids[1].value.amount | ||
205 | + | ||
206 | +Відображення значення нецінового критерію другої пропозиції | ||
207 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
208 | + ... viewer | ||
209 | + ... ${USERS.users['${viewer}'].broker} | ||
210 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
211 | + Отримати дані із тендера ${viewer} bids[1].parameters | ||
212 | + | ||
213 | +Відображення дати другої пропозиції | ||
214 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
215 | + ... viewer | ||
216 | + ... ${USERS.users['${viewer}'].broker} | ||
217 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
218 | + Отримати дані із тендера ${viewer} bids[1].date | ||
219 | + | ||
220 | +Відображення назви учасника другої пропозиції | ||
221 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
222 | + ... viewer | ||
223 | + ... ${USERS.users['${viewer}'].broker} | ||
224 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
225 | + Отримати дані із тендера ${viewer} bids[1].tenderers[0].name | ||
226 | + | ||
227 | +Відображення значення ставки пропозиції переможця | ||
228 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення даних про постачальника | ||
229 | + ... viewer | ||
230 | + ... ${USERS.users['${viewer}'].broker} | ||
231 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
232 | + Отримати дані із тендера ${viewer} awards[0].value.amount | ||
233 | + | ||
234 | +Відображення назви переможця | ||
235 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення даних про постачальника | ||
236 | + ... viewer | ||
237 | + ... ${USERS.users['${viewer}'].broker} | ||
238 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
239 | + Отримати дані із тендера ${viewer} awards[0].suppliers[0].name | ||
158 | 240 | ||
159 | Можливість отримати результати аукціону | 241 | Можливість отримати результати аукціону |
160 | [Tags] ${USERS.users['${tender_owner}'].broker}: Результати аукціону | 242 | [Tags] ${USERS.users['${tender_owner}'].broker}: Результати аукціону |
161 | ... tender_owner | 243 | ... tender_owner |
162 | ... ${USERS.users['${tender_owner}'].broker} | 244 | ... ${USERS.users['${tender_owner}'].broker} |
163 | - [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
164 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
165 | - ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
166 | - ${result}= chef ${tender_data.data.bids} ${tender_data.data.features} | ||
167 | - Log Many ${result[0]} ${tender_data.data.awards[0]} | ||
168 | - Log Many ${result[0].id} ${tender_data.data.awards[0].bid_id} | ||
169 | - Should Be Equal ${result[0].id} ${tender_data.data.awards[0].bid_id} | 245 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} |
246 | + ${result}= chef ${USERS.users['${viewer}'].tender_data.data.bids} ${USERS.users['${tender_owner}'].initial_data.data.features} | ||
247 | + Log ${result} | ||
248 | + Should Be Equal ${result[0].tenderers[0].name} ${USERS.users['${viewer}'].tender_data.data.awards[0].suppliers[0].name} | ||
249 | + Should Be Equal ${result[0].value.amount} ${USERS.users['${viewer}'].tender_data.data.awards[0].value.amount} |
@@ -10,10 +10,9 @@ Suite Setup Test Suite Setup | @@ -10,10 +10,9 @@ Suite Setup Test Suite Setup | ||
10 | Suite Teardown Test Suite Teardown | 10 | Suite Teardown Test Suite Teardown |
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | -${mode} multi | 13 | +${mode} multiItem |
14 | +@{used_roles} tender_owner provider provider1 viewer | ||
14 | 15 | ||
15 | -${role} viewer | ||
16 | -${broker} Quinta | ||
17 | 16 | ||
18 | *** Test Cases *** | 17 | *** Test Cases *** |
19 | Можливість оголосити багатопредметний тендер | 18 | Можливість оголосити багатопредметний тендер |
@@ -24,7 +23,7 @@ ${broker} Quinta | @@ -24,7 +23,7 @@ ${broker} Quinta | ||
24 | [Teardown] Оновити LAST_MODIFICATION_DATE | 23 | [Teardown] Оновити LAST_MODIFICATION_DATE |
25 | ${tender_data}= Підготовка даних для створення тендера | 24 | ${tender_data}= Підготовка даних для створення тендера |
26 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | 25 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} |
27 | - ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${adapted_data} | 26 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data} |
28 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | 27 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} |
29 | Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | 28 | Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} |
30 | log ${TENDER} | 29 | log ${TENDER} |
@@ -36,7 +35,7 @@ ${broker} Quinta | @@ -36,7 +35,7 @@ ${broker} Quinta | ||
36 | ... minimal | 35 | ... minimal |
37 | :FOR ${username} IN ${viewer} ${tender_owner} | 36 | :FOR ${username} IN ${viewer} ${tender_owner} |
38 | \ Дочекатись синхронізації з майданчиком ${username} | 37 | \ Дочекатись синхронізації з майданчиком ${username} |
39 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 38 | + \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
40 | 39 | ||
41 | Відображення опису позицій закупівлі багатопредметного тендера | 40 | Відображення опису позицій закупівлі багатопредметного тендера |
42 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 41 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
@@ -163,20 +162,53 @@ ${broker} Quinta | @@ -163,20 +162,53 @@ ${broker} Quinta | ||
163 | ... level2 | 162 | ... level2 |
164 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 163 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
165 | [Teardown] Оновити LAST_MODIFICATION_DATE | 164 | [Teardown] Оновити LAST_MODIFICATION_DATE |
166 | - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | 165 | + Run As ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description |
167 | 166 | ||
168 | -Можливість додати позицію закупівлі в тендер | 167 | +Можливість додати шосту позицію закупівлі в тендер |
169 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 168 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
170 | ... tender_owner | 169 | ... tender_owner |
171 | ... ${USERS.users['${tender_owner}'].broker} | 170 | ... ${USERS.users['${tender_owner}'].broker} |
172 | ... level2 | 171 | ... level2 |
173 | [Teardown] Оновити LAST_MODIFICATION_DATE | 172 | [Teardown] Оновити LAST_MODIFICATION_DATE |
174 | - Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 3 | 173 | + ${item}= Підготовка даних для створення предмету закупівлі |
174 | + Run As ${tender_owner} Додати предмет закупівлі ${TENDER['TENDER_UAID']} ${item} | ||
175 | + ${item_id}= get_id_from_field ${item.description} | ||
176 | + ${item_data}= Create Dictionary item=${item} item_id=${item_id} | ||
177 | + ${item_data}= munch_dict arg=${item_data} | ||
178 | + Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data} | ||
175 | 179 | ||
176 | -Можливість видалити позиції закупівлі тендера | 180 | +Відображення опису нової шостої позиції закупівлі багатопредметного тендера |
181 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
182 | + ... viewer | ||
183 | + ... ${USERS.users['${viewer}'].broker} | ||
184 | + ... level2 | ||
185 | + Звірити поле тендера із значенням ${viewer} ${USERS.users['${tender_owner}'].item_data.item.description} description ${USERS.users['${tender_owner}'].item_data.item_id} | ||
186 | + | ||
187 | +Можливість додати сьому позицію закупівлі в тендер | ||
188 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
189 | + ... tender_owner | ||
190 | + ... ${USERS.users['${tender_owner}'].broker} | ||
191 | + ... level2 | ||
192 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
193 | + ${item}= Підготовка даних для створення предмету закупівлі | ||
194 | + Run As ${tender_owner} Додати предмет закупівлі ${TENDER['TENDER_UAID']} ${item} | ||
195 | + ${item_id}= get_id_from_field ${item.description} | ||
196 | + ${item_data}= Create Dictionary item=${item} item_id=${item_id} | ||
197 | + ${item_data}= munch_dict arg=${item_data} | ||
198 | + Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data} | ||
199 | + | ||
200 | +Відображення опису нової сьомої позиції закупівлі багатопредметного тендера | ||
201 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
202 | + ... viewer | ||
203 | + ... ${USERS.users['${viewer}'].broker} | ||
204 | + ... level2 | ||
205 | + Звірити поле тендера із значенням ${viewer} ${USERS.users['${tender_owner}'].item_data.item.description} description ${USERS.users['${tender_owner}'].item_data.item_id} | ||
206 | + | ||
207 | +Можливість видалити п’яту позицію закупівлі тендера | ||
177 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 208 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
178 | ... tender_owner | 209 | ... tender_owner |
179 | ... ${USERS.users['${tender_owner}'].broker} | 210 | ... ${USERS.users['${tender_owner}'].broker} |
180 | ... level2 | 211 | ... level2 |
181 | [Teardown] Оновити LAST_MODIFICATION_DATE | 212 | [Teardown] Оновити LAST_MODIFICATION_DATE |
182 | - Викликати для учасника ${tender_owner} Відняти предмети закупівлі ${TENDER['TENDER_UAID']} 2 | 213 | + ${item_id}= get_id_from_field ${USERS.users['${tender_owner}'].tender_data.items[4].description} |
214 | + Run As ${tender_owner} Видалити предмет закупівлі ${TENDER['TENDER_UAID']} ${item_id} |
@@ -10,13 +10,11 @@ Suite Setup Test Suite Setup | @@ -10,13 +10,11 @@ Suite Setup Test Suite Setup | ||
10 | Suite Teardown Test Suite Teardown | 10 | Suite Teardown Test Suite Teardown |
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | -${mode} multi | ||
14 | - | ||
15 | -${role} viewer | ||
16 | -${broker} Quinta | ||
17 | - | 13 | +${mode} multiLot |
14 | +@{used_roles} tender_owner provider provider1 viewer | ||
18 | ${complaint_id} 1 | 15 | ${complaint_id} 1 |
19 | 16 | ||
17 | + | ||
20 | *** Test Cases *** | 18 | *** Test Cases *** |
21 | Можливість оголосити мультилотовий тендер | 19 | Можливість оголосити мультилотовий тендер |
22 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер | 20 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер |
@@ -25,13 +23,13 @@ ${complaint_id} 1 | @@ -25,13 +23,13 @@ ${complaint_id} 1 | ||
25 | ... minimal | 23 | ... minimal |
26 | [Teardown] Оновити LAST_MODIFICATION_DATE | 24 | [Teardown] Оновити LAST_MODIFICATION_DATE |
27 | ${tender_data}= Підготовка даних для створення тендера | 25 | ${tender_data}= Підготовка даних для створення тендера |
28 | - ${tender_data}= test_tender_data_multiple_lots ${tender_data} | ||
29 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | 26 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} |
30 | - ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${adapted_data} | 27 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data} |
31 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | 28 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} |
32 | - Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | 29 | + Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
33 | Log ${TENDER} | 30 | Log ${TENDER} |
34 | 31 | ||
32 | + | ||
35 | Можливість знайти мультилотовий тендер по ідентифікатору | 33 | Можливість знайти мультилотовий тендер по ідентифікатору |
36 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 34 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
37 | ... viewer tender_owner provider provider1 | 35 | ... viewer tender_owner provider provider1 |
@@ -40,7 +38,38 @@ ${complaint_id} 1 | @@ -40,7 +38,38 @@ ${complaint_id} 1 | ||
40 | ... minimal | 38 | ... minimal |
41 | :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | 39 | :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} |
42 | \ Дочекатись синхронізації з майданчиком ${username} | 40 | \ Дочекатись синхронізації з майданчиком ${username} |
43 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 41 | + \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
42 | + | ||
43 | +Можливість додати тендерну документацію лоту | ||
44 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
45 | + ... tender_owner | ||
46 | + ... ${USERS.users['${tender_owner}'].broker} | ||
47 | + [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | ||
48 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
49 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
50 | + ${filepath}= create_fake_doc | ||
51 | + Run As ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
52 | + | ||
53 | +Відображення заголовку першого лоту | ||
54 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
55 | + ... viewer tender_owner provider provider1 | ||
56 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
57 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
58 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
59 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
60 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
61 | + \ Звірити поле тендера із значенням ${username} | ||
62 | + \ ... ${USERS.users['${tender_owner}'].initial_data.data.lots[0].title} title | ||
63 | + \ ... object_id=${lot_id} | ||
64 | + | ||
65 | +Відображення опису першого лоту | ||
66 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
67 | + ... viewer | ||
68 | + ... ${USERS.users['${viewer}'].broker} | ||
69 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
70 | + Звірити поле тендера із значенням ${viewer} | ||
71 | + ... ${USERS.users['${tender_owner}'].initial_data.data.lots[0].description} description | ||
72 | + ... object_id=${lot_id} | ||
44 | 73 | ||
45 | ####### | 74 | ####### |
46 | #Операції з лотом | 75 | #Операції з лотом |
@@ -51,81 +80,86 @@ ${complaint_id} 1 | @@ -51,81 +80,86 @@ ${complaint_id} 1 | ||
51 | ... ${USERS.users['${tender_owner}'].broker} | 80 | ... ${USERS.users['${tender_owner}'].broker} |
52 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 81 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
53 | [Teardown] Оновити LAST_MODIFICATION_DATE | 82 | [Teardown] Оновити LAST_MODIFICATION_DATE |
54 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
55 | ${lot}= Підготовка даних для створення лоту | 83 | ${lot}= Підготовка даних для створення лоту |
56 | - ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
57 | - ${lotresponses}= Create Dictionary | ||
58 | - Set To Dictionary ${lotresponses} resp0 ${lotcreate} | ||
59 | - Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
60 | - log ${lotcreate} | 84 | + ${lot_resp}= Run As ${tender_owner} Створити лот ${TENDER['TENDER_UAID']} ${lot} |
85 | + ${lot_id}= get_id_from_object ${lot.data} | ||
86 | + ${lot_data}= Create Dictionary lot=${lot} lot_resp=${lot_resp} lot_id=${lot_id} | ||
87 | + ${lot_data}= munch_dict arg=${lot_data} | ||
88 | + Set To Dictionary ${USERS.users['${tender_owner}']} lot_data=${lot_data} | ||
89 | + log ${lot_resp} | ||
61 | 90 | ||
62 | Можливість видалення лоту | 91 | Можливість видалення лоту |
63 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 92 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
64 | ... tender_owner | 93 | ... tender_owner |
65 | ... ${USERS.users['${tender_owner}'].broker} | 94 | ... ${USERS.users['${tender_owner}'].broker} |
66 | [Teardown] Оновити LAST_MODIFICATION_DATE | 95 | [Teardown] Оновити LAST_MODIFICATION_DATE |
67 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
68 | - ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} | ||
69 | - ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} | ||
70 | - Log ${lotdelete} | 96 | + Run As ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} |
71 | 97 | ||
72 | Можливість повторого створення лоту | 98 | Можливість повторого створення лоту |
73 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 99 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
74 | ... tender_owner | 100 | ... tender_owner |
75 | ... ${USERS.users['${tender_owner}'].broker} | 101 | ... ${USERS.users['${tender_owner}'].broker} |
76 | [Teardown] Оновити LAST_MODIFICATION_DATE | 102 | [Teardown] Оновити LAST_MODIFICATION_DATE |
77 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
78 | ${lot}= Підготовка даних для створення лоту | 103 | ${lot}= Підготовка даних для створення лоту |
79 | - ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
80 | - ${lotresponses}= Create Dictionary | ||
81 | - Set To Dictionary ${lotresponses} resp ${lotcreate} | ||
82 | - Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
83 | - log ${lotcreate} | 104 | + ${lot_resp}= Run As ${tender_owner} Створити лот ${TENDER['TENDER_UAID']} ${lot} |
105 | + ${lot_id}= get_id_from_object ${lot.data} | ||
106 | + ${lot_data}= Create Dictionary lot=${lot} lot_resp=${lot_resp} lot_id=${lot_id} | ||
107 | + ${lot_data}= munch_dict arg=${lot_data} | ||
108 | + Set To Dictionary ${USERS.users['${tender_owner}']} lot_data=${lot_data} | ||
109 | + log ${lot_resp} | ||
110 | + | ||
111 | +Відображення заголовку другого лоту | ||
112 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
113 | + ... viewer tender_owner provider provider1 | ||
114 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
115 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
116 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
117 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
118 | + \ Звірити поле тендера із значенням ${username} | ||
119 | + \ ... ${USERS.users['${tender_owner}'].lot_data.lot.data.title} title | ||
120 | + \ ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
84 | 121 | ||
85 | -Можливість змінити бюджет нового лоту до 8000 | 122 | +Відображення опису другого лоту |
123 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
124 | + ... viewer | ||
125 | + ... ${USERS.users['${viewer}'].broker} | ||
126 | + Звірити поле тендера із значенням ${viewer} | ||
127 | + ... ${USERS.users['${tender_owner}'].lot_data.lot.data.description} description | ||
128 | + ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
129 | + | ||
130 | +Відображення бюджету другого лоту | ||
131 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
132 | + ... viewer | ||
133 | + ... ${USERS.users['${viewer}'].broker} | ||
134 | + Звірити поле тендера із значенням ${viewer} | ||
135 | + ... ${USERS.users['${tender_owner}'].lot_data.lot.data.value.amount} value.amount | ||
136 | + ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
137 | + | ||
138 | +Можливість змінити бюджет другого лоту до 100 | ||
86 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 139 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
87 | ... tender_owner | 140 | ... tender_owner |
88 | ... ${USERS.users['${tender_owner}'].broker} | 141 | ... ${USERS.users['${tender_owner}'].broker} |
89 | [Teardown] Оновити LAST_MODIFICATION_DATE | 142 | [Teardown] Оновити LAST_MODIFICATION_DATE |
90 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
91 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
92 | - ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
93 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto8000resp ${fixlotto8000resp} | ||
94 | - log ${fixlotto8000resp} | 143 | + Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} value.amount 100 |
95 | 144 | ||
96 | -Можливість змінити бюджет нового лоту до 100 | 145 | + |
146 | +Можливість змінити бюджет другого лоту до 8000 | ||
97 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 147 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
98 | ... tender_owner | 148 | ... tender_owner |
99 | ... ${USERS.users['${tender_owner}'].broker} | 149 | ... ${USERS.users['${tender_owner}'].broker} |
100 | [Teardown] Оновити LAST_MODIFICATION_DATE | 150 | [Teardown] Оновити LAST_MODIFICATION_DATE |
101 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
102 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
103 | - ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
104 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto100resp ${fixlotto100resp} | ||
105 | - log ${fixlotto100resp} | ||
106 | - | 151 | + Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} value.amount 8000 |
107 | 152 | ||
108 | ##### | 153 | ##### |
109 | #Предмети закупівлі лоту | 154 | #Предмети закупівлі лоту |
110 | 155 | ||
111 | -Можливість додати позицію закупівлі в тендер | ||
112 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
113 | - ... tender_owner | ||
114 | - ... ${USERS.users['${tender_owner}'].broker} | ||
115 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
116 | - Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 | ||
117 | - | ||
118 | -Можливість добавити предмет закупівлі до лоту | 156 | +Можливість добавити предмет закупівлі до другого лоту |
119 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 157 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
120 | ... tender_owner | 158 | ... tender_owner |
121 | ... ${USERS.users['${tender_owner}'].broker} | 159 | ... ${USERS.users['${tender_owner}'].broker} |
122 | [Teardown] Оновити LAST_MODIFICATION_DATE | 160 | [Teardown] Оновити LAST_MODIFICATION_DATE |
123 | - ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | ||
124 | - Log ${items} | ||
125 | - ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
126 | - Set To Dictionary ${items[-1]} relatedLot ${lot_id} | ||
127 | - Log ${items[-1]} | ||
128 | - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items} | 161 | + ${item}= Підготовка даних для створення предмету закупівлі |
162 | + Run As ${tender_owner} Додати предмет закупівлі в лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} ${item} | ||
129 | 163 | ||
130 | Неможливість видалення лоту з прив’язаними предметами закупівлі | 164 | Неможливість видалення лоту з прив’язаними предметами закупівлі |
131 | [Documentation] | 165 | [Documentation] |
@@ -133,126 +167,47 @@ ${complaint_id} 1 | @@ -133,126 +167,47 @@ ${complaint_id} 1 | ||
133 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 167 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
134 | ... tender_owner | 168 | ... tender_owner |
135 | ... ${USERS.users['${tender_owner}'].broker} | 169 | ... ${USERS.users['${tender_owner}'].broker} |
136 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
137 | - ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
138 | - Require Failure ${tender_owner} Видалити лот ${tender_data} ${lot} | ||
139 | - | ||
140 | -Можливість видалити позиції закупівлі тендера | ||
141 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
142 | - ... tender_owner | ||
143 | - ... ${USERS.users['${tender_owner}'].broker} | ||
144 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
145 | - ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | ||
146 | - Log ${items} | ||
147 | - ${resp}= Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} | ||
148 | - Log ${resp} | ||
149 | - | ||
150 | -Можливість додати тендерну документацію лоту | ||
151 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
152 | - ... tender_owner | ||
153 | - ... ${USERS.users['${tender_owner}'].broker} | ||
154 | - [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | ||
155 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
156 | - ${filepath}= create_fake_doc | ||
157 | - ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
158 | - ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
159 | - ${file_upload_process_data} = Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply} | ||
160 | - log ${file_upload_process_data} | ||
161 | - Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data} | ||
162 | - Log ${lot_id} | ||
163 | - Log ${USERS.users['${tender_owner}']} | 170 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lot_data.lot_id} |
171 | + Require Failure ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${lot_id} | ||
164 | 172 | ||
165 | 173 | ||
166 | ####### | 174 | ####### |
167 | #Запитання до лоту | 175 | #Запитання до лоту |
168 | 176 | ||
169 | -Можливість задати питання | 177 | +Можливість задати питання до лоту |
170 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 178 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
171 | ... provider | 179 | ... provider |
172 | ... ${USERS.users['${provider}'].broker} | 180 | ... ${USERS.users['${provider}'].broker} |
173 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 181 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
174 | [Teardown] Оновити LAST_MODIFICATION_DATE | 182 | [Teardown] Оновити LAST_MODIFICATION_DATE |
183 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
175 | ${question}= Підготовка даних для запитання | 184 | ${question}= Підготовка даних для запитання |
176 | - ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | 185 | + ${question_resp}= Run As ${provider} Задати питання до лоту ${TENDER['TENDER_UAID']} ${lot_id} ${question} |
177 | ${now}= Get Current TZdate | 186 | ${now}= Get Current TZdate |
178 | ${question.data.date}= Set variable ${now} | 187 | ${question.data.date}= Set variable ${now} |
179 | - ${question_id}= get_id_from_field ${question.data.description} | 188 | + ${question_id}= get_id_from_object ${question.data} |
180 | ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} | 189 | ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} |
181 | ${question_data}= munch_dict arg=${question_data} | 190 | ${question_data}= munch_dict arg=${question_data} |
182 | - Set To Dictionary ${USERS.users['${provider}']} question_data ${question_data} | 191 | + Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} |
183 | 192 | ||
184 | 193 | ||
185 | -Можливість відповісти на запитання | 194 | +Можливість відповісти на запитання до лоту |
186 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | 195 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання |
187 | ... tender_owner | 196 | ... tender_owner |
188 | ... ${USERS.users['${tender_owner}'].broker} | 197 | ... ${USERS.users['${tender_owner}'].broker} |
189 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 198 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
190 | [Teardown] Оновити LAST_MODIFICATION_DATE | 199 | [Teardown] Оновити LAST_MODIFICATION_DATE |
191 | ${answer}= Підготовка даних для відповіді на запитання | 200 | ${answer}= Підготовка даних для відповіді на запитання |
192 | - ${answer_resp}= Викликати для учасника ${tender_owner} | 201 | + ${answer_resp}= Run As ${tender_owner} |
193 | ... Відповісти на питання ${TENDER['TENDER_UAID']} | 202 | ... Відповісти на питання ${TENDER['TENDER_UAID']} |
194 | ... ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} | 203 | ... ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} |
195 | ... question_id=${USERS.users['${provider}'].question_data.question_id} | 204 | ... question_id=${USERS.users['${provider}'].question_data.question_id} |
196 | ${now}= Get Current TZdate | 205 | ${now}= Get Current TZdate |
197 | ${answer.data.date}= Set variable ${now} | 206 | ${answer.data.date}= Set variable ${now} |
198 | ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} | 207 | ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} |
199 | - Set To Dictionary ${USERS.users['${provider}']} answer_data ${answer_data} | 208 | + Set To Dictionary ${USERS.users['${provider}']} answer_data=${answer_data} |
200 | 209 | ||
201 | ###### | 210 | ###### |
202 | -#Cкарга на лот | ||
203 | -# | ||
204 | -# | ||
205 | -##### Дочекатися скарг на лот | ||
206 | -# | ||
207 | -# | ||
208 | -#Можливість подати скаргу на лот | ||
209 | -# [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
210 | -# [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
211 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
212 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
213 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
214 | -# | ||
215 | -#Можливість побачити скаргу користувачем | ||
216 | -# [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера | ||
217 | -# Викликати для учасника ${provider} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
218 | -# | ||
219 | -#Можливість побачити скаргу анонімом | ||
220 | -# [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
221 | -# Викликати для учасника ${viewer} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
222 | -# | ||
223 | -#Можливість відхилити скаргу на лот | ||
224 | -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відхилити скаргу на умови | ||
225 | -# Set To Dictionary ${COMPLAINTS[0].data} status declined | ||
226 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${COMPLAINTS[${complaint_id}]} | ||
227 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
228 | -# викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
229 | -# | ||
230 | -#Можливість відкинути скаргу на лот | ||
231 | -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відкинути скаргу на умови | ||
232 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
233 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
234 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
235 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
236 | -# Set To Dictionary ${COMPLAINTS[0].data} status invalid | ||
237 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${COMPLAINTS[${complaint_id}]} | ||
238 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
239 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
240 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
241 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
242 | -# | ||
243 | -#Можливість задовільнити скаргу на лот | ||
244 | -# [Tags] ${USERS.users['${provider}'].broker}: Можливість відповісти на запитання | ||
245 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
246 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
247 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
248 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
249 | -# Set To Dictionary ${COMPLAINTS[0].data} status resolved | ||
250 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 2 ${COMPLAINTS[${complaint_id}]} | ||
251 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
252 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
253 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
254 | -# | ||
255 | -###### | ||
256 | #Подання пропозицій | 211 | #Подання пропозицій |
257 | 212 | ||
258 | Відображення початку періоду прийому пропозицій оголошеного тендера | 213 | Відображення початку періоду прийому пропозицій оголошеного тендера |
@@ -282,14 +237,10 @@ ${complaint_id} 1 | @@ -282,14 +237,10 @@ ${complaint_id} 1 | ||
282 | ... provider | 237 | ... provider |
283 | ... ${USERS.users['${provider}'].broker} | 238 | ... ${USERS.users['${provider}'].broker} |
284 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 239 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
285 | - ${bid}= test lots bid data | ||
286 | - Log ${bid} | ||
287 | - ${bidresponses}= Create Dictionary | ||
288 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
289 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
290 | - ${bid_before_bidperiod_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
291 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | ||
292 | - log ${USERS.users['${provider}']} | 240 | + @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots |
241 | + ${bid}= Підготувати дані для подання пропозиції | ||
242 | + ${bid_before_bidperiod_resp}= Require Failure ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
243 | + log ${bid_before_bidperiod_resp} | ||
293 | 244 | ||
294 | Неможливість подати цінову пропозицію без прив’язки до лоту | 245 | Неможливість подати цінову пропозицію без прив’язки до лоту |
295 | [Documentation] | 246 | [Documentation] |
@@ -299,35 +250,28 @@ ${complaint_id} 1 | @@ -299,35 +250,28 @@ ${complaint_id} 1 | ||
299 | ... ${USERS.users['${provider}'].broker} | 250 | ... ${USERS.users['${provider}'].broker} |
300 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 251 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
301 | Дочекатись дати початку прийому пропозицій ${provider} | 252 | Дочекатись дати початку прийому пропозицій ${provider} |
302 | - ${bid}= test bid data | ||
303 | - Log ${bid} | ||
304 | - ${bidresponses}= Create Dictionary | ||
305 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
306 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 253 | + ${bid}= Підготувати дані для подання пропозиції |
307 | ${no_lot_bid_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 254 | ${no_lot_bid_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
308 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | ||
309 | - log ${USERS.users['${provider}']} | 255 | + log ${no_lot_bid_resp} |
310 | 256 | ||
311 | Можливість подати цінову пропозицію першим учасником | 257 | Можливість подати цінову пропозицію першим учасником |
312 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 258 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
313 | ... provider | 259 | ... provider |
314 | ... ${USERS.users['${provider}'].broker} | 260 | ... ${USERS.users['${provider}'].broker} |
315 | [Teardown] Оновити LAST_MODIFICATION_DATE | 261 | [Teardown] Оновити LAST_MODIFICATION_DATE |
316 | - ${bid}= test lots bid data | ||
317 | - Log ${bid} | ||
318 | - ${bidresponses}= Create Dictionary | ||
319 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
320 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
321 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
322 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
323 | - log ${USERS.users['${provider}']} | 262 | + @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots |
263 | + ${bid}= Підготувати дані для подання пропозиції | ||
264 | + ${bidresponses}= Create Dictionary bid=${bid} | ||
265 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses=${bidresponses} | ||
266 | + ${resp}= Run As ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
267 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp=${resp} | ||
324 | 268 | ||
325 | Можливість скасувати цінову пропозицію | 269 | Можливість скасувати цінову пропозицію |
326 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | 270 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
327 | ... provider | 271 | ... provider |
328 | ... ${USERS.users['${provider}'].broker} | 272 | ... ${USERS.users['${provider}'].broker} |
329 | [Teardown] Оновити LAST_MODIFICATION_DATE | 273 | [Teardown] Оновити LAST_MODIFICATION_DATE |
330 | - ${canceledbidresp}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 274 | + ${canceledbidresp}= Run As ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} |
331 | Log ${canceledbidresp} | 275 | Log ${canceledbidresp} |
332 | 276 | ||
333 | Можливість подати повторно цінову пропозицію першим учасником | 277 | Можливість подати повторно цінову пропозицію першим учасником |
@@ -336,22 +280,19 @@ ${complaint_id} 1 | @@ -336,22 +280,19 @@ ${complaint_id} 1 | ||
336 | ... ${USERS.users['${provider}'].broker} | 280 | ... ${USERS.users['${provider}'].broker} |
337 | [Teardown] Оновити LAST_MODIFICATION_DATE | 281 | [Teardown] Оновити LAST_MODIFICATION_DATE |
338 | Дочекатись дати початку прийому пропозицій ${provider} | 282 | Дочекатись дати початку прийому пропозицій ${provider} |
339 | - ${bid}= test lots bid data | ||
340 | - Log ${bid} | ||
341 | - ${bidresponses}= Create Dictionary | ||
342 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
343 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
344 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
345 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
346 | - log ${USERS.users['${provider}'].bidresponses} | 283 | + @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots |
284 | + ${bid}= Підготувати дані для подання пропозиції | ||
285 | + ${bidresponses}= Create Dictionary bid=${bid} | ||
286 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses=${bidresponses} | ||
287 | + ${resp}= Run As ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
288 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp=${resp} | ||
347 | 289 | ||
348 | Можливість змінити повторну цінову пропозицію до 2000 | 290 | Можливість змінити повторну цінову пропозицію до 2000 |
349 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 291 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
350 | ... provider | 292 | ... provider |
351 | ... ${USERS.users['${provider}'].broker} | 293 | ... ${USERS.users['${provider}'].broker} |
352 | [Teardown] Оновити LAST_MODIFICATION_DATE | 294 | [Teardown] Оновити LAST_MODIFICATION_DATE |
353 | - ${fixbidto2000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | ||
354 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto2000resp ${fixbidto2000resp} | 295 | + ${fixbidto2000resp}= Run As ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 |
355 | log ${fixbidto2000resp} | 296 | log ${fixbidto2000resp} |
356 | 297 | ||
357 | Можливість змінити повторну цінову пропозицію до 10 | 298 | Можливість змінити повторну цінову пропозицію до 10 |
@@ -359,8 +300,7 @@ ${complaint_id} 1 | @@ -359,8 +300,7 @@ ${complaint_id} 1 | ||
359 | ... provider | 300 | ... provider |
360 | ... ${USERS.users['${provider}'].broker} | 301 | ... ${USERS.users['${provider}'].broker} |
361 | [Teardown] Оновити LAST_MODIFICATION_DATE | 302 | [Teardown] Оновити LAST_MODIFICATION_DATE |
362 | - ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 | ||
363 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | 303 | + ${fixbidto10resp}= Run As ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 |
364 | log ${fixbidto10resp} | 304 | log ${fixbidto10resp} |
365 | 305 | ||
366 | Можливість подати цінову пропозицію другим учасником | 306 | Можливість подати цінову пропозицію другим учасником |
@@ -370,15 +310,12 @@ ${complaint_id} 1 | @@ -370,15 +310,12 @@ ${complaint_id} 1 | ||
370 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 310 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
371 | [Teardown] Оновити LAST_MODIFICATION_DATE | 311 | [Teardown] Оновити LAST_MODIFICATION_DATE |
372 | Дочекатись дати початку прийому пропозицій ${provider1} | 312 | Дочекатись дати початку прийому пропозицій ${provider1} |
373 | - ${bid}= test lots bid data | ||
374 | - Log ${bid} | ||
375 | - ${bidresponses}= Create Dictionary | ||
376 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
377 | - Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
378 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
379 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
380 | - log ${resp} | ||
381 | - log ${USERS.users['${provider1}'].bidresponses} | 313 | + @{lots_ids}= Отримати ідентифікатори об’єктів ${provider1} lots |
314 | + ${bid}= Підготувати дані для подання пропозиції | ||
315 | + ${bidresponses}= Create Dictionary bid=${bid} | ||
316 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses=${bidresponses} | ||
317 | + ${resp}= Run As ${provider1} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
318 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp=${resp} | ||
382 | 319 | ||
383 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | 320 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій |
384 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | 321 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
@@ -396,7 +333,6 @@ ${complaint_id} 1 | @@ -396,7 +333,6 @@ ${complaint_id} 1 | ||
396 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 333 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
397 | Дочекатись дати закінчення прийому пропозицій ${provider1} | 334 | Дочекатись дати закінчення прийому пропозицій ${provider1} |
398 | ${failfixbidto2000resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | 335 | ${failfixbidto2000resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 |
399 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto2000resp ${failfixbidto2000resp} | ||
400 | log ${failfixbidto2000resp} | 336 | log ${failfixbidto2000resp} |
401 | 337 | ||
402 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 338 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
@@ -406,7 +342,6 @@ ${complaint_id} 1 | @@ -406,7 +342,6 @@ ${complaint_id} 1 | ||
406 | ... provider1 | 342 | ... provider1 |
407 | ... ${USERS.users['${provider1}'].broker} | 343 | ... ${USERS.users['${provider1}'].broker} |
408 | ${failfixbidto1resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 1 | 344 | ${failfixbidto1resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 1 |
409 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | ||
410 | log ${failfixbidto1resp} | 345 | log ${failfixbidto1resp} |
411 | 346 | ||
412 | Неможливість скасувати цінову пропозицію | 347 | Неможливість скасувати цінову пропозицію |
@@ -416,3 +351,4 @@ ${complaint_id} 1 | @@ -416,3 +351,4 @@ ${complaint_id} 1 | ||
416 | ... provider1 | 351 | ... provider1 |
417 | ... ${USERS.users['${provider1}'].broker} | 352 | ... ${USERS.users['${provider1}'].broker} |
418 | ${biddingresponse}= Require Failure ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 353 | ${biddingresponse}= Require Failure ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} |
354 | + log ${biddingresponse} |
@@ -6,8 +6,7 @@ Suite Teardown Close all browsers | @@ -6,8 +6,7 @@ Suite Teardown Close all browsers | ||
6 | 6 | ||
7 | *** Variables *** | 7 | *** Variables *** |
8 | ${mode} negotiation.quick | 8 | ${mode} negotiation.quick |
9 | -${role} viewer | ||
10 | -${broker} Quinta | 9 | +@{used_roles} tender_owner viewer |
11 | 10 | ||
12 | 11 | ||
13 | *** Test Cases *** | 12 | *** Test Cases *** |
@@ -20,7 +19,7 @@ ${broker} Quinta | @@ -20,7 +19,7 @@ ${broker} Quinta | ||
20 | ... ${USERS.users['${tender_owner}'].broker} | 19 | ... ${USERS.users['${tender_owner}'].broker} |
21 | ... minimal | 20 | ... minimal |
22 | [Teardown] Оновити LAST_MODIFICATION_DATE | 21 | [Teardown] Оновити LAST_MODIFICATION_DATE |
23 | - Можливість створити закупівлю для тестування скасування | 22 | + Можливість створити закупівлю |
24 | 23 | ||
25 | 24 | ||
26 | Можливість скасувати переговорну процедуру за нагальною потребою | 25 | Можливість скасувати переговорну процедуру за нагальною потребою |
@@ -73,24 +72,6 @@ ${broker} Quinta | @@ -73,24 +72,6 @@ ${broker} Quinta | ||
73 | Можливість створити закупівлю | 72 | Можливість створити закупівлю |
74 | 73 | ||
75 | 74 | ||
76 | -Можливість знайти переговорну процедуру за нагальною потребою по ідентифікатору | ||
77 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти процедуру | ||
78 | - ... viewer | ||
79 | - ... ${USERS.users['${viewer}'].broker} | ||
80 | - ... minimal | ||
81 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
82 | - Можливість знайти закупівлю по ідентифікатору | ||
83 | - | ||
84 | - | ||
85 | -Можливість модифікації переговорної процедури за нагальною потребою | ||
86 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість модифікації процедури | ||
87 | - ... tender_owner | ||
88 | - ... ${USERS.users['${tender_owner}'].broker} | ||
89 | - ... level2 | ||
90 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
91 | - Можливість модифікації закупівлі | ||
92 | - | ||
93 | - | ||
94 | Можливість додати документацію до переговорної процедури за нагальною потребою | 75 | Можливість додати документацію до переговорної процедури за нагальною потребою |
95 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість додати документацію до процедури | 76 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість додати документацію до процедури |
96 | ... tender_owner | 77 | ... tender_owner |
@@ -108,6 +89,15 @@ ${broker} Quinta | @@ -108,6 +89,15 @@ ${broker} Quinta | ||
108 | [Teardown] Оновити LAST_MODIFICATION_DATE | 89 | [Teardown] Оновити LAST_MODIFICATION_DATE |
109 | Можливість зареєструвати і підтвердити постачальника до закупівлі | 90 | Можливість зареєструвати і підтвердити постачальника до закупівлі |
110 | 91 | ||
92 | + | ||
93 | +Можливість знайти переговорну процедуру за нагальною потребою по ідентифікатору | ||
94 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти процедуру | ||
95 | + ... viewer | ||
96 | + ... ${USERS.users['${viewer}'].broker} | ||
97 | + ... minimal | ||
98 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
99 | + Можливість знайти закупівлю по ідентифікатору | ||
100 | + | ||
111 | ############################################################################################## | 101 | ############################################################################################## |
112 | # MAIN DATA | 102 | # MAIN DATA |
113 | ############################################################################################## | 103 | ############################################################################################## |
@@ -339,13 +329,6 @@ ${broker} Quinta | @@ -339,13 +329,6 @@ ${broker} Quinta | ||
339 | Відображення опису номенклатури закупівлі | 329 | Відображення опису номенклатури закупівлі |
340 | 330 | ||
341 | 331 | ||
342 | -Відображення ідентифікатора номенклатури переговорної процедури за нагальною потребою | ||
343 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури | ||
344 | - ... viewer | ||
345 | - ... ${USERS.users['${viewer}'].broker} | ||
346 | - Відображення ідентифікатора номенклатури закупівлі | ||
347 | - | ||
348 | - | ||
349 | Відображення кількості номенклатури переговорної процедури за нагальною потребою | 332 | Відображення кількості номенклатури переговорної процедури за нагальною потребою |
350 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури | 333 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури |
351 | ... viewer | 334 | ... viewer |
@@ -6,8 +6,7 @@ Suite Teardown Close all browsers | @@ -6,8 +6,7 @@ Suite Teardown Close all browsers | ||
6 | 6 | ||
7 | *** Variables *** | 7 | *** Variables *** |
8 | ${mode} negotiation | 8 | ${mode} negotiation |
9 | -${role} viewer | ||
10 | -${broker} Quinta | 9 | +@{used_roles} tender_owner viewer |
11 | 10 | ||
12 | 11 | ||
13 | *** Test Cases *** | 12 | *** Test Cases *** |
@@ -20,7 +19,7 @@ ${broker} Quinta | @@ -20,7 +19,7 @@ ${broker} Quinta | ||
20 | ... ${USERS.users['${tender_owner}'].broker} | 19 | ... ${USERS.users['${tender_owner}'].broker} |
21 | ... minimal | 20 | ... minimal |
22 | [Teardown] Оновити LAST_MODIFICATION_DATE | 21 | [Teardown] Оновити LAST_MODIFICATION_DATE |
23 | - Можливість створити закупівлю для тестування скасування | 22 | + Можливість створити закупівлю |
24 | 23 | ||
25 | 24 | ||
26 | Можливість скасувати переговорну процедуру | 25 | Можливість скасувати переговорну процедуру |
@@ -73,24 +72,6 @@ ${broker} Quinta | @@ -73,24 +72,6 @@ ${broker} Quinta | ||
73 | Можливість створити закупівлю | 72 | Можливість створити закупівлю |
74 | 73 | ||
75 | 74 | ||
76 | -Можливість знайти переговорну процедуру по ідентифікатору | ||
77 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти процедуру | ||
78 | - ... viewer | ||
79 | - ... ${USERS.users['${viewer}'].broker} | ||
80 | - ... minimal | ||
81 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
82 | - Можливість знайти закупівлю по ідентифікатору | ||
83 | - | ||
84 | - | ||
85 | -Можливість модифікації переговорної процедури | ||
86 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість модифікації процедури | ||
87 | - ... tender_owner | ||
88 | - ... ${USERS.users['${tender_owner}'].broker} | ||
89 | - ... level2 | ||
90 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
91 | - Можливість модифікації закупівлі | ||
92 | - | ||
93 | - | ||
94 | Можливість додати документацію до переговорної процедури | 75 | Можливість додати документацію до переговорної процедури |
95 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість додати документацію до процедури | 76 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість додати документацію до процедури |
96 | ... tender_owner | 77 | ... tender_owner |
@@ -108,6 +89,15 @@ ${broker} Quinta | @@ -108,6 +89,15 @@ ${broker} Quinta | ||
108 | [Teardown] Оновити LAST_MODIFICATION_DATE | 89 | [Teardown] Оновити LAST_MODIFICATION_DATE |
109 | Можливість зареєструвати і підтвердити постачальника до закупівлі | 90 | Можливість зареєструвати і підтвердити постачальника до закупівлі |
110 | 91 | ||
92 | + | ||
93 | +Можливість знайти переговорну процедуру по ідентифікатору | ||
94 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти процедуру | ||
95 | + ... viewer | ||
96 | + ... ${USERS.users['${viewer}'].broker} | ||
97 | + ... minimal | ||
98 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
99 | + Можливість знайти закупівлю по ідентифікатору | ||
100 | + | ||
111 | ############################################################################################## | 101 | ############################################################################################## |
112 | # MAIN DATA | 102 | # MAIN DATA |
113 | ############################################################################################## | 103 | ############################################################################################## |
@@ -339,13 +329,6 @@ ${broker} Quinta | @@ -339,13 +329,6 @@ ${broker} Quinta | ||
339 | Відображення опису номенклатури закупівлі | 329 | Відображення опису номенклатури закупівлі |
340 | 330 | ||
341 | 331 | ||
342 | -Відображення ідентифікатора номенклатури переговорної процедури | ||
343 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури | ||
344 | - ... viewer | ||
345 | - ... ${USERS.users['${viewer}'].broker} | ||
346 | - Відображення ідентифікатора номенклатури закупівлі | ||
347 | - | ||
348 | - | ||
349 | Відображення кількості номенклатури переговорної процедури | 332 | Відображення кількості номенклатури переговорної процедури |
350 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури | 333 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури |
351 | ... viewer | 334 | ... viewer |
@@ -6,9 +6,7 @@ Suite Teardown Test Suite Teardown | @@ -6,9 +6,7 @@ Suite Teardown Test Suite Teardown | ||
6 | 6 | ||
7 | *** Variables *** | 7 | *** Variables *** |
8 | ${mode} openeu | 8 | ${mode} openeu |
9 | - | ||
10 | -${role} viewer | ||
11 | -${broker} Quinta | 9 | +@{used_roles} tender_owner provider provider1 viewer |
12 | 10 | ||
13 | 11 | ||
14 | *** Test Cases *** | 12 | *** Test Cases *** |
@@ -72,6 +70,7 @@ ${broker} Quinta | @@ -72,6 +70,7 @@ ${broker} Quinta | ||
72 | ... ${USERS.users['${provider}'].broker} | 70 | ... ${USERS.users['${provider}'].broker} |
73 | [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | 71 | [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі |
74 | [Teardown] Оновити LAST_MODIFICATION_DATE | 72 | [Teardown] Оновити LAST_MODIFICATION_DATE |
73 | + Дочекатись дати початку прийому пропозицій ${provider} | ||
75 | ${claim}= Підготовка даних для подання вимоги | 74 | ${claim}= Підготовка даних для подання вимоги |
76 | ${claim_resp}= Викликати для учасника ${provider} | 75 | ${claim_resp}= Викликати для учасника ${provider} |
77 | ... Створити вимогу | 76 | ... Створити вимогу |
@@ -107,7 +106,7 @@ ${broker} Quinta | @@ -107,7 +106,7 @@ ${broker} Quinta | ||
107 | ... provider | 106 | ... provider |
108 | ... ${USERS.users['${provider}'].broker} | 107 | ... ${USERS.users['${provider}'].broker} |
109 | [Teardown] Оновити LAST_MODIFICATION_DATE | 108 | [Teardown] Оновити LAST_MODIFICATION_DATE |
110 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 109 | + ${bid}= Підготувати дані для подання пропозиції |
111 | Log ${bid} | 110 | Log ${bid} |
112 | ${bidresponses}= Create Dictionary | 111 | ${bidresponses}= Create Dictionary |
113 | Set To Dictionary ${bidresponses} bid ${bid} | 112 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -177,7 +176,7 @@ ${broker} Quinta | @@ -177,7 +176,7 @@ ${broker} Quinta | ||
177 | ... provider1 | 176 | ... provider1 |
178 | ... ${USERS.users['${provider1}'].broker} | 177 | ... ${USERS.users['${provider1}'].broker} |
179 | [Teardown] Оновити LAST_MODIFICATION_DATE | 178 | [Teardown] Оновити LAST_MODIFICATION_DATE |
180 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 179 | + ${bid}= Підготувати дані для подання пропозиції |
181 | Log ${bid} | 180 | Log ${bid} |
182 | ${bidresponses}= Create Dictionary | 181 | ${bidresponses}= Create Dictionary |
183 | Set To Dictionary ${bidresponses} bid ${bid} | 182 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -227,7 +226,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -227,7 +226,7 @@ Cкасувати цінову пропозицію другого учасни | ||
227 | ... provider1 | 226 | ... provider1 |
228 | ... ${USERS.users['${provider1}'].broker} | 227 | ... ${USERS.users['${provider1}'].broker} |
229 | [Teardown] Оновити LAST_MODIFICATION_DATE | 228 | [Teardown] Оновити LAST_MODIFICATION_DATE |
230 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 229 | + ${bid}= Підготувати дані для подання пропозиції |
231 | Log ${bid} | 230 | Log ${bid} |
232 | ${bidresponses}= Create Dictionary | 231 | ${bidresponses}= Create Dictionary |
233 | Set To Dictionary ${bidresponses} bid ${bid} | 232 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -349,7 +348,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -349,7 +348,7 @@ Cкасувати цінову пропозицію другого учасни | ||
349 | ... provider1 | 348 | ... provider1 |
350 | ... ${USERS.users['${provider1}'].broker} | 349 | ... ${USERS.users['${provider1}'].broker} |
351 | [Teardown] Оновити LAST_MODIFICATION_DATE | 350 | [Teardown] Оновити LAST_MODIFICATION_DATE |
352 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 351 | + ${bid}= Підготувати дані для подання пропозиції |
353 | Log ${bid} | 352 | Log ${bid} |
354 | ${bidresponses}= Create Dictionary | 353 | ${bidresponses}= Create Dictionary |
355 | Set To Dictionary ${bidresponses} bid ${bid} | 354 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -6,9 +6,7 @@ Suite Teardown Test Suite Teardown | @@ -6,9 +6,7 @@ Suite Teardown Test Suite Teardown | ||
6 | 6 | ||
7 | *** Variables *** | 7 | *** Variables *** |
8 | ${mode} openua | 8 | ${mode} openua |
9 | - | ||
10 | -${role} viewer | ||
11 | -${broker} Quinta | 9 | +@{used_roles} tender_owner provider provider1 viewer |
12 | 10 | ||
13 | 11 | ||
14 | *** Test Cases *** | 12 | *** Test Cases *** |
@@ -64,6 +62,7 @@ ${broker} Quinta | @@ -64,6 +62,7 @@ ${broker} Quinta | ||
64 | ... ${USERS.users['${provider}'].broker} | 62 | ... ${USERS.users['${provider}'].broker} |
65 | [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | 63 | [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі |
66 | [Teardown] Оновити LAST_MODIFICATION_DATE | 64 | [Teardown] Оновити LAST_MODIFICATION_DATE |
65 | + Дочекатись дати початку прийому пропозицій ${provider} | ||
67 | ${claim}= Підготовка даних для подання вимоги | 66 | ${claim}= Підготовка даних для подання вимоги |
68 | ${claim_resp}= Викликати для учасника ${provider} | 67 | ${claim_resp}= Викликати для учасника ${provider} |
69 | ... Створити вимогу | 68 | ... Створити вимогу |
@@ -99,7 +98,7 @@ ${broker} Quinta | @@ -99,7 +98,7 @@ ${broker} Quinta | ||
99 | ... provider | 98 | ... provider |
100 | ... ${USERS.users['${provider}'].broker} | 99 | ... ${USERS.users['${provider}'].broker} |
101 | [Teardown] Оновити LAST_MODIFICATION_DATE | 100 | [Teardown] Оновити LAST_MODIFICATION_DATE |
102 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 101 | + ${bid}= Підготувати дані для подання пропозиції |
103 | Log ${bid} | 102 | Log ${bid} |
104 | ${bidresponses}= Create Dictionary | 103 | ${bidresponses}= Create Dictionary |
105 | Set To Dictionary ${bidresponses} bid ${bid} | 104 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -113,7 +112,7 @@ ${broker} Quinta | @@ -113,7 +112,7 @@ ${broker} Quinta | ||
113 | ... provider1 | 112 | ... provider1 |
114 | ... ${USERS.users['${provider1}'].broker} | 113 | ... ${USERS.users['${provider1}'].broker} |
115 | [Teardown] Оновити LAST_MODIFICATION_DATE | 114 | [Teardown] Оновити LAST_MODIFICATION_DATE |
116 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 115 | + ${bid}= Підготувати дані для подання пропозиції |
117 | Log ${bid} | 116 | Log ${bid} |
118 | ${bidresponses}= Create Dictionary | 117 | ${bidresponses}= Create Dictionary |
119 | Set To Dictionary ${bidresponses} bid ${bid} | 118 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -163,7 +162,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -163,7 +162,7 @@ Cкасувати цінову пропозицію другого учасни | ||
163 | ... provider1 | 162 | ... provider1 |
164 | ... ${USERS.users['${provider1}'].broker} | 163 | ... ${USERS.users['${provider1}'].broker} |
165 | [Teardown] Оновити LAST_MODIFICATION_DATE | 164 | [Teardown] Оновити LAST_MODIFICATION_DATE |
166 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 165 | + ${bid}= Підготувати дані для подання пропозиції |
167 | Log ${bid} | 166 | Log ${bid} |
168 | ${bidresponses}= Create Dictionary | 167 | ${bidresponses}= Create Dictionary |
169 | Set To Dictionary ${bidresponses} bid ${bid} | 168 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -288,7 +287,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -288,7 +287,7 @@ Cкасувати цінову пропозицію другого учасни | ||
288 | ... provider1 | 287 | ... provider1 |
289 | ... ${USERS.users['${provider1}'].broker} | 288 | ... ${USERS.users['${provider1}'].broker} |
290 | [Teardown] Оновити LAST_MODIFICATION_DATE | 289 | [Teardown] Оновити LAST_MODIFICATION_DATE |
291 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 290 | + ${bid}= Підготувати дані для подання пропозиції |
292 | Log ${bid} | 291 | Log ${bid} |
293 | ${bidresponses}= Create Dictionary | 292 | ${bidresponses}= Create Dictionary |
294 | Set To Dictionary ${bidresponses} bid ${bid} | 293 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -5,8 +5,7 @@ Suite Setup Test Suite Setup | @@ -5,8 +5,7 @@ Suite Setup Test Suite Setup | ||
5 | Suite Teardown Test Suite Teardown | 5 | Suite Teardown Test Suite Teardown |
6 | 6 | ||
7 | *** Variables *** | 7 | *** Variables *** |
8 | -${role} viewer | ||
9 | -${broker} Quinta | 8 | +@{used_roles} tender_owner viewer |
10 | 9 | ||
11 | 10 | ||
12 | *** Test Cases *** | 11 | *** Test Cases *** |
@@ -6,8 +6,7 @@ Suite Teardown Close all browsers | @@ -6,8 +6,7 @@ Suite Teardown Close all browsers | ||
6 | 6 | ||
7 | *** Variables *** | 7 | *** Variables *** |
8 | ${mode} reporting | 8 | ${mode} reporting |
9 | -${role} viewer | ||
10 | -${broker} Quinta | 9 | +@{used_roles} tender_owner viewer |
11 | 10 | ||
12 | 11 | ||
13 | *** Test Cases *** | 12 | *** Test Cases *** |
@@ -20,7 +19,7 @@ ${broker} Quinta | @@ -20,7 +19,7 @@ ${broker} Quinta | ||
20 | ... ${USERS.users['${tender_owner}'].broker} | 19 | ... ${USERS.users['${tender_owner}'].broker} |
21 | ... minimal | 20 | ... minimal |
22 | [Teardown] Оновити LAST_MODIFICATION_DATE | 21 | [Teardown] Оновити LAST_MODIFICATION_DATE |
23 | - Можливість створити закупівлю для тестування скасування | 22 | + Можливість створити закупівлю |
24 | 23 | ||
25 | 24 | ||
26 | Можливість скасувати звіт про укладений договір | 25 | Можливість скасувати звіт про укладений договір |
@@ -73,24 +72,6 @@ ${broker} Quinta | @@ -73,24 +72,6 @@ ${broker} Quinta | ||
73 | Можливість створити закупівлю | 72 | Можливість створити закупівлю |
74 | 73 | ||
75 | 74 | ||
76 | -Можливість знайти звіт про укладений договір по ідентифікатору | ||
77 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти процедуру | ||
78 | - ... viewer | ||
79 | - ... ${USERS.users['${viewer}'].broker} | ||
80 | - ... minimal | ||
81 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
82 | - Можливість знайти закупівлю по ідентифікатору | ||
83 | - | ||
84 | - | ||
85 | -Можливість модифікації звіту про укладений договір | ||
86 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість модифікації процедури | ||
87 | - ... tender_owner | ||
88 | - ... ${USERS.users['${tender_owner}'].broker} | ||
89 | - ... level2 | ||
90 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
91 | - Можливість модифікації закупівлі | ||
92 | - | ||
93 | - | ||
94 | Можливість додати документацію до звіту про укладений договір | 75 | Можливість додати документацію до звіту про укладений договір |
95 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість додати документацію до процедури | 76 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість додати документацію до процедури |
96 | ... tender_owner | 77 | ... tender_owner |
@@ -108,6 +89,35 @@ ${broker} Quinta | @@ -108,6 +89,35 @@ ${broker} Quinta | ||
108 | [Teardown] Оновити LAST_MODIFICATION_DATE | 89 | [Teardown] Оновити LAST_MODIFICATION_DATE |
109 | Можливість зареєструвати і підтвердити постачальника до закупівлі | 90 | Можливість зареєструвати і підтвердити постачальника до закупівлі |
110 | 91 | ||
92 | + | ||
93 | +Можливість укласти угоду для звіту про укладений договір | ||
94 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для процедури | ||
95 | + ... ${tender_owner} | ||
96 | + ... ${USERS.users['${tender_owner}'].broker} | ||
97 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
98 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
99 | + Можливість укласти угоду для закупівлі | ||
100 | + | ||
101 | + | ||
102 | +Можливість знайти звіт про укладений договір по ідентифікатору | ||
103 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти процедуру | ||
104 | + ... viewer | ||
105 | + ... ${USERS.users['${viewer}'].broker} | ||
106 | + ... minimal | ||
107 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
108 | + Можливість знайти закупівлю по ідентифікатору | ||
109 | + | ||
110 | +############################################################################################## | ||
111 | +# CONTRACTS | ||
112 | +############################################################################################## | ||
113 | + | ||
114 | +Відображення статусу підписаної угоди з постачальником звіту про укладений договір | ||
115 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення угоди з постачальником процедури | ||
116 | + ... viewer | ||
117 | + ... ${USERS.users['${viewer}'].broker} | ||
118 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
119 | + Відображення статусу підписаної угоди з постачальником закупівлі | ||
120 | + | ||
111 | ############################################################################################## | 121 | ############################################################################################## |
112 | # MAIN DATA | 122 | # MAIN DATA |
113 | ############################################################################################## | 123 | ############################################################################################## |
@@ -325,13 +335,6 @@ ${broker} Quinta | @@ -325,13 +335,6 @@ ${broker} Quinta | ||
325 | Відображення опису номенклатури закупівлі | 335 | Відображення опису номенклатури закупівлі |
326 | 336 | ||
327 | 337 | ||
328 | -Відображення ідентифікатора номенклатури звіту про укладений договір | ||
329 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури | ||
330 | - ... viewer | ||
331 | - ... ${USERS.users['${viewer}'].broker} | ||
332 | - Відображення ідентифікатора номенклатури закупівлі | ||
333 | - | ||
334 | - | ||
335 | Відображення кількості номенклатури звіту про укладений договір | 338 | Відображення кількості номенклатури звіту про укладений договір |
336 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури | 339 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури процедури |
337 | ... viewer | 340 | ... viewer |
@@ -546,23 +549,3 @@ ${broker} Quinta | @@ -546,23 +549,3 @@ ${broker} Quinta | ||
546 | ... viewer | 549 | ... viewer |
547 | ... ${USERS.users['${viewer}'].broker} | 550 | ... ${USERS.users['${viewer}'].broker} |
548 | Відображення вартості номенклатури постачальника закупівлі | 551 | Відображення вартості номенклатури постачальника закупівлі |
549 | - | ||
550 | -############################################################################################## | ||
551 | -# CONTRACTS | ||
552 | -############################################################################################## | ||
553 | - | ||
554 | -Можливість укласти угоду для звіту про укладений договір | ||
555 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для процедури | ||
556 | - ... ${tender_owner} | ||
557 | - ... ${USERS.users['${tender_owner}'].broker} | ||
558 | - [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
559 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
560 | - Можливість укласти угоду для закупівлі | ||
561 | - | ||
562 | - | ||
563 | -Відображення статусу підписаної угоди з постачальником звіту про укладений договір | ||
564 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення угоди з постачальником процедури | ||
565 | - ... viewer | ||
566 | - ... ${USERS.users['${viewer}'].broker} | ||
567 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
568 | - Відображення статусу підписаної угоди з постачальником закупівлі |
@@ -16,13 +16,10 @@ from robot.output.loggerhelper import Message | @@ -16,13 +16,10 @@ from robot.output.loggerhelper import Message | ||
16 | # can access them by simply importing library "service_keywords". | 16 | # can access them by simply importing library "service_keywords". |
17 | # Please ignore the warning given by Flake8 or other linter. | 17 | # Please ignore the warning given by Flake8 or other linter. |
18 | from .initial_data import ( | 18 | from .initial_data import ( |
19 | - auction_bid, | ||
20 | create_fake_doc, | 19 | create_fake_doc, |
21 | create_fake_sentence, | 20 | create_fake_sentence, |
22 | - test_additional_items_data, | ||
23 | test_award_data, | 21 | test_award_data, |
24 | test_bid_data, | 22 | test_bid_data, |
25 | - test_bid_data_meat_tender, | ||
26 | test_cancel_claim_data, | 23 | test_cancel_claim_data, |
27 | test_cancel_tender_data, | 24 | test_cancel_tender_data, |
28 | test_change_cancellation_document_field_data, | 25 | test_change_cancellation_document_field_data, |
@@ -40,14 +37,13 @@ from .initial_data import ( | @@ -40,14 +37,13 @@ from .initial_data import ( | ||
40 | test_lot_data, | 37 | test_lot_data, |
41 | test_lot_document_data, | 38 | test_lot_document_data, |
42 | test_lot_question_data, | 39 | test_lot_question_data, |
43 | - test_lots_bid_data, | ||
44 | - test_meat_tender_data, | ||
45 | test_question_answer_data, | 40 | test_question_answer_data, |
46 | test_question_data, | 41 | test_question_data, |
47 | test_submit_claim_data, | 42 | test_submit_claim_data, |
48 | test_supplier_data, | 43 | test_supplier_data, |
49 | test_tender_data, | 44 | test_tender_data, |
50 | test_tender_data_limited, | 45 | test_tender_data_limited, |
46 | + test_tender_data_meat, | ||
51 | test_tender_data_multiple_items, | 47 | test_tender_data_multiple_items, |
52 | test_tender_data_multiple_lots, | 48 | test_tender_data_multiple_lots, |
53 | test_tender_data_openeu, | 49 | test_tender_data_openeu, |
@@ -142,14 +138,65 @@ def munch_to_object(data, format="yaml"): | @@ -142,14 +138,65 @@ def munch_to_object(data, format="yaml"): | ||
142 | return data.toYAML(allow_unicode=True, default_flow_style=False) | 138 | return data.toYAML(allow_unicode=True, default_flow_style=False) |
143 | 139 | ||
144 | 140 | ||
145 | -def load_initial_data_from(file_name): | 141 | +def load_data_from(file_name, mode=None): |
146 | if not os.path.exists(file_name): | 142 | if not os.path.exists(file_name): |
147 | file_name = os.path.join(os.path.dirname(__file__), 'data', file_name) | 143 | file_name = os.path.join(os.path.dirname(__file__), 'data', file_name) |
148 | with open(file_name) as file_obj: | 144 | with open(file_name) as file_obj: |
149 | if file_name.endswith(".json"): | 145 | if file_name.endswith(".json"): |
150 | - return Munch.fromDict(load(file_obj)) | 146 | + file_data = Munch.fromDict(load(file_obj)) |
151 | elif file_name.endswith(".yaml"): | 147 | elif file_name.endswith(".yaml"): |
152 | - return fromYAML(file_obj) | 148 | + file_data = fromYAML(file_obj) |
149 | + if mode == "brokers": | ||
150 | + default = file_data.pop('Default') | ||
151 | + brokers = {} | ||
152 | + for k, v in file_data.iteritems(): | ||
153 | + brokers[k] = merge_dicts(default, v) | ||
154 | + return brokers | ||
155 | + else: | ||
156 | + return file_data | ||
157 | + | ||
158 | + | ||
159 | +def compute_intrs(brokers_data, used_brokers): | ||
160 | + """Compute optimal values for period intervals. | ||
161 | + | ||
162 | + Notice: This function is maximally effective if ``brokers_data`` | ||
163 | + does not contain ``Default`` entry. | ||
164 | + Using `load_data_from` with ``mode='brokers'`` is recommended. | ||
165 | + """ | ||
166 | + num_types = (int, long, float) | ||
167 | + | ||
168 | + def recur(l, r): | ||
169 | + l, r = deepcopy(l), deepcopy(r) | ||
170 | + if isinstance(l, list) and isinstance(r, list) and len(l) == len(r): | ||
171 | + lst = [] | ||
172 | + for ll, rr in zip(l, r): | ||
173 | + lst.append(recur(ll, rr)) | ||
174 | + return lst | ||
175 | + elif isinstance(l, num_types) and isinstance(r, num_types): | ||
176 | + if l == r: | ||
177 | + return l | ||
178 | + if l > r: | ||
179 | + return l | ||
180 | + if l < r: | ||
181 | + return r | ||
182 | + elif isinstance(l, dict) and isinstance(r, dict): | ||
183 | + for k, v in r.iteritems(): | ||
184 | + if k not in l.keys(): | ||
185 | + l[k] = v | ||
186 | + else: | ||
187 | + l[k] = recur(l[k], v) | ||
188 | + return l | ||
189 | + else: | ||
190 | + raise TypeError("Couldn't recur({0}, {1})".format( | ||
191 | + str(type(l)), str(type(r)))) | ||
192 | + | ||
193 | + intrs = [] | ||
194 | + for i in used_brokers: | ||
195 | + intrs.append(brokers_data[i]['intervals']) | ||
196 | + result = intrs.pop(0) | ||
197 | + for i in intrs: | ||
198 | + result = recur(result, i) | ||
199 | + return result | ||
153 | 200 | ||
154 | 201 | ||
155 | def prepare_test_tender_data(procedure_intervals, mode): | 202 | def prepare_test_tender_data(procedure_intervals, mode): |
@@ -171,20 +218,24 @@ def prepare_test_tender_data(procedure_intervals, mode): | @@ -171,20 +218,24 @@ def prepare_test_tender_data(procedure_intervals, mode): | ||
171 | assert 'accelerator' not in intervals.keys(), \ | 218 | assert 'accelerator' not in intervals.keys(), \ |
172 | "Accelerator is not available for mode '{0}'".format(mode) | 219 | "Accelerator is not available for mode '{0}'".format(mode) |
173 | 220 | ||
174 | - if mode == 'single': | ||
175 | - return munchify({'data': test_tender_data(intervals)}) | ||
176 | - elif mode == 'multi': | 221 | + if mode == 'meat': |
222 | + return munchify({'data': test_tender_data_meat(intervals)}) | ||
223 | + elif mode == 'multiItem': | ||
177 | return munchify({'data': test_tender_data_multiple_items(intervals)}) | 224 | return munchify({'data': test_tender_data_multiple_items(intervals)}) |
178 | - elif mode == 'reporting': | ||
179 | - return munchify({'data': test_tender_data_limited(intervals, 'reporting')}) | 225 | + elif mode == 'multiLot': |
226 | + return munchify({'data': test_tender_data_multiple_lots(intervals)}) | ||
180 | elif mode == 'negotiation': | 227 | elif mode == 'negotiation': |
181 | return munchify({'data': test_tender_data_limited(intervals, 'negotiation')}) | 228 | return munchify({'data': test_tender_data_limited(intervals, 'negotiation')}) |
182 | elif mode == 'negotiation.quick': | 229 | elif mode == 'negotiation.quick': |
183 | return munchify({'data': test_tender_data_limited(intervals, 'negotiation.quick')}) | 230 | return munchify({'data': test_tender_data_limited(intervals, 'negotiation.quick')}) |
184 | - elif mode == 'openua': | ||
185 | - return munchify({'data': test_tender_data_openua(intervals)}) | ||
186 | elif mode == 'openeu': | 231 | elif mode == 'openeu': |
187 | return munchify({'data': test_tender_data_openeu(intervals)}) | 232 | return munchify({'data': test_tender_data_openeu(intervals)}) |
233 | + elif mode == 'openua': | ||
234 | + return munchify({'data': test_tender_data_openua(intervals)}) | ||
235 | + elif mode == 'reporting': | ||
236 | + return munchify({'data': test_tender_data_limited(intervals, 'reporting')}) | ||
237 | + elif mode == 'single': | ||
238 | + return munchify({'data': test_tender_data(intervals)}) | ||
188 | raise ValueError("Invalid mode for prepare_test_tender_data") | 239 | raise ValueError("Invalid mode for prepare_test_tender_data") |
189 | 240 | ||
190 | 241 | ||
@@ -207,14 +258,6 @@ def run_keyword_and_ignore_keyword_definitions(name, *args, **kwargs): | @@ -207,14 +258,6 @@ def run_keyword_and_ignore_keyword_definitions(name, *args, **kwargs): | ||
207 | return status, _ | 258 | return status, _ |
208 | 259 | ||
209 | 260 | ||
210 | -def set_tender_periods(tender): | ||
211 | - now = get_now() | ||
212 | - tender.data.enquiryPeriod.endDate = (now + timedelta(minutes=2)).isoformat() | ||
213 | - tender.data.tenderPeriod.startDate = (now + timedelta(minutes=2)).isoformat() | ||
214 | - tender.data.tenderPeriod.endDate = (now + timedelta(minutes=4)).isoformat() | ||
215 | - return tender | ||
216 | - | ||
217 | - | ||
218 | def set_access_key(tender, access_token): | 261 | def set_access_key(tender, access_token): |
219 | tender.access = munchify({"token": access_token}) | 262 | tender.access = munchify({"token": access_token}) |
220 | return tender | 263 | return tender |
@@ -279,57 +322,6 @@ def create_data_dict(path_to_value=None, value=None): | @@ -279,57 +322,6 @@ def create_data_dict(path_to_value=None, value=None): | ||
279 | return data_dict | 322 | return data_dict |
280 | 323 | ||
281 | 324 | ||
282 | -def cancel_tender(cancellation_reason): | ||
283 | - return { | ||
284 | - 'data': { | ||
285 | - 'reason': cancellation_reason | ||
286 | - } | ||
287 | - } | ||
288 | - | ||
289 | - | ||
290 | -def confirm_supplier(supplier_id): | ||
291 | - return { | ||
292 | - "data": { | ||
293 | - "status": "active", | ||
294 | - "id": supplier_id | ||
295 | - } | ||
296 | - } | ||
297 | - | ||
298 | - | ||
299 | -def change_cancellation_document_field(key, value): | ||
300 | - data = { | ||
301 | - "data": { | ||
302 | - key: value | ||
303 | - } | ||
304 | - } | ||
305 | - return data | ||
306 | - | ||
307 | - | ||
308 | -def confirm_cancellation(cancellation_id): | ||
309 | - data = { | ||
310 | - "data": { | ||
311 | - "status": "active", | ||
312 | - "id": cancellation_id | ||
313 | - } | ||
314 | - } | ||
315 | - return data | ||
316 | - | ||
317 | - | ||
318 | -def confirm_contract(contract_id): | ||
319 | - data = { | ||
320 | - "data": { | ||
321 | - "id": contract_id, | ||
322 | - "status": "active" | ||
323 | - } | ||
324 | - } | ||
325 | - return data | ||
326 | - | ||
327 | - | ||
328 | -def additional_items_data(tender_id, access_token): | ||
329 | - data = {"access": {"token": access_token}, "data": {"id": tender_id, "items": [{"unit": {"code": "MON", "name": "month"}, "quantity": 9}]}} | ||
330 | - return data | ||
331 | - | ||
332 | - | ||
333 | def munch_dict(arg=None, data=False): | 325 | def munch_dict(arg=None, data=False): |
334 | if arg is None: | 326 | if arg is None: |
335 | arg = {} | 327 | arg = {} |
@@ -338,8 +330,11 @@ def munch_dict(arg=None, data=False): | @@ -338,8 +330,11 @@ def munch_dict(arg=None, data=False): | ||
338 | return munchify(arg) | 330 | return munchify(arg) |
339 | 331 | ||
340 | 332 | ||
341 | -def get_id_from_field(field): | ||
342 | - return re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', field).group(1) | 333 | +def get_id_from_object(obj): |
334 | + obj_id = re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', obj['title']) | ||
335 | + if not obj_id: | ||
336 | + obj_id = re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', obj['description']) | ||
337 | + return obj_id.group(1) | ||
343 | 338 | ||
344 | 339 | ||
345 | def get_object_type_by_id(object_id): | 340 | def get_object_type_by_id(object_id): |
@@ -348,12 +343,14 @@ def get_object_type_by_id(object_id): | @@ -348,12 +343,14 @@ def get_object_type_by_id(object_id): | ||
348 | 343 | ||
349 | 344 | ||
350 | def get_object_index_by_id(data, object_id): | 345 | def get_object_index_by_id(data, object_id): |
346 | + if not data: | ||
347 | + return 0 | ||
351 | for index, element in enumerate(data): | 348 | for index, element in enumerate(data): |
352 | - element_id = get_id_from_field(element['description']) | 349 | + element_id = get_id_from_object(element) |
353 | if element_id == object_id: | 350 | if element_id == object_id: |
354 | break | 351 | break |
355 | else: | 352 | else: |
356 | - index = 0 | 353 | + index += 1 |
357 | return index | 354 | return index |
358 | 355 | ||
359 | # GUI Frontends common | 356 | # GUI Frontends common |
@@ -11,9 +11,8 @@ Suite Teardown Test Suite Teardown | @@ -11,9 +11,8 @@ Suite Teardown Test Suite Teardown | ||
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | ${mode} single | 13 | ${mode} single |
14 | +@{used_roles} tender_owner provider provider1 viewer | ||
14 | 15 | ||
15 | -${role} viewer | ||
16 | -${broker} Quinta | ||
17 | 16 | ||
18 | *** Test Cases *** | 17 | *** Test Cases *** |
19 | Можливість оголосити однопредметний тендер | 18 | Можливість оголосити однопредметний тендер |
@@ -329,7 +328,7 @@ ${broker} Quinta | @@ -329,7 +328,7 @@ ${broker} Quinta | ||
329 | ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | 328 | ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} |
330 | ${now}= Get Current TZdate | 329 | ${now}= Get Current TZdate |
331 | ${question.data.date}= Set variable ${now} | 330 | ${question.data.date}= Set variable ${now} |
332 | - ${question_id}= get_id_from_field ${question.data.description} | 331 | + ${question_id}= get_id_from_object ${question.data} |
333 | ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} | 332 | ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} |
334 | ${question_data}= munch_dict arg=${question_data} | 333 | ${question_data}= munch_dict arg=${question_data} |
335 | Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} | 334 | Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} |
@@ -11,8 +11,8 @@ Suite Teardown Test Suite Teardown | @@ -11,8 +11,8 @@ Suite Teardown Test Suite Teardown | ||
11 | 11 | ||
12 | *** Variables *** | 12 | *** Variables *** |
13 | ${mode} single | 13 | ${mode} single |
14 | -${role} viewer | ||
15 | -${broker} Quinta | 14 | +@{used_roles} tender_owner provider viewer |
15 | + | ||
16 | 16 | ||
17 | *** Test Cases *** | 17 | *** Test Cases *** |
18 | Можливість оголосити однопредметний тендер | 18 | Можливість оголосити однопредметний тендер |
Please
register
or
login
to post a comment