Commit c107f12fae13386a69db04013e7b8a036be64ddd

Authored by Leits
1 parent 38f66ea1

Upd multilot

@@ -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
@@ -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]
@@ -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
@@ -488,9 +478,9 @@ def test_bid_data(mode): @@ -488,9 +478,9 @@ def test_bid_data(mode):
488 if mode == 'multiLot': 478 if mode == 'multiLot':
489 bid.data.lotValues = list() 479 bid.data.lotValues = list()
490 for _ in range(2): 480 for _ in range(2):
491 - bid.data.lotValues.append(test_bid_values()) 481 + bid.data.lotValues.append(test_bid_value())
492 else: 482 else:
493 - bid.data.value = test_bid_values() 483 + bid.data.update(test_bid_value())
494 if mode == 'meat': 484 if mode == 'meat':
495 bid.update(test_bid_params()) 485 bid.update(test_bid_params())
496 return bid 486 return bid
@@ -510,7 +500,7 @@ def test_bid_params(): @@ -510,7 +500,7 @@ def test_bid_params():
510 ] 500 ]
511 }) 501 })
512 502
513 -def test_bid_values(): 503 +def test_bid_value():
514 return munchify({ 504 return munchify({
515 "value": { 505 "value": {
516 "currency": "UAH", 506 "currency": "UAH",
@@ -574,7 +564,7 @@ def test_award_data(): @@ -574,7 +564,7 @@ def test_award_data():
574 def test_item_data(): 564 def test_item_data():
575 now = get_now() 565 now = get_now()
576 return munchify({ 566 return munchify({
577 - "description": description_with_id('i', fake.catch_phrase()), 567 + "description": field_with_id('i', fake.catch_phrase()),
578 "deliveryDate": { 568 "deliveryDate": {
579 "endDate": (now + timedelta(days=5)).isoformat() 569 "endDate": (now + timedelta(days=5)).isoformat()
580 }, 570 },
@@ -656,8 +646,8 @@ def test_invalid_features_data(): @@ -656,8 +646,8 @@ def test_invalid_features_data():
656 def test_lot_data(): 646 def test_lot_data():
657 return munchify( 647 return munchify(
658 { 648 {
659 - "description": description_with_id('l', fake.sentence(nb_words=10, variable_nb_words=True)),  
660 - "title": fake.sentence(nb_words=6, variable_nb_words=True), 649 + "description": fake.sentence(nb_words=10, variable_nb_words=True),
  650 + "title": field_with_id('l', fake.sentence(nb_words=6, variable_nb_words=True)),
661 "value": { 651 "value": {
662 "currency": "UAH", 652 "currency": "UAH",
663 "amount": 2000 + fake.pyfloat(left_digits=4, right_digits=1, positive=True), 653 "amount": 2000 + fake.pyfloat(left_digits=4, right_digits=1, positive=True),
@@ -672,22 +662,19 @@ def test_lot_data(): @@ -672,22 +662,19 @@ def test_lot_data():
672 }) 662 })
673 663
674 664
675 -def test_lot_document_data(document, lot_id="3c8f387879de4c38957402dbdb8b31af"):  
676 - lot_document = {"documentOf": "lot", "relatedItem": lot_id}  
677 - lot_document.update(document.data)  
678 - return munchify({"data": lot_document}) 665 +def test_lot_document_data(document, lot_id):
  666 + document.data.update({"documentOf": "lot", "relatedItem": lot_id})
  667 + return munchify(document)
679 668
680 669
681 -def test_lot_question_data(question, lot_id="3c8f387879de4c38957402dbdb8b31af"):  
682 - lot_question = {"questionOf": "lot", "relatedItem": lot_id}  
683 - lot_question.update(question.data)  
684 - return munchify({"data": lot_question}) 670 +def test_lot_question_data(question, lot_id):
  671 + question.data.update({"questionOf": "lot", "relatedItem": lot_id})
  672 + return munchify(question)
685 673
686 674
687 -def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af"):  
688 - lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id}  
689 - lot_complaint.update(complaint.data)  
690 - return munchify({"data": lot_complaint}) 675 +def test_lot_complaint_data(complaint, lot_id):
  676 + complaint.data.update({"complaintOf": "lot", "relatedItem": lot_id})
  677 + return munchify(complaint)
691 678
692 679
693 def test_tender_data_openua(intervals): 680 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
@@ -198,9 +202,6 @@ Get Broker Property By Username @@ -198,9 +202,6 @@ Get Broker Property By Username
198 ${reply}= Create Dictionary data=${lot} 202 ${reply}= Create Dictionary data=${lot}
199 [Return] ${reply} 203 [Return] ${reply}
200 204
201 -Підготовка даних для створення предмету закупівлі  
202 - ${item}= test_item_data  
203 - [Return] ${item}  
204 205
205 Підготовка даних для подання вимоги 206 Підготовка даних для подання вимоги
206 ${claim}= test_claim_data 207 ${claim}= test_claim_data
@@ -449,13 +450,26 @@ Get Broker Property By Username @@ -449,13 +450,26 @@ Get Broker Property By Username
449 Отримати дані із об’єкта тендера 450 Отримати дані із об’єкта тендера
450 [Arguments] ${username} ${object_id} ${field_name} 451 [Arguments] ${username} ${object_id} ${field_name}
451 ${object_type}= get_object_type_by_id ${object_id} 452 ${object_type}= get_object_type_by_id ${object_id}
452 - ${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}
453 ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} 457 ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id}
454 ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} 458 ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value}
455 ... ELSE Run As ${username} Отримати інформацію із тендера ${field} 459 ... ELSE Run As ${username} Отримати інформацію із тендера ${field}
456 [return] ${field_value} 460 [return] ${field_value}
457 461
458 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 +
459 Викликати для учасника 473 Викликати для учасника
460 [Arguments] ${username} ${command} @{arguments} 474 [Arguments] ${username} ${command} @{arguments}
461 Run keyword unless '${WARN_RUN_AS}' == '${True}' 475 Run keyword unless '${WARN_RUN_AS}' == '${True}'
@@ -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}
  121 +
  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}
81 129
82 -Можливість змінити бюджет нового лоту до 8000 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
92 144
93 -Можливість змінити бюджет нового лоту до 100 145 +
  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]
@@ -297,34 +251,27 @@ ${complaint_id} 1 @@ -297,34 +251,27 @@ ${complaint_id} 1
297 [Setup] Дочекатись синхронізації з майданчиком ${provider} 251 [Setup] Дочекатись синхронізації з майданчиком ${provider}
298 Дочекатись дати початку прийому пропозицій ${provider} 252 Дочекатись дати початку прийому пропозицій ${provider}
299 ${bid}= Підготувати дані для подання пропозиції 253 ${bid}= Підготувати дані для подання пропозиції
300 - Log ${bid}  
301 - ${bidresponses}= Create Dictionary  
302 - Set To Dictionary ${bidresponses} bid ${bid}  
303 - Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses}  
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}
@@ -391,8 +391,11 @@ def munch_dict(arg=None, data=False): @@ -391,8 +391,11 @@ def munch_dict(arg=None, data=False):
391 return munchify(arg) 391 return munchify(arg)
392 392
393 393
394 -def get_id_from_field(field):  
395 - return re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', field).group(1) 394 +def get_id_from_object(obj):
  395 + obj_id = re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', obj['title'])
  396 + if not obj_id:
  397 + obj_id = re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', obj['description'])
  398 + return obj_id.group(1)
396 399
397 400
398 def get_object_type_by_id(object_id): 401 def get_object_type_by_id(object_id):
@@ -404,7 +407,7 @@ def get_object_index_by_id(data, object_id): @@ -404,7 +407,7 @@ def get_object_index_by_id(data, object_id):
404 if not data: 407 if not data:
405 return 0 408 return 0
406 for index, element in enumerate(data): 409 for index, element in enumerate(data):
407 - element_id = get_id_from_field(element['description']) 410 + element_id = get_id_from_object(element)
408 if element_id == object_id: 411 if element_id == object_id:
409 break 412 break
410 else: 413 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