Commit f89d6ef3705d57533ae174d1665af91db4c13467
Merge pull request #137 from Leits/lots
Update lots test
Showing
10 changed files
with
262 additions
and
311 deletions
@@ -143,8 +143,8 @@ Library openprocurement_client_helper.py | @@ -143,8 +143,8 @@ Library openprocurement_client_helper.py | ||
143 | Подати цінову пропозицію | 143 | Подати цінову пропозицію |
144 | [Arguments] ${username} ${tender_uaid} ${bid} | 144 | [Arguments] ${username} ${tender_uaid} ${bid} |
145 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 145 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
146 | - ${lots}= Get Variable Value ${tender.data.lots} | ||
147 | - ${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 | ||
148 | ... ELSE Set Variable ${bid} | 148 | ... ELSE Set Variable ${bid} |
149 | Run Keyword If ${lots} | 149 | Run Keyword If ${lots} |
150 | ... Run Keywords | 150 | ... Run Keywords |
@@ -160,7 +160,7 @@ Library openprocurement_client_helper.py | @@ -160,7 +160,7 @@ Library openprocurement_client_helper.py | ||
160 | Змінити цінову пропозицію | 160 | Змінити цінову пропозицію |
161 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | 161 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
162 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 162 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
163 | - ${lots}= Get Variable Value ${tender.data.lots} | 163 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} |
164 | ${fieldname}= Run Keyword If ${lots} Set Variable lotValues.0.${fieldname} | 164 | ${fieldname}= Run Keyword If ${lots} Set Variable lotValues.0.${fieldname} |
165 | ... ELSE Set Variable ${fieldname} | 165 | ... ELSE Set Variable ${fieldname} |
166 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | 166 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} |
@@ -238,7 +238,7 @@ Library openprocurement_client_helper.py | @@ -238,7 +238,7 @@ Library openprocurement_client_helper.py | ||
238 | Отримати посилання на аукціон для глядача | 238 | Отримати посилання на аукціон для глядача |
239 | [Arguments] ${username} ${tender_uaid} | 239 | [Arguments] ${username} ${tender_uaid} |
240 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 240 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
241 | - ${lots}= Get Variable Value ${tender.data.lots} | 241 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} |
242 | ${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} |
243 | ... ELSE Set Variable ${tender.data.auctionUrl} | 243 | ... ELSE Set Variable ${tender.data.auctionUrl} |
244 | [return] ${auctionUrl} | 244 | [return] ${auctionUrl} |
@@ -247,7 +247,7 @@ Library openprocurement_client_helper.py | @@ -247,7 +247,7 @@ Library openprocurement_client_helper.py | ||
247 | Отримати посилання на аукціон для учасника | 247 | Отримати посилання на аукціон для учасника |
248 | [Arguments] ${username} ${tender_uaid} | 248 | [Arguments] ${username} ${tender_uaid} |
249 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | 249 | ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} |
250 | - ${lots}= Get Variable Value ${bid.data.lotValues} | 250 | + ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${bid.data.lotValues} |
251 | ${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} |
252 | ... ELSE Set Variable ${bid.data.participationUrl} | 252 | ... ELSE Set Variable ${bid.data.participationUrl} |
253 | [return] ${participationUrl} | 253 | [return] ${participationUrl} |
@@ -275,50 +275,77 @@ Library openprocurement_client_helper.py | @@ -275,50 +275,77 @@ Library openprocurement_client_helper.py | ||
275 | ############################################################################## | 275 | ############################################################################## |
276 | 276 | ||
277 | Створити лот | 277 | Створити лот |
278 | - [Arguments] ${username} ${tender} ${lot} | ||
279 | - Log ${username} | ||
280 | - Log ${tender} | ||
281 | - Log ${lot} | ||
282 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
283 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} create_lot ${tender} ${lot} | ||
284 | - Log ${tender_lot} | ||
285 | - [return] ${tender_lot} | ||
286 | - #TODO: | ||
287 | - #[Arguments] ${username} ${tender_uaid} ${lot} | ||
288 | - #${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} | ||
289 | 288 | ||
290 | 289 | ||
291 | Змінити лот | 290 | Змінити лот |
292 | - [Arguments] ${username} ${tender} ${lot} | ||
293 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
294 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} patch_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} | 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} | ||
300 | 318 | ||
301 | 319 | ||
302 | Завантажити документ в лот | 320 | Завантажити документ в лот |
303 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} | 321 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} |
304 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 322 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
305 | - ${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} | ||
306 | ${doc}= openprocurement_client.Завантажити документ ${username} ${filepath} ${tender_uaid} | 325 | ${doc}= openprocurement_client.Завантажити документ ${username} ${filepath} ${tender_uaid} |
307 | ${lot_doc}= test_lot_document_data ${doc} ${lot_id} | 326 | ${lot_doc}= test_lot_document_data ${doc} ${lot_id} |
308 | ${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} |
309 | - Log object data ${reply} reply | ||
310 | [return] ${reply} | 328 | [return] ${reply} |
311 | 329 | ||
312 | 330 | ||
313 | Видалити лот | 331 | Видалити лот |
314 | - [Arguments] ${username} ${tender} ${lot} | ||
315 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
316 | - ${tender_lot}= Call Method ${USERS.users['${username}'].client} delete_lot ${tender} ${lot} | ||
317 | - Log ${tender_lot} | ||
318 | - [return] ${tender_lot} | ||
319 | - #TODO: | ||
320 | - #[Arguments] ${username} ${tender_uaid} ${lot} | ||
321 | - #${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} | ||
322 | 349 | ||
323 | ############################################################################## | 350 | ############################################################################## |
324 | # Claims | 351 | # Claims |
@@ -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 | ||
@@ -103,7 +103,7 @@ def test_tender_data_limited(intervals, procurement_method_type): | @@ -103,7 +103,7 @@ def test_tender_data_limited(intervals, procurement_method_type): | ||
103 | "id": "55523100-3", | 103 | "id": "55523100-3", |
104 | "scheme": "CPV" | 104 | "scheme": "CPV" |
105 | }, | 105 | }, |
106 | - "description": description_with_id('i', fake.sentence(nb_words=10, variable_nb_words=True)), | 106 | + "description": field_with_id('i', fake.sentence(nb_words=10, variable_nb_words=True)), |
107 | "id": "2dc54675d6364e2baffbc0f8e74432ac", | 107 | "id": "2dc54675d6364e2baffbc0f8e74432ac", |
108 | "deliveryDate": { | 108 | "deliveryDate": { |
109 | "endDate": (now + timedelta(days=5)).isoformat() | 109 | "endDate": (now + timedelta(days=5)).isoformat() |
@@ -195,19 +195,11 @@ def test_tender_data_multiple_items(intervals): | @@ -195,19 +195,11 @@ def test_tender_data_multiple_items(intervals): | ||
195 | 195 | ||
196 | 196 | ||
197 | def test_tender_data_multiple_lots(intervals): | 197 | def test_tender_data_multiple_lots(intervals): |
198 | - tender = test_tender_data_multiple_items(intervals) | 198 | + tender = test_tender_data(intervals) |
199 | first_lot_id = "3c8f387879de4c38957402dbdb8b31af" | 199 | first_lot_id = "3c8f387879de4c38957402dbdb8b31af" |
200 | - second_lot_id = "bcac8d2ceb5f4227b841a2211f5cb646" | ||
201 | - | ||
202 | - for item in tender['items'][:-1]: | ||
203 | - item['relatedLot'] = first_lot_id | ||
204 | - tender['items'][-1]['relatedLot'] = second_lot_id | ||
205 | - tender['lots'] = [] | ||
206 | - for _ in range(2): | ||
207 | - new_lot = test_lot_data() | ||
208 | - tender['lots'].append(new_lot) | 200 | + tender['items'][0]['relatedLot'] = first_lot_id |
201 | + tender['lots'] = [test_lot_data()] | ||
209 | tender['lots'][0]['id'] = first_lot_id | 202 | tender['lots'][0]['id'] = first_lot_id |
210 | - tender['lots'][1]['id'] = second_lot_id | ||
211 | return tender | 203 | return tender |
212 | 204 | ||
213 | 205 | ||
@@ -219,8 +211,8 @@ def test_tender_data_meat(intervals): | @@ -219,8 +211,8 @@ def test_tender_data_meat(intervals): | ||
219 | { | 211 | { |
220 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | 212 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", |
221 | "featureOf": "tenderer", | 213 | "featureOf": "tenderer", |
222 | - "title": "Термін оплати", | ||
223 | - "description": description_with_id('f', "Умови відстрочки платежу після поставки товару"), | 214 | + "title": field_with_id('f', "Термін оплати"), |
215 | + "description": "Умови відстрочки платежу після поставки товару", | ||
224 | "enum": [ | 216 | "enum": [ |
225 | { | 217 | { |
226 | "value": 0.15, | 218 | "value": 0.15, |
@@ -244,8 +236,8 @@ def test_tender_data_meat(intervals): | @@ -244,8 +236,8 @@ def test_tender_data_meat(intervals): | ||
244 | "code": "48cfd91612c04125ab406374d7cc8d93", | 236 | "code": "48cfd91612c04125ab406374d7cc8d93", |
245 | "featureOf": "item", | 237 | "featureOf": "item", |
246 | "relatedItem": item_id, | 238 | "relatedItem": item_id, |
247 | - "title": "Сорт", | ||
248 | - "description": description_with_id('f', "Сорт продукції"), | 239 | + "title": field_with_id('f', "Сорт"), |
240 | + "description": "Сорт продукції", | ||
249 | "enum": [ | 241 | "enum": [ |
250 | { | 242 | { |
251 | "value": 0.05, | 243 | "value": 0.05, |
@@ -265,7 +257,7 @@ def test_tender_data_meat(intervals): | @@ -265,7 +257,7 @@ def test_tender_data_meat(intervals): | ||
265 | return tender | 257 | return tender |
266 | 258 | ||
267 | 259 | ||
268 | -def test_question_data(lot=False): | 260 | +def test_question_data(): |
269 | data = munchify({ | 261 | data = munchify({ |
270 | "data": { | 262 | "data": { |
271 | "author": { | 263 | "author": { |
@@ -289,12 +281,10 @@ def test_question_data(lot=False): | @@ -289,12 +281,10 @@ def test_question_data(lot=False): | ||
289 | }, | 281 | }, |
290 | "name": fake.company() | 282 | "name": fake.company() |
291 | }, | 283 | }, |
292 | - "description": description_with_id('q', fake.sentence(nb_words=10, variable_nb_words=True)), | ||
293 | - "title": fake.sentence(nb_words=6, variable_nb_words=True) | 284 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), |
285 | + "title": field_with_id('q', fake.sentence(nb_words=6, variable_nb_words=True)) | ||
294 | } | 286 | } |
295 | }) | 287 | }) |
296 | - if lot: | ||
297 | - data = test_lot_question_data(data) | ||
298 | return data | 288 | return data |
299 | 289 | ||
300 | 290 | ||
@@ -437,7 +427,7 @@ def test_complaint_reply_data(): | @@ -437,7 +427,7 @@ def test_complaint_reply_data(): | ||
437 | }) | 427 | }) |
438 | 428 | ||
439 | 429 | ||
440 | -def test_bid_data(above_threshold=False): | 430 | +def test_bid_data(mode): |
441 | bid = munchify({ | 431 | bid = munchify({ |
442 | "data": { | 432 | "data": { |
443 | "tenderers": [ | 433 | "tenderers": [ |
@@ -461,23 +451,25 @@ def test_bid_data(above_threshold=False): | @@ -461,23 +451,25 @@ def test_bid_data(above_threshold=False): | ||
461 | }, | 451 | }, |
462 | "name": fake.company() | 452 | "name": fake.company() |
463 | } | 453 | } |
464 | - ], | ||
465 | - "value": { | ||
466 | - "currency": "UAH", | ||
467 | - "amount": 500, | ||
468 | - "valueAddedTaxIncluded": True | ||
469 | - } | 454 | + ] |
470 | } | 455 | } |
471 | }) | 456 | }) |
472 | - if above_threshold: | 457 | + if 'open' in mode: |
473 | bid.data['selfEligible'] = True | 458 | bid.data['selfEligible'] = True |
474 | bid.data['selfQualified'] = True | 459 | bid.data['selfQualified'] = True |
460 | + if mode == 'multiLot': | ||
461 | + bid.data.lotValues = list() | ||
462 | + for _ in range(2): | ||
463 | + bid.data.lotValues.append(test_bid_value()) | ||
464 | + else: | ||
465 | + bid.data.update(test_bid_value()) | ||
466 | + if mode == 'meat': | ||
467 | + bid.update(test_bid_params()) | ||
475 | return bid | 468 | return bid |
476 | 469 | ||
477 | 470 | ||
478 | -def test_bid_data_meat_tender(): | ||
479 | - bid = test_bid_data() | ||
480 | - bid.data.update({ | 471 | +def test_bid_params(): |
472 | + return munchify({ | ||
481 | "parameters": [ | 473 | "parameters": [ |
482 | { | 474 | { |
483 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | 475 | "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", |
@@ -489,35 +481,15 @@ def test_bid_data_meat_tender(): | @@ -489,35 +481,15 @@ def test_bid_data_meat_tender(): | ||
489 | } | 481 | } |
490 | ] | 482 | ] |
491 | }) | 483 | }) |
492 | - return bid | ||
493 | - | ||
494 | 484 | ||
495 | -def test_lots_bid_data(): | ||
496 | - bid = test_bid_data() | ||
497 | - del bid.data.value | ||
498 | - bid.data.update({ | ||
499 | - "lotValues": [ | ||
500 | - { | ||
501 | - "value": { | ||
502 | - "currency": "UAH", | ||
503 | - "amount": fake.random_int(max=1999), | ||
504 | - "valueAddedTaxIncluded": True | ||
505 | - }, | ||
506 | - "relatedLot": "3c8f387879de4c38957402dbdb8b31af", | ||
507 | - "date": "2015-11-01T12:43:12.482645+02:00" | ||
508 | - }, | ||
509 | - { | 485 | +def test_bid_value(): |
486 | + return munchify({ | ||
510 | "value": { | 487 | "value": { |
511 | "currency": "UAH", | 488 | "currency": "UAH", |
512 | "amount": fake.random_int(max=1999), | 489 | "amount": fake.random_int(max=1999), |
513 | "valueAddedTaxIncluded": True | 490 | "valueAddedTaxIncluded": True |
514 | - }, | ||
515 | - "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
516 | - "date": "2015-11-01T12:43:12.482645+02:00" | ||
517 | - } | ||
518 | - ] | ||
519 | - }) | ||
520 | - return bid | 491 | + } |
492 | + }) | ||
521 | 493 | ||
522 | 494 | ||
523 | def test_supplier_data(): | 495 | def test_supplier_data(): |
@@ -562,7 +534,7 @@ def test_award_data(): | @@ -562,7 +534,7 @@ def test_award_data(): | ||
562 | def test_item_data(): | 534 | def test_item_data(): |
563 | now = get_now() | 535 | now = get_now() |
564 | return munchify({ | 536 | return munchify({ |
565 | - "description": description_with_id('i', fake.catch_phrase()), | 537 | + "description": field_with_id('i', fake.catch_phrase()), |
566 | "deliveryDate": { | 538 | "deliveryDate": { |
567 | "endDate": (now + timedelta(days=5)).isoformat() | 539 | "endDate": (now + timedelta(days=5)).isoformat() |
568 | }, | 540 | }, |
@@ -644,8 +616,8 @@ def test_invalid_features_data(): | @@ -644,8 +616,8 @@ def test_invalid_features_data(): | ||
644 | def test_lot_data(): | 616 | def test_lot_data(): |
645 | return munchify( | 617 | return munchify( |
646 | { | 618 | { |
647 | - "description": description_with_id('l', fake.sentence(nb_words=10, variable_nb_words=True)), | ||
648 | - "title": fake.sentence(nb_words=6, variable_nb_words=True), | 619 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), |
620 | + "title": field_with_id('l', fake.sentence(nb_words=6, variable_nb_words=True)), | ||
649 | "value": { | 621 | "value": { |
650 | "currency": "UAH", | 622 | "currency": "UAH", |
651 | "amount": 2000 + fake.pyfloat(left_digits=4, right_digits=1, positive=True), | 623 | "amount": 2000 + fake.pyfloat(left_digits=4, right_digits=1, positive=True), |
@@ -660,22 +632,19 @@ def test_lot_data(): | @@ -660,22 +632,19 @@ def test_lot_data(): | ||
660 | }) | 632 | }) |
661 | 633 | ||
662 | 634 | ||
663 | -def test_lot_document_data(document, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
664 | - lot_document = {"documentOf": "lot", "relatedItem": lot_id} | ||
665 | - lot_document.update(document.data) | ||
666 | - return munchify({"data": lot_document}) | 635 | +def test_lot_document_data(document, lot_id): |
636 | + document.data.update({"documentOf": "lot", "relatedItem": lot_id}) | ||
637 | + return munchify(document) | ||
667 | 638 | ||
668 | 639 | ||
669 | -def test_lot_question_data(question, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
670 | - lot_question = {"questionOf": "lot", "relatedItem": lot_id} | ||
671 | - lot_question.update(question.data) | ||
672 | - return munchify({"data": lot_question}) | 640 | +def test_lot_question_data(question, lot_id): |
641 | + question.data.update({"questionOf": "lot", "relatedItem": lot_id}) | ||
642 | + return munchify(question) | ||
673 | 643 | ||
674 | 644 | ||
675 | -def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
676 | - lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} | ||
677 | - lot_complaint.update(complaint.data) | ||
678 | - return munchify({"data": lot_complaint}) | 645 | +def test_lot_complaint_data(complaint, lot_id): |
646 | + complaint.data.update({"complaintOf": "lot", "relatedItem": lot_id}) | ||
647 | + return munchify(complaint) | ||
679 | 648 | ||
680 | 649 | ||
681 | def test_tender_data_openua(intervals): | 650 | def test_tender_data_openua(intervals): |
@@ -157,11 +157,15 @@ Get Broker Property By Username | @@ -157,11 +157,15 @@ Get Broker Property By Username | ||
157 | ... tender_uaid=${TENDER['TENDER_UAID']} | 157 | ... tender_uaid=${TENDER['TENDER_UAID']} |
158 | ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']} | 158 | ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']} |
159 | ... tender_owner=${USERS.users['${tender_owner}'].broker} | 159 | ... tender_owner=${USERS.users['${tender_owner}'].broker} |
160 | + ... mode=${mode} | ||
160 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' | 161 | Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' |
161 | ... Run Keyword And Ignore Error | 162 | ... Run Keyword And Ignore Error |
162 | ... Set To Dictionary ${artifact} | 163 | ... Set To Dictionary ${artifact} |
163 | ... access_token=${USERS.users['${tender_owner}'].access_token} | 164 | ... access_token=${USERS.users['${tender_owner}'].access_token} |
164 | ... 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} | ||
165 | Log ${artifact} | 169 | Log ${artifact} |
166 | log_object_data ${artifact} artifact update=${True} | 170 | log_object_data ${artifact} artifact update=${True} |
167 | 171 | ||
@@ -216,8 +220,7 @@ Get Broker Property By Username | @@ -216,8 +220,7 @@ Get Broker Property By Username | ||
216 | 220 | ||
217 | 221 | ||
218 | Підготовка даних для запитання | 222 | Підготовка даних для запитання |
219 | - [Arguments] ${lot}=${False} | ||
220 | - ${question}= test_question_data ${lot} | 223 | + ${question}= test_question_data |
221 | [Return] ${question} | 224 | [Return] ${question} |
222 | 225 | ||
223 | 226 | ||
@@ -227,8 +230,7 @@ Get Broker Property By Username | @@ -227,8 +230,7 @@ Get Broker Property By Username | ||
227 | 230 | ||
228 | 231 | ||
229 | Підготувати дані для подання пропозиції | 232 | Підготувати дані для подання пропозиції |
230 | - [Arguments] ${aboveThreshold}=${False} | ||
231 | - ${supplier_data}= test_bid_data ${aboveThreshold} | 233 | + ${supplier_data}= test_bid_data ${mode} |
232 | [Return] ${supplier_data} | 234 | [Return] ${supplier_data} |
233 | 235 | ||
234 | 236 | ||
@@ -448,13 +450,26 @@ Get Broker Property By Username | @@ -448,13 +450,26 @@ Get Broker Property By Username | ||
448 | Отримати дані із об’єкта тендера | 450 | Отримати дані із об’єкта тендера |
449 | [Arguments] ${username} ${object_id} ${field_name} | 451 | [Arguments] ${username} ${object_id} ${field_name} |
450 | ${object_type}= get_object_type_by_id ${object_id} | 452 | ${object_type}= get_object_type_by_id ${object_id} |
451 | - ${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} | ||
452 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} | 457 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} |
453 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} | 458 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} |
454 | ... ELSE Run As ${username} Отримати інформацію із тендера ${field} | 459 | ... ELSE Run As ${username} Отримати інформацію із тендера ${field} |
455 | [return] ${field_value} | 460 | [return] ${field_value} |
456 | 461 | ||
457 | 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 | + | ||
458 | Викликати для учасника | 473 | Викликати для учасника |
459 | [Arguments] ${username} ${command} @{arguments} | 474 | [Arguments] ${username} ${command} @{arguments} |
460 | Run keyword unless '${WARN_RUN_AS}' == '${True}' | 475 | Run keyword unless '${WARN_RUN_AS}' == '${True}' |
@@ -76,7 +76,7 @@ ${mode} meat | @@ -76,7 +76,7 @@ ${mode} meat | ||
76 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 76 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
77 | Дочекатись дати початку прийому пропозицій ${provider} | 77 | Дочекатись дати початку прийому пропозицій ${provider} |
78 | sleep 90 | 78 | sleep 90 |
79 | - ${bid}= test bid data | 79 | + ${bid}= test bid data single |
80 | Log ${bid} | 80 | Log ${bid} |
81 | ${failbid}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 81 | ${failbid}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
82 | log ${failbid} | 82 | log ${failbid} |
@@ -87,7 +87,7 @@ ${mode} meat | @@ -87,7 +87,7 @@ ${mode} meat | ||
87 | ... provider | 87 | ... provider |
88 | ... ${USERS.users['${provider}'].broker} | 88 | ... ${USERS.users['${provider}'].broker} |
89 | [Teardown] Оновити LAST_MODIFICATION_DATE | 89 | [Teardown] Оновити LAST_MODIFICATION_DATE |
90 | - ${bid}= test bid data meat tender | 90 | + ${bid}= Підготувати дані для подання пропозиції |
91 | Log ${bid} | 91 | Log ${bid} |
92 | ${bidresponses}= Create Dictionary | 92 | ${bidresponses}= Create Dictionary |
93 | Set To Dictionary ${bidresponses} bid ${bid} | 93 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -124,7 +124,7 @@ ${mode} meat | @@ -124,7 +124,7 @@ ${mode} meat | ||
124 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 124 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
125 | [Teardown] Оновити LAST_MODIFICATION_DATE | 125 | [Teardown] Оновити LAST_MODIFICATION_DATE |
126 | Дочекатись дати початку прийому пропозицій ${provider1} | 126 | Дочекатись дати початку прийому пропозицій ${provider1} |
127 | - ${bid}= test bid data meat tender | 127 | + ${bid}= Підготувати дані для подання пропозиції |
128 | Log ${bid} | 128 | Log ${bid} |
129 | ${bidresponses}= Create Dictionary | 129 | ${bidresponses}= Create Dictionary |
130 | Set To Dictionary ${bidresponses} bid ${bid} | 130 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -24,11 +24,12 @@ ${complaint_id} 1 | @@ -24,11 +24,12 @@ ${complaint_id} 1 | ||
24 | [Teardown] Оновити LAST_MODIFICATION_DATE | 24 | [Teardown] Оновити LAST_MODIFICATION_DATE |
25 | ${tender_data}= Підготовка даних для створення тендера | 25 | ${tender_data}= Підготовка даних для створення тендера |
26 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | 26 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} |
27 | - ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${adapted_data} | 27 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data} |
28 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | 28 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} |
29 | - Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | 29 | + Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
30 | Log ${TENDER} | 30 | Log ${TENDER} |
31 | 31 | ||
32 | + | ||
32 | Можливість знайти мультилотовий тендер по ідентифікатору | 33 | Можливість знайти мультилотовий тендер по ідентифікатору |
33 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 34 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
34 | ... viewer tender_owner provider provider1 | 35 | ... viewer tender_owner provider provider1 |
@@ -37,7 +38,38 @@ ${complaint_id} 1 | @@ -37,7 +38,38 @@ ${complaint_id} 1 | ||
37 | ... minimal | 38 | ... minimal |
38 | :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | 39 | :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} |
39 | \ Дочекатись синхронізації з майданчиком ${username} | 40 | \ Дочекатись синхронізації з майданчиком ${username} |
40 | - \ Викликати для учасника ${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} | ||
41 | 73 | ||
42 | ####### | 74 | ####### |
43 | #Операції з лотом | 75 | #Операції з лотом |
@@ -48,81 +80,86 @@ ${complaint_id} 1 | @@ -48,81 +80,86 @@ ${complaint_id} 1 | ||
48 | ... ${USERS.users['${tender_owner}'].broker} | 80 | ... ${USERS.users['${tender_owner}'].broker} |
49 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 81 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
50 | [Teardown] Оновити LAST_MODIFICATION_DATE | 82 | [Teardown] Оновити LAST_MODIFICATION_DATE |
51 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
52 | ${lot}= Підготовка даних для створення лоту | 83 | ${lot}= Підготовка даних для створення лоту |
53 | - ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
54 | - ${lotresponses}= Create Dictionary | ||
55 | - Set To Dictionary ${lotresponses} resp0 ${lotcreate} | ||
56 | - Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
57 | - 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} | ||
58 | 90 | ||
59 | Можливість видалення лоту | 91 | Можливість видалення лоту |
60 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 92 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
61 | ... tender_owner | 93 | ... tender_owner |
62 | ... ${USERS.users['${tender_owner}'].broker} | 94 | ... ${USERS.users['${tender_owner}'].broker} |
63 | [Teardown] Оновити LAST_MODIFICATION_DATE | 95 | [Teardown] Оновити LAST_MODIFICATION_DATE |
64 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
65 | - ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} | ||
66 | - ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} | ||
67 | - Log ${lotdelete} | 96 | + Run As ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} |
68 | 97 | ||
69 | Можливість повторого створення лоту | 98 | Можливість повторого створення лоту |
70 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 99 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
71 | ... tender_owner | 100 | ... tender_owner |
72 | ... ${USERS.users['${tender_owner}'].broker} | 101 | ... ${USERS.users['${tender_owner}'].broker} |
73 | [Teardown] Оновити LAST_MODIFICATION_DATE | 102 | [Teardown] Оновити LAST_MODIFICATION_DATE |
74 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
75 | ${lot}= Підготовка даних для створення лоту | 103 | ${lot}= Підготовка даних для створення лоту |
76 | - ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
77 | - ${lotresponses}= Create Dictionary | ||
78 | - Set To Dictionary ${lotresponses} resp ${lotcreate} | ||
79 | - Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
80 | - 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} | ||
81 | 121 | ||
82 | -Можливість змінити бюджет нового лоту до 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 | ||
83 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 139 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
84 | ... tender_owner | 140 | ... tender_owner |
85 | ... ${USERS.users['${tender_owner}'].broker} | 141 | ... ${USERS.users['${tender_owner}'].broker} |
86 | [Teardown] Оновити LAST_MODIFICATION_DATE | 142 | [Teardown] Оновити LAST_MODIFICATION_DATE |
87 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
88 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
89 | - ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
90 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto8000resp ${fixlotto8000resp} | ||
91 | - log ${fixlotto8000resp} | 143 | + Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} value.amount 100 |
144 | + | ||
92 | 145 | ||
93 | -Можливість змінити бюджет нового лоту до 100 | 146 | +Можливість змінити бюджет другого лоту до 8000 |
94 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 147 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
95 | ... tender_owner | 148 | ... tender_owner |
96 | ... ${USERS.users['${tender_owner}'].broker} | 149 | ... ${USERS.users['${tender_owner}'].broker} |
97 | [Teardown] Оновити LAST_MODIFICATION_DATE | 150 | [Teardown] Оновити LAST_MODIFICATION_DATE |
98 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
99 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
100 | - ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
101 | - Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto100resp ${fixlotto100resp} | ||
102 | - log ${fixlotto100resp} | ||
103 | - | 151 | + Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} value.amount 8000 |
104 | 152 | ||
105 | ##### | 153 | ##### |
106 | #Предмети закупівлі лоту | 154 | #Предмети закупівлі лоту |
107 | 155 | ||
108 | -Можливість додати позицію закупівлі в тендер | 156 | +Можливість добавити предмет закупівлі до другого лоту |
109 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 157 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
110 | ... tender_owner | 158 | ... tender_owner |
111 | ... ${USERS.users['${tender_owner}'].broker} | 159 | ... ${USERS.users['${tender_owner}'].broker} |
112 | [Teardown] Оновити LAST_MODIFICATION_DATE | 160 | [Teardown] Оновити LAST_MODIFICATION_DATE |
113 | - Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 | ||
114 | - | ||
115 | -Можливість добавити предмет закупівлі до лоту | ||
116 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
117 | - ... tender_owner | ||
118 | - ... ${USERS.users['${tender_owner}'].broker} | ||
119 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
120 | - ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | ||
121 | - Log ${items} | ||
122 | - ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
123 | - Set To Dictionary ${items[-1]} relatedLot ${lot_id} | ||
124 | - Log ${items[-1]} | ||
125 | - Викликати для учасника ${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} | ||
126 | 163 | ||
127 | Неможливість видалення лоту з прив’язаними предметами закупівлі | 164 | Неможливість видалення лоту з прив’язаними предметами закупівлі |
128 | [Documentation] | 165 | [Documentation] |
@@ -130,126 +167,47 @@ ${complaint_id} 1 | @@ -130,126 +167,47 @@ ${complaint_id} 1 | ||
130 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 167 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
131 | ... tender_owner | 168 | ... tender_owner |
132 | ... ${USERS.users['${tender_owner}'].broker} | 169 | ... ${USERS.users['${tender_owner}'].broker} |
133 | - ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
134 | - ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
135 | - Require Failure ${tender_owner} Видалити лот ${tender_data} ${lot} | ||
136 | - | ||
137 | -Можливість видалити позиції закупівлі тендера | ||
138 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
139 | - ... tender_owner | ||
140 | - ... ${USERS.users['${tender_owner}'].broker} | ||
141 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
142 | - ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | ||
143 | - Log ${items} | ||
144 | - ${resp}= Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} | ||
145 | - Log ${resp} | ||
146 | - | ||
147 | -Можливість додати тендерну документацію лоту | ||
148 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
149 | - ... tender_owner | ||
150 | - ... ${USERS.users['${tender_owner}'].broker} | ||
151 | - [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | ||
152 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
153 | - ${filepath}= create_fake_doc | ||
154 | - ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
155 | - ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
156 | - ${file_upload_process_data} = Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply} | ||
157 | - log ${file_upload_process_data} | ||
158 | - Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data} | ||
159 | - Log ${lot_id} | ||
160 | - 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} | ||
161 | 172 | ||
162 | 173 | ||
163 | ####### | 174 | ####### |
164 | #Запитання до лоту | 175 | #Запитання до лоту |
165 | 176 | ||
166 | -Можливість задати питання | 177 | +Можливість задати питання до лоту |
167 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 178 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
168 | ... provider | 179 | ... provider |
169 | ... ${USERS.users['${provider}'].broker} | 180 | ... ${USERS.users['${provider}'].broker} |
170 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 181 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
171 | [Teardown] Оновити LAST_MODIFICATION_DATE | 182 | [Teardown] Оновити LAST_MODIFICATION_DATE |
183 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
172 | ${question}= Підготовка даних для запитання | 184 | ${question}= Підготовка даних для запитання |
173 | - ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | 185 | + ${question_resp}= Run As ${provider} Задати питання до лоту ${TENDER['TENDER_UAID']} ${lot_id} ${question} |
174 | ${now}= Get Current TZdate | 186 | ${now}= Get Current TZdate |
175 | ${question.data.date}= Set variable ${now} | 187 | ${question.data.date}= Set variable ${now} |
176 | - ${question_id}= get_id_from_field ${question.data.description} | 188 | + ${question_id}= get_id_from_object ${question.data} |
177 | ${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} |
178 | ${question_data}= munch_dict arg=${question_data} | 190 | ${question_data}= munch_dict arg=${question_data} |
179 | - Set To Dictionary ${USERS.users['${provider}']} question_data ${question_data} | 191 | + Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} |
180 | 192 | ||
181 | 193 | ||
182 | -Можливість відповісти на запитання | 194 | +Можливість відповісти на запитання до лоту |
183 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | 195 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання |
184 | ... tender_owner | 196 | ... tender_owner |
185 | ... ${USERS.users['${tender_owner}'].broker} | 197 | ... ${USERS.users['${tender_owner}'].broker} |
186 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 198 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
187 | [Teardown] Оновити LAST_MODIFICATION_DATE | 199 | [Teardown] Оновити LAST_MODIFICATION_DATE |
188 | ${answer}= Підготовка даних для відповіді на запитання | 200 | ${answer}= Підготовка даних для відповіді на запитання |
189 | - ${answer_resp}= Викликати для учасника ${tender_owner} | 201 | + ${answer_resp}= Run As ${tender_owner} |
190 | ... Відповісти на питання ${TENDER['TENDER_UAID']} | 202 | ... Відповісти на питання ${TENDER['TENDER_UAID']} |
191 | ... ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} | 203 | ... ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} |
192 | ... question_id=${USERS.users['${provider}'].question_data.question_id} | 204 | ... question_id=${USERS.users['${provider}'].question_data.question_id} |
193 | ${now}= Get Current TZdate | 205 | ${now}= Get Current TZdate |
194 | ${answer.data.date}= Set variable ${now} | 206 | ${answer.data.date}= Set variable ${now} |
195 | ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} | 207 | ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} |
196 | - Set To Dictionary ${USERS.users['${provider}']} answer_data ${answer_data} | 208 | + Set To Dictionary ${USERS.users['${provider}']} answer_data=${answer_data} |
197 | 209 | ||
198 | ###### | 210 | ###### |
199 | -#Cкарга на лот | ||
200 | -# | ||
201 | -# | ||
202 | -##### Дочекатися скарг на лот | ||
203 | -# | ||
204 | -# | ||
205 | -#Можливість подати скаргу на лот | ||
206 | -# [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
207 | -# [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
208 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
209 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
210 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
211 | -# | ||
212 | -#Можливість побачити скаргу користувачем | ||
213 | -# [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера | ||
214 | -# Викликати для учасника ${provider} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
215 | -# | ||
216 | -#Можливість побачити скаргу анонімом | ||
217 | -# [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
218 | -# Викликати для учасника ${viewer} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
219 | -# | ||
220 | -#Можливість відхилити скаргу на лот | ||
221 | -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відхилити скаргу на умови | ||
222 | -# Set To Dictionary ${COMPLAINTS[0].data} status declined | ||
223 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${COMPLAINTS[${complaint_id}]} | ||
224 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
225 | -# викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
226 | -# | ||
227 | -#Можливість відкинути скаргу на лот | ||
228 | -# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відкинути скаргу на умови | ||
229 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
230 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
231 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
232 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
233 | -# Set To Dictionary ${COMPLAINTS[0].data} status invalid | ||
234 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${COMPLAINTS[${complaint_id}]} | ||
235 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
236 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
237 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
238 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
239 | -# | ||
240 | -#Можливість задовільнити скаргу на лот | ||
241 | -# [Tags] ${USERS.users['${provider}'].broker}: Можливість відповісти на запитання | ||
242 | -# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
243 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
244 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
245 | -# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
246 | -# Set To Dictionary ${COMPLAINTS[0].data} status resolved | ||
247 | -# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 2 ${COMPLAINTS[${complaint_id}]} | ||
248 | -# log many ${COMPLAINTS[${complaint_id}]} | ||
249 | -# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
250 | -# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
251 | -# | ||
252 | -###### | ||
253 | #Подання пропозицій | 211 | #Подання пропозицій |
254 | 212 | ||
255 | Відображення початку періоду прийому пропозицій оголошеного тендера | 213 | Відображення початку періоду прийому пропозицій оголошеного тендера |
@@ -279,14 +237,10 @@ ${complaint_id} 1 | @@ -279,14 +237,10 @@ ${complaint_id} 1 | ||
279 | ... provider | 237 | ... provider |
280 | ... ${USERS.users['${provider}'].broker} | 238 | ... ${USERS.users['${provider}'].broker} |
281 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 239 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
282 | - ${bid}= test lots bid data | ||
283 | - Log ${bid} | ||
284 | - ${bidresponses}= Create Dictionary | ||
285 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
286 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
287 | - ${bid_before_bidperiod_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
288 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | ||
289 | - 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} | ||
290 | 244 | ||
291 | Неможливість подати цінову пропозицію без прив’язки до лоту | 245 | Неможливість подати цінову пропозицію без прив’язки до лоту |
292 | [Documentation] | 246 | [Documentation] |
@@ -296,35 +250,28 @@ ${complaint_id} 1 | @@ -296,35 +250,28 @@ ${complaint_id} 1 | ||
296 | ... ${USERS.users['${provider}'].broker} | 250 | ... ${USERS.users['${provider}'].broker} |
297 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 251 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
298 | Дочекатись дати початку прийому пропозицій ${provider} | 252 | Дочекатись дати початку прийому пропозицій ${provider} |
299 | - ${bid}= test bid data | ||
300 | - Log ${bid} | ||
301 | - ${bidresponses}= Create Dictionary | ||
302 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
303 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 253 | + ${bid}= Підготувати дані для подання пропозиції |
304 | ${no_lot_bid_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 254 | ${no_lot_bid_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
305 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | ||
306 | - log ${USERS.users['${provider}']} | 255 | + log ${no_lot_bid_resp} |
307 | 256 | ||
308 | Можливість подати цінову пропозицію першим учасником | 257 | Можливість подати цінову пропозицію першим учасником |
309 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 258 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
310 | ... provider | 259 | ... provider |
311 | ... ${USERS.users['${provider}'].broker} | 260 | ... ${USERS.users['${provider}'].broker} |
312 | [Teardown] Оновити LAST_MODIFICATION_DATE | 261 | [Teardown] Оновити LAST_MODIFICATION_DATE |
313 | - ${bid}= test lots bid data | ||
314 | - Log ${bid} | ||
315 | - ${bidresponses}= Create Dictionary | ||
316 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
317 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
318 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
319 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
320 | - 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} | ||
321 | 268 | ||
322 | Можливість скасувати цінову пропозицію | 269 | Можливість скасувати цінову пропозицію |
323 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | 270 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
324 | ... provider | 271 | ... provider |
325 | ... ${USERS.users['${provider}'].broker} | 272 | ... ${USERS.users['${provider}'].broker} |
326 | [Teardown] Оновити LAST_MODIFICATION_DATE | 273 | [Teardown] Оновити LAST_MODIFICATION_DATE |
327 | - ${canceledbidresp}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 274 | + ${canceledbidresp}= Run As ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} |
328 | Log ${canceledbidresp} | 275 | Log ${canceledbidresp} |
329 | 276 | ||
330 | Можливість подати повторно цінову пропозицію першим учасником | 277 | Можливість подати повторно цінову пропозицію першим учасником |
@@ -333,22 +280,19 @@ ${complaint_id} 1 | @@ -333,22 +280,19 @@ ${complaint_id} 1 | ||
333 | ... ${USERS.users['${provider}'].broker} | 280 | ... ${USERS.users['${provider}'].broker} |
334 | [Teardown] Оновити LAST_MODIFICATION_DATE | 281 | [Teardown] Оновити LAST_MODIFICATION_DATE |
335 | Дочекатись дати початку прийому пропозицій ${provider} | 282 | Дочекатись дати початку прийому пропозицій ${provider} |
336 | - ${bid}= test lots bid data | ||
337 | - Log ${bid} | ||
338 | - ${bidresponses}= Create Dictionary | ||
339 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
340 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
341 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
342 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
343 | - 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} | ||
344 | 289 | ||
345 | Можливість змінити повторну цінову пропозицію до 2000 | 290 | Можливість змінити повторну цінову пропозицію до 2000 |
346 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 291 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
347 | ... provider | 292 | ... provider |
348 | ... ${USERS.users['${provider}'].broker} | 293 | ... ${USERS.users['${provider}'].broker} |
349 | [Teardown] Оновити LAST_MODIFICATION_DATE | 294 | [Teardown] Оновити LAST_MODIFICATION_DATE |
350 | - ${fixbidto2000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | ||
351 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto2000resp ${fixbidto2000resp} | 295 | + ${fixbidto2000resp}= Run As ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 |
352 | log ${fixbidto2000resp} | 296 | log ${fixbidto2000resp} |
353 | 297 | ||
354 | Можливість змінити повторну цінову пропозицію до 10 | 298 | Можливість змінити повторну цінову пропозицію до 10 |
@@ -356,8 +300,7 @@ ${complaint_id} 1 | @@ -356,8 +300,7 @@ ${complaint_id} 1 | ||
356 | ... provider | 300 | ... provider |
357 | ... ${USERS.users['${provider}'].broker} | 301 | ... ${USERS.users['${provider}'].broker} |
358 | [Teardown] Оновити LAST_MODIFICATION_DATE | 302 | [Teardown] Оновити LAST_MODIFICATION_DATE |
359 | - ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 | ||
360 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | 303 | + ${fixbidto10resp}= Run As ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 |
361 | log ${fixbidto10resp} | 304 | log ${fixbidto10resp} |
362 | 305 | ||
363 | Можливість подати цінову пропозицію другим учасником | 306 | Можливість подати цінову пропозицію другим учасником |
@@ -367,15 +310,12 @@ ${complaint_id} 1 | @@ -367,15 +310,12 @@ ${complaint_id} 1 | ||
367 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 310 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
368 | [Teardown] Оновити LAST_MODIFICATION_DATE | 311 | [Teardown] Оновити LAST_MODIFICATION_DATE |
369 | Дочекатись дати початку прийому пропозицій ${provider1} | 312 | Дочекатись дати початку прийому пропозицій ${provider1} |
370 | - ${bid}= test lots bid data | ||
371 | - Log ${bid} | ||
372 | - ${bidresponses}= Create Dictionary | ||
373 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
374 | - Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
375 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
376 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
377 | - log ${resp} | ||
378 | - 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} | ||
379 | 319 | ||
380 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | 320 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій |
381 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | 321 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
@@ -393,7 +333,6 @@ ${complaint_id} 1 | @@ -393,7 +333,6 @@ ${complaint_id} 1 | ||
393 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 333 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
394 | Дочекатись дати закінчення прийому пропозицій ${provider1} | 334 | Дочекатись дати закінчення прийому пропозицій ${provider1} |
395 | ${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 |
396 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto2000resp ${failfixbidto2000resp} | ||
397 | log ${failfixbidto2000resp} | 336 | log ${failfixbidto2000resp} |
398 | 337 | ||
399 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 338 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
@@ -403,7 +342,6 @@ ${complaint_id} 1 | @@ -403,7 +342,6 @@ ${complaint_id} 1 | ||
403 | ... provider1 | 342 | ... provider1 |
404 | ... ${USERS.users['${provider1}'].broker} | 343 | ... ${USERS.users['${provider1}'].broker} |
405 | ${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 |
406 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | ||
407 | log ${failfixbidto1resp} | 345 | log ${failfixbidto1resp} |
408 | 346 | ||
409 | Неможливість скасувати цінову пропозицію | 347 | Неможливість скасувати цінову пропозицію |
@@ -413,3 +351,4 @@ ${complaint_id} 1 | @@ -413,3 +351,4 @@ ${complaint_id} 1 | ||
413 | ... provider1 | 351 | ... provider1 |
414 | ... ${USERS.users['${provider1}'].broker} | 352 | ... ${USERS.users['${provider1}'].broker} |
415 | ${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} |
@@ -106,7 +106,7 @@ ${mode} openeu | @@ -106,7 +106,7 @@ ${mode} openeu | ||
106 | ... provider | 106 | ... provider |
107 | ... ${USERS.users['${provider}'].broker} | 107 | ... ${USERS.users['${provider}'].broker} |
108 | [Teardown] Оновити LAST_MODIFICATION_DATE | 108 | [Teardown] Оновити LAST_MODIFICATION_DATE |
109 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 109 | + ${bid}= Підготувати дані для подання пропозиції |
110 | Log ${bid} | 110 | Log ${bid} |
111 | ${bidresponses}= Create Dictionary | 111 | ${bidresponses}= Create Dictionary |
112 | Set To Dictionary ${bidresponses} bid ${bid} | 112 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -176,7 +176,7 @@ ${mode} openeu | @@ -176,7 +176,7 @@ ${mode} openeu | ||
176 | ... provider1 | 176 | ... provider1 |
177 | ... ${USERS.users['${provider1}'].broker} | 177 | ... ${USERS.users['${provider1}'].broker} |
178 | [Teardown] Оновити LAST_MODIFICATION_DATE | 178 | [Teardown] Оновити LAST_MODIFICATION_DATE |
179 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 179 | + ${bid}= Підготувати дані для подання пропозиції |
180 | Log ${bid} | 180 | Log ${bid} |
181 | ${bidresponses}= Create Dictionary | 181 | ${bidresponses}= Create Dictionary |
182 | Set To Dictionary ${bidresponses} bid ${bid} | 182 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -226,7 +226,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -226,7 +226,7 @@ Cкасувати цінову пропозицію другого учасни | ||
226 | ... provider1 | 226 | ... provider1 |
227 | ... ${USERS.users['${provider1}'].broker} | 227 | ... ${USERS.users['${provider1}'].broker} |
228 | [Teardown] Оновити LAST_MODIFICATION_DATE | 228 | [Teardown] Оновити LAST_MODIFICATION_DATE |
229 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 229 | + ${bid}= Підготувати дані для подання пропозиції |
230 | Log ${bid} | 230 | Log ${bid} |
231 | ${bidresponses}= Create Dictionary | 231 | ${bidresponses}= Create Dictionary |
232 | Set To Dictionary ${bidresponses} bid ${bid} | 232 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -348,7 +348,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -348,7 +348,7 @@ Cкасувати цінову пропозицію другого учасни | ||
348 | ... provider1 | 348 | ... provider1 |
349 | ... ${USERS.users['${provider1}'].broker} | 349 | ... ${USERS.users['${provider1}'].broker} |
350 | [Teardown] Оновити LAST_MODIFICATION_DATE | 350 | [Teardown] Оновити LAST_MODIFICATION_DATE |
351 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 351 | + ${bid}= Підготувати дані для подання пропозиції |
352 | Log ${bid} | 352 | Log ${bid} |
353 | ${bidresponses}= Create Dictionary | 353 | ${bidresponses}= Create Dictionary |
354 | Set To Dictionary ${bidresponses} bid ${bid} | 354 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -98,7 +98,7 @@ ${mode} openua | @@ -98,7 +98,7 @@ ${mode} openua | ||
98 | ... provider | 98 | ... provider |
99 | ... ${USERS.users['${provider}'].broker} | 99 | ... ${USERS.users['${provider}'].broker} |
100 | [Teardown] Оновити LAST_MODIFICATION_DATE | 100 | [Teardown] Оновити LAST_MODIFICATION_DATE |
101 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 101 | + ${bid}= Підготувати дані для подання пропозиції |
102 | Log ${bid} | 102 | Log ${bid} |
103 | ${bidresponses}= Create Dictionary | 103 | ${bidresponses}= Create Dictionary |
104 | Set To Dictionary ${bidresponses} bid ${bid} | 104 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -112,7 +112,7 @@ ${mode} openua | @@ -112,7 +112,7 @@ ${mode} openua | ||
112 | ... provider1 | 112 | ... provider1 |
113 | ... ${USERS.users['${provider1}'].broker} | 113 | ... ${USERS.users['${provider1}'].broker} |
114 | [Teardown] Оновити LAST_MODIFICATION_DATE | 114 | [Teardown] Оновити LAST_MODIFICATION_DATE |
115 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 115 | + ${bid}= Підготувати дані для подання пропозиції |
116 | Log ${bid} | 116 | Log ${bid} |
117 | ${bidresponses}= Create Dictionary | 117 | ${bidresponses}= Create Dictionary |
118 | Set To Dictionary ${bidresponses} bid ${bid} | 118 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -162,7 +162,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -162,7 +162,7 @@ Cкасувати цінову пропозицію другого учасни | ||
162 | ... provider1 | 162 | ... provider1 |
163 | ... ${USERS.users['${provider1}'].broker} | 163 | ... ${USERS.users['${provider1}'].broker} |
164 | [Teardown] Оновити LAST_MODIFICATION_DATE | 164 | [Teardown] Оновити LAST_MODIFICATION_DATE |
165 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 165 | + ${bid}= Підготувати дані для подання пропозиції |
166 | Log ${bid} | 166 | Log ${bid} |
167 | ${bidresponses}= Create Dictionary | 167 | ${bidresponses}= Create Dictionary |
168 | Set To Dictionary ${bidresponses} bid ${bid} | 168 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -287,7 +287,7 @@ Cкасувати цінову пропозицію другого учасни | @@ -287,7 +287,7 @@ Cкасувати цінову пропозицію другого учасни | ||
287 | ... provider1 | 287 | ... provider1 |
288 | ... ${USERS.users['${provider1}'].broker} | 288 | ... ${USERS.users['${provider1}'].broker} |
289 | [Teardown] Оновити LAST_MODIFICATION_DATE | 289 | [Teardown] Оновити LAST_MODIFICATION_DATE |
290 | - ${bid}= Підготувати дані для подання пропозиції aboveThreshold=${True} | 290 | + ${bid}= Підготувати дані для подання пропозиції |
291 | Log ${bid} | 291 | Log ${bid} |
292 | ${bidresponses}= Create Dictionary | 292 | ${bidresponses}= Create Dictionary |
293 | Set To Dictionary ${bidresponses} bid ${bid} | 293 | Set To Dictionary ${bidresponses} bid ${bid} |
@@ -20,7 +20,6 @@ from .initial_data import ( | @@ -20,7 +20,6 @@ from .initial_data import ( | ||
20 | create_fake_sentence, | 20 | create_fake_sentence, |
21 | test_award_data, | 21 | test_award_data, |
22 | test_bid_data, | 22 | test_bid_data, |
23 | - test_bid_data_meat_tender, | ||
24 | test_cancel_claim_data, | 23 | test_cancel_claim_data, |
25 | test_cancel_tender_data, | 24 | test_cancel_tender_data, |
26 | test_change_cancellation_document_field_data, | 25 | test_change_cancellation_document_field_data, |
@@ -38,7 +37,6 @@ from .initial_data import ( | @@ -38,7 +37,6 @@ from .initial_data import ( | ||
38 | test_lot_data, | 37 | test_lot_data, |
39 | test_lot_document_data, | 38 | test_lot_document_data, |
40 | test_lot_question_data, | 39 | test_lot_question_data, |
41 | - test_lots_bid_data, | ||
42 | test_question_answer_data, | 40 | test_question_answer_data, |
43 | test_question_data, | 41 | test_question_data, |
44 | test_submit_claim_data, | 42 | test_submit_claim_data, |
@@ -383,8 +381,11 @@ def munch_dict(arg=None, data=False): | @@ -383,8 +381,11 @@ def munch_dict(arg=None, data=False): | ||
383 | return munchify(arg) | 381 | return munchify(arg) |
384 | 382 | ||
385 | 383 | ||
386 | -def get_id_from_field(field): | ||
387 | - return re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', field).group(1) | 384 | +def get_id_from_object(obj): |
385 | + obj_id = re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', obj['title']) | ||
386 | + if not obj_id: | ||
387 | + obj_id = re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', obj['description']) | ||
388 | + return obj_id.group(1) | ||
388 | 389 | ||
389 | 390 | ||
390 | def get_object_type_by_id(object_id): | 391 | def get_object_type_by_id(object_id): |
@@ -396,7 +397,7 @@ def get_object_index_by_id(data, object_id): | @@ -396,7 +397,7 @@ def get_object_index_by_id(data, object_id): | ||
396 | if not data: | 397 | if not data: |
397 | return 0 | 398 | return 0 |
398 | for index, element in enumerate(data): | 399 | for index, element in enumerate(data): |
399 | - element_id = get_id_from_field(element['description']) | 400 | + element_id = get_id_from_object(element) |
400 | if element_id == object_id: | 401 | if element_id == object_id: |
401 | break | 402 | break |
402 | else: | 403 | else: |
@@ -328,7 +328,7 @@ ${mode} single | @@ -328,7 +328,7 @@ ${mode} single | ||
328 | ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | 328 | ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} |
329 | ${now}= Get Current TZdate | 329 | ${now}= Get Current TZdate |
330 | ${question.data.date}= Set variable ${now} | 330 | ${question.data.date}= Set variable ${now} |
331 | - ${question_id}= get_id_from_field ${question.data.description} | 331 | + ${question_id}= get_id_from_object ${question.data} |
332 | ${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} |
333 | ${question_data}= munch_dict arg=${question_data} | 333 | ${question_data}= munch_dict arg=${question_data} |
334 | Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} | 334 | Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} |
Please
register
or
login
to post a comment