Commit 5568bd1c2eb653f0df7d6d861cd23c408d24ed0e
Merge pull request #28 from Leits/master
Add tests for MEAT and multilot tenders
Showing
10 changed files
with
773 additions
and
14 deletions
@@ -35,6 +35,7 @@ gh = git://github.com/ | @@ -35,6 +35,7 @@ gh = git://github.com/ | ||
35 | gh_push = git@github.com: | 35 | gh_push = git@github.com: |
36 | 36 | ||
37 | [sources] | 37 | [sources] |
38 | +barbecue = git ${remotes:gh}openprocurement/barbecue.git | ||
38 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git | 39 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git |
39 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git | 40 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git |
40 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git | 41 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git |
@@ -121,10 +121,9 @@ Library openprocurement_client_helper.py | @@ -121,10 +121,9 @@ Library openprocurement_client_helper.py | ||
121 | ${internalid}= Отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} | 121 | ${internalid}= Отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[1]} |
122 | Отримати тендер ${ARGUMENTS[0]} ${internalid} | 122 | Отримати тендер ${ARGUMENTS[0]} ${internalid} |
123 | @{items}= Get From Object ${TENDER_DATA.data} items | 123 | @{items}= Get From Object ${TENDER_DATA.data} items |
124 | - ${item}= get variable value ${items[1]} | ||
125 | - Run Keyword And Continue On Failure Remove From Dictionary ${item} id | ||
126 | Log Many @{items} | 124 | Log Many @{items} |
127 | :FOR ${INDEX} IN RANGE ${ARGUMENTS[2]} | 125 | :FOR ${INDEX} IN RANGE ${ARGUMENTS[2]} |
126 | + \ ${item}= test_item_data | ||
128 | \ Append To List ${items} ${item} | 127 | \ Append To List ${items} ${item} |
129 | Log Many @{items} | 128 | Log Many @{items} |
130 | Set_To_Object ${TENDER_DATA.data} items ${items} | 129 | Set_To_Object ${TENDER_DATA.data} items ${items} |
@@ -349,3 +348,57 @@ Library openprocurement_client_helper.py | @@ -349,3 +348,57 @@ Library openprocurement_client_helper.py | ||
349 | ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${token} | 348 | ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${token} |
350 | log ${filename} | 349 | log ${filename} |
351 | [return] ${contents} ${filename} | 350 | [return] ${contents} ${filename} |
351 | + | ||
352 | + | ||
353 | +Створити лот | ||
354 | + [Documentation] | ||
355 | + ... ${ARGUMENTS[0]} == username | ||
356 | + ... ${ARGUMENTS[1]} == tender | ||
357 | + ... ${ARGUMENTS[2]} == lot | ||
358 | + [Arguments] @{ARGUMENTS} | ||
359 | + log many @{ARGUMENTS} | ||
360 | + ${tender}= set_access_key ${ARGUMENTS[1]} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
361 | + ${tender_lot}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} create_lot ${tender} ${ARGUMENTS[2]} | ||
362 | + Log ${tender_lot} | ||
363 | + [return] ${tender_lot} | ||
364 | + | ||
365 | +Змінити лот | ||
366 | + [Documentation] | ||
367 | + ... ${ARGUMENTS[0]} == username | ||
368 | + ... ${ARGUMENTS[1]} == tender | ||
369 | + ... ${ARGUMENTS[2]} == lot | ||
370 | + [Arguments] @{ARGUMENTS} | ||
371 | + log many @{ARGUMENTS} | ||
372 | + ${tender}= set_access_key ${ARGUMENTS[1]} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
373 | + ${tender_lot}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_lot ${tender} ${ARGUMENTS[2]} | ||
374 | + Log ${tender_lot} | ||
375 | + [return] ${tender_lot} | ||
376 | + | ||
377 | +Завантажити документ в лот | ||
378 | + [Documentation] | ||
379 | + ... ${ARGUMENTS[0]} == username | ||
380 | + ... ${ARGUMENTS[1]} == filepath | ||
381 | + ... ${ARGUMENTS[2]} == tenderUAID | ||
382 | + ... ${ARGUMENTS[3]} == lot_id | ||
383 | + [Arguments] @{ARGUMENTS} | ||
384 | + log many @{ARGUMENTS} | ||
385 | + ${tenderID}= openprocurement_client.Отримати internal id по UAid ${ARGUMENTS[0]} ${ARGUMENTS[2]} | ||
386 | + ${tender}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_tender ${tenderID} | ||
387 | + ${tender}= set_access_key ${tender} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
388 | + ${doc}= Завантажити документ ${ARGUMENTS[0]} ${ARGUMENTS[1]} ${ARGUMENTS[2]} | ||
389 | + ${lot_doc}= test_lot_document_data ${doc} ${ARGUMENTS[3]} | ||
390 | + ${reply}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} patch_document ${tender} ${lot_doc} | ||
391 | + Log object data ${reply} reply | ||
392 | + [return] ${reply} | ||
393 | + | ||
394 | +Видалити лот | ||
395 | + [Documentation] | ||
396 | + ... ${ARGUMENTS[0]} == username | ||
397 | + ... ${ARGUMENTS[1]} == tender | ||
398 | + ... ${ARGUMENTS[2]} == lot | ||
399 | + [Arguments] @{ARGUMENTS} | ||
400 | + log many @{ARGUMENTS} | ||
401 | + ${tender}= set_access_key ${ARGUMENTS[1]} ${USERS.users['${ARGUMENTS[0]}'].access_token} | ||
402 | + ${tender_lot}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_lot ${tender} ${ARGUMENTS[2]} | ||
403 | + Log ${tender_lot} | ||
404 | + [return] ${tender_lot} |
@@ -112,7 +112,7 @@ def test_tender_data(intervals): | @@ -112,7 +112,7 @@ def test_tender_data(intervals): | ||
112 | return t_data | 112 | return t_data |
113 | 113 | ||
114 | 114 | ||
115 | -def test_tender_data_multiple_lots(intervals): | 115 | +def test_tender_data_multiple_items(intervals): |
116 | now = get_now() | 116 | now = get_now() |
117 | t_data = test_tender_data(intervals) | 117 | t_data = test_tender_data(intervals) |
118 | t_data.update({ | 118 | t_data.update({ |
@@ -282,6 +282,83 @@ def test_tender_data_multiple_lots(intervals): | @@ -282,6 +282,83 @@ def test_tender_data_multiple_lots(intervals): | ||
282 | return t_data | 282 | return t_data |
283 | 283 | ||
284 | 284 | ||
285 | +def test_tender_data_multiple_lots(t_data): | ||
286 | + for i in range(3): | ||
287 | + t_data['data']['items'][i]['relatedLot'] = "3c8f387879de4c38957402dbdb8b31af" | ||
288 | + t_data['data']['items'][3]['relatedLot'] = "bcac8d2ceb5f4227b841a2211f5cb646" | ||
289 | + t_data['data']['lots'] = [ | ||
290 | + { | ||
291 | + "id": "3c8f387879de4c38957402dbdb8b31af", | ||
292 | + "title": "Lot #1: Kyiv stationery", | ||
293 | + "description": "Items for Kyiv office", | ||
294 | + "value": {"currency": "UAH", "amount": 34000.0, "valueAddedTaxIncluded": "true"}, | ||
295 | + "minimalStep": {"currency": "UAH", "amount": 30.0, "valueAddedTaxIncluded": "true"}, | ||
296 | + "status": "active" | ||
297 | + }, { | ||
298 | + "id": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
299 | + "title": "Lot #2: Lviv stationery", | ||
300 | + "description": "Items for Lviv office", | ||
301 | + "value": {"currency": "UAH", "amount": 9000.0, "valueAddedTaxIncluded": "true"}, | ||
302 | + "minimalStep": {"currency": "UAH", "amount": 35.0, "valueAddedTaxIncluded": "true"}, | ||
303 | + "status": "active" | ||
304 | + } | ||
305 | + ] | ||
306 | + return t_data | ||
307 | + | ||
308 | + | ||
309 | +def test_meat_tender_data(tender): | ||
310 | + item_id = "edd0032574bf4402877ad5f362df225a" | ||
311 | + tender.data['items'][0].id = item_id | ||
312 | + tender.data.features = [ | ||
313 | + { | ||
314 | + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
315 | + "featureOf": "tenderer", | ||
316 | + "title": "Термін оплати", | ||
317 | + "description": "Умови відстрочки платежу після поставки товару", | ||
318 | + "enum": [ | ||
319 | + { | ||
320 | + "value": 0.15, | ||
321 | + "title": "180 днів та більше" | ||
322 | + }, | ||
323 | + { | ||
324 | + "value": 0.1, | ||
325 | + "title": "90-179 днів", | ||
326 | + }, | ||
327 | + { | ||
328 | + "value": 0.05, | ||
329 | + "title": "30-89 днів" | ||
330 | + }, | ||
331 | + { | ||
332 | + "value": 0, | ||
333 | + "title": "Менше 30 днів" | ||
334 | + } | ||
335 | + ] | ||
336 | + }, | ||
337 | + { | ||
338 | + "code": "48cfd91612c04125ab406374d7cc8d93", | ||
339 | + "featureOf": "item", | ||
340 | + "relatedItem": item_id, | ||
341 | + "title": "Сорт", | ||
342 | + "description": "Сорт продукції", | ||
343 | + "enum": [ | ||
344 | + { | ||
345 | + "value": 0.05, | ||
346 | + "title": "Вищий" | ||
347 | + }, | ||
348 | + { | ||
349 | + "value": 0.01, | ||
350 | + "title": "Перший", | ||
351 | + }, | ||
352 | + { | ||
353 | + "value": 0, | ||
354 | + "title": "Другий" | ||
355 | + } | ||
356 | + ] | ||
357 | + } | ||
358 | + ] | ||
359 | + return tender | ||
360 | + | ||
361 | + | ||
285 | def test_question_data(): | 362 | def test_question_data(): |
286 | return munchify({ | 363 | return munchify({ |
287 | "data": { | 364 | "data": { |
@@ -390,6 +467,93 @@ def test_bid_data(): | @@ -390,6 +467,93 @@ def test_bid_data(): | ||
390 | }) | 467 | }) |
391 | 468 | ||
392 | 469 | ||
470 | +def test_bid_data_meat_tender(): | ||
471 | + return munchify({ | ||
472 | + "data": { | ||
473 | + "tenderers": [ | ||
474 | + { | ||
475 | + "address": { | ||
476 | + "countryName": "Україна", | ||
477 | + "locality": "м. Вінниця", | ||
478 | + "postalCode": "21100", | ||
479 | + "region": "м. Вінниця", | ||
480 | + "streetAddress": fake.street_address() | ||
481 | + }, | ||
482 | + "contactPoint": { | ||
483 | + "name": fake.name(), | ||
484 | + "telephone": fake.phone_number() | ||
485 | + }, | ||
486 | + "identifier": { | ||
487 | + "scheme": u"UA-EDR", | ||
488 | + "id": u"{:08d}".format(fake.pyint()), | ||
489 | + }, | ||
490 | + "name": fake.company() | ||
491 | + } | ||
492 | + ], | ||
493 | + "parameters": [ | ||
494 | + { | ||
495 | + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
496 | + "value": fake.random_element(elements=(0.15, 0.1, 0.05, 0)) | ||
497 | + }, | ||
498 | + { | ||
499 | + "code": "48cfd91612c04125ab406374d7cc8d93", | ||
500 | + "value": fake.random_element(elements=(0.05, 0.01, 0)) | ||
501 | + } | ||
502 | + ], | ||
503 | + "value": { | ||
504 | + "amount": 500 | ||
505 | + } | ||
506 | + } | ||
507 | + }) | ||
508 | + | ||
509 | + | ||
510 | +def test_lots_bid_data(): | ||
511 | + return munchify({ | ||
512 | + "data": { | ||
513 | + "tenderers": [ | ||
514 | + { | ||
515 | + "address": { | ||
516 | + "countryName": "Україна", | ||
517 | + "locality": "м. Вінниця", | ||
518 | + "postalCode": "21100", | ||
519 | + "region": "м. Вінниця", | ||
520 | + "streetAddress": fake.street_address() | ||
521 | + }, | ||
522 | + "contactPoint": { | ||
523 | + "name": fake.name(), | ||
524 | + "telephone": fake.phone_number() | ||
525 | + }, | ||
526 | + "identifier": { | ||
527 | + "scheme": u"UA-EDR", | ||
528 | + "id": u"{:08d}".format(fake.pyint()), | ||
529 | + }, | ||
530 | + "name": fake.company() | ||
531 | + } | ||
532 | + ], | ||
533 | + "lotValues": [ | ||
534 | + { | ||
535 | + "value": { | ||
536 | + "currency": "UAH", | ||
537 | + "amount": 1000 + fake.pyfloat(left_digits=3, right_digits=0, positive=True), | ||
538 | + "valueAddedTaxIncluded": "true" | ||
539 | + }, | ||
540 | + "relatedLot": "3c8f387879de4c38957402dbdb8b31af", | ||
541 | + "date": "2015-11-01T12:43:12.482645+02:00" | ||
542 | + }, | ||
543 | + { | ||
544 | + "value": { | ||
545 | + "currency": "UAH", | ||
546 | + "amount": 1000 + fake.pyfloat(left_digits=3, right_digits=0, positive=True), | ||
547 | + "valueAddedTaxIncluded": "true" | ||
548 | + }, | ||
549 | + "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
550 | + "date": "2015-11-01T12:43:12.482645+02:00" | ||
551 | + } | ||
552 | + ] | ||
553 | + } | ||
554 | + }) | ||
555 | + | ||
556 | + | ||
393 | def auction_bid(): | 557 | def auction_bid(): |
394 | return munchify({ | 558 | return munchify({ |
395 | "data": { | 559 | "data": { |
@@ -404,3 +568,135 @@ def auction_bid(): | @@ -404,3 +568,135 @@ def auction_bid(): | ||
404 | 568 | ||
405 | def test_award_data(): | 569 | def test_award_data(): |
406 | return munchify({'data': {}}) | 570 | return munchify({'data': {}}) |
571 | + | ||
572 | + | ||
573 | +def test_item_data(): | ||
574 | + now = get_now() | ||
575 | + return { | ||
576 | + "description": fake.catch_phrase(), | ||
577 | + "deliveryDate": { | ||
578 | + "endDate": (now + timedelta(days=5)).isoformat() | ||
579 | + }, | ||
580 | + "deliveryLocation": { | ||
581 | + "latitude": 49.8500, | ||
582 | + "longitude": 24.0167 | ||
583 | + }, | ||
584 | + "deliveryAddress": { | ||
585 | + "countryName": u"Україна", | ||
586 | + "countryName_ru": u"Украина", | ||
587 | + "countryName_en": "Ukraine", | ||
588 | + "postalCode": fake.postalcode(), | ||
589 | + "region": u"м. Київ", | ||
590 | + "locality": u"м. Київ", | ||
591 | + "streetAddress": fake.street_address() | ||
592 | + }, | ||
593 | + "classification": { | ||
594 | + "scheme": u"CPV", | ||
595 | + "id": u"44617100-9", | ||
596 | + "description": u"Картонки", | ||
597 | + "description_ru": u"Большие картонные коробки", | ||
598 | + "description_en": u"Cartons" | ||
599 | + }, | ||
600 | + "additionalClassifications": [ | ||
601 | + { | ||
602 | + "scheme": u"ДКПП", | ||
603 | + "id": u"17.21.1", | ||
604 | + "description": u"Папір і картон гофровані, паперова й картонна тара" | ||
605 | + } | ||
606 | + ], | ||
607 | + "unit": { | ||
608 | + "name": u"кілограм", | ||
609 | + "name_ru": u"килограмм", | ||
610 | + "name_en": "kilogram", | ||
611 | + "code": u"KGM" | ||
612 | + }, | ||
613 | + "quantity": fake.pyint() | ||
614 | + } | ||
615 | + | ||
616 | + | ||
617 | +def test_invalid_features_data(): | ||
618 | + return [ | ||
619 | + { | ||
620 | + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
621 | + "featureOf": "tenderer", | ||
622 | + "title": "Термін оплати", | ||
623 | + "description": "Умови відстрочки платежу після поставки товару", | ||
624 | + "enum": [ | ||
625 | + { | ||
626 | + "value": 0.35, | ||
627 | + "title": "180 днів та більше" | ||
628 | + }, | ||
629 | + { | ||
630 | + "value": 0.1, | ||
631 | + "title": "90-179 днів", | ||
632 | + }, | ||
633 | + { | ||
634 | + "value": 0.05, | ||
635 | + "title": "30-89 днів" | ||
636 | + }, | ||
637 | + { | ||
638 | + "value": 0, | ||
639 | + "title": "Менше 30 днів" | ||
640 | + } | ||
641 | + ] | ||
642 | + }, | ||
643 | + { | ||
644 | + "code": "48cfd91612c04125ab406374d7cc8d93", | ||
645 | + "featureOf": "item", | ||
646 | + "relatedItem": "edd0032574bf4402877ad5f362df225a", | ||
647 | + "title": "Сорт", | ||
648 | + "description": "Сорт продукції", | ||
649 | + "enum": [ | ||
650 | + { | ||
651 | + "value": 0.35, | ||
652 | + "title": "Вищий" | ||
653 | + }, | ||
654 | + { | ||
655 | + "value": 0.01, | ||
656 | + "title": "Перший", | ||
657 | + }, | ||
658 | + { | ||
659 | + "value": 0, | ||
660 | + "title": "Другий" | ||
661 | + } | ||
662 | + ] | ||
663 | + } | ||
664 | + ] | ||
665 | + | ||
666 | + | ||
667 | +def test_lot_data(): | ||
668 | + return munchify( | ||
669 | + {'data': | ||
670 | + { | ||
671 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), | ||
672 | + "title": fake.sentence(nb_words=6, variable_nb_words=True), | ||
673 | + "value": { | ||
674 | + "currency": "UAH", | ||
675 | + "amount": fake.pyfloat(left_digits=4, right_digits=1, positive=True), | ||
676 | + "valueAddedTaxIncluded": "true" | ||
677 | + }, | ||
678 | + "minimalStep": { | ||
679 | + "currency": "UAH", | ||
680 | + "amount": 30.0, | ||
681 | + "valueAddedTaxIncluded": "true" | ||
682 | + }, | ||
683 | + "status": "active" | ||
684 | + }}) | ||
685 | + | ||
686 | + | ||
687 | +def test_lot_document_data(document, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
688 | + lot_document = {"documentOf": "lot", "relatedItem": lot_id} | ||
689 | + lot_document.update(document.data) | ||
690 | + return munchify({"data": lot_document}) | ||
691 | + | ||
692 | + | ||
693 | +def test_lot_question_data(question, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
694 | + lot_question = {"questionOf": "lot", "relatedItem": lot_id} | ||
695 | + lot_question.update(question.data) | ||
696 | + return munchify({"data": lot_question}) | ||
697 | + | ||
698 | + | ||
699 | +def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af"): | ||
700 | + lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} | ||
701 | + lot_complaint.update(complaint.data) | ||
702 | + return munchify({"data": lot_complaint}) |
@@ -71,7 +71,8 @@ Get Broker Property By Username | @@ -71,7 +71,8 @@ Get Broker Property By Username | ||
71 | Підготовка початкових даних | 71 | Підготовка початкових даних |
72 | @{QUESTIONS}= Create list | 72 | @{QUESTIONS}= Create list |
73 | ${question}= test question data | 73 | ${question}= test question data |
74 | - Append to list ${QUESTIONS} ${question} | 74 | + ${question_lot}= test_lot_question_data ${question} |
75 | + Append to list ${QUESTIONS} ${question} ${question_lot} | ||
75 | Set Global Variable @{QUESTIONS} | 76 | Set Global Variable @{QUESTIONS} |
76 | @{ANSWERS}= Create list | 77 | @{ANSWERS}= Create list |
77 | ${answer}= test_question_answer_data | 78 | ${answer}= test_question_answer_data |
@@ -79,7 +80,8 @@ Get Broker Property By Username | @@ -79,7 +80,8 @@ Get Broker Property By Username | ||
79 | Set Global Variable @{ANSWERS} | 80 | Set Global Variable @{ANSWERS} |
80 | @{COMPLAINTS}= Create list | 81 | @{COMPLAINTS}= Create list |
81 | ${complaint}= test_complaint_data | 82 | ${complaint}= test_complaint_data |
82 | - Append to list ${COMPLAINTS} ${complaint} | 83 | + ${complaint_lot}= test_lot_complaint_data ${complaint} |
84 | + Append to list ${COMPLAINTS} ${complaint} ${complaint_lot} | ||
83 | Set Global Variable @{COMPLAINTS} | 85 | Set Global Variable @{COMPLAINTS} |
84 | @{REPLIES}= Create list | 86 | @{REPLIES}= Create list |
85 | ${reply}= test_complaint_reply_data | 87 | ${reply}= test_complaint_reply_data |
op_robot_tests/tests_files/meatTender.robot
0 → 100644
1 | +*** Settings *** | ||
2 | +Library op_robot_tests.tests_files.service_keywords | ||
3 | +Library String | ||
4 | +Library Collections | ||
5 | +Library Selenium2Library | ||
6 | +Library DebugLibrary | ||
7 | +Resource keywords.robot | ||
8 | +Resource resource.robot | ||
9 | +Suite Setup TestSuiteSetup | ||
10 | +Suite Teardown Close all browsers | ||
11 | + | ||
12 | +*** Variables *** | ||
13 | +${mode} single | ||
14 | + | ||
15 | +${role} viewer | ||
16 | +${broker} Quinta | ||
17 | + | ||
18 | +*** Test Cases *** | ||
19 | +Можливість оголосити однопредметний тендер з неціновим показником | ||
20 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
21 | + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), | ||
22 | + ${base_tender_data}= Підготовка початкових даних | ||
23 | + ${tender_data}= test_meat_tender_data ${base_tender_data} | ||
24 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | ||
25 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
26 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
27 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
28 | + log ${TENDER} | ||
29 | + | ||
30 | +Пошук однопредметного тендера по ідентифікатору | ||
31 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
32 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
33 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
34 | + | ||
35 | +Неможливість перевищити ліміт для нецінових критеріїв | ||
36 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
37 | + ${invalid_features}= test_invalid_features_data | ||
38 | + ${fail}= Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} features ${invalid_features} | ||
39 | + Log ${fail} | ||
40 | + | ||
41 | +###### | ||
42 | +#Подання пропозицій | ||
43 | + | ||
44 | +Неможливість подати цінову пропозицію без нецінового показника | ||
45 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
46 | + Дочекатись дати початку прийому пропозицій | ||
47 | + sleep 90 | ||
48 | + ${bid}= test bid data | ||
49 | + Log ${bid} | ||
50 | + ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
51 | + log ${biddingresponse0} | ||
52 | + | ||
53 | +Подати цінову пропозицію з неціновим показником | ||
54 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
55 | + ${bid}= test bid data meat tender | ||
56 | + Log ${bid} | ||
57 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
58 | + ${biddingresponse0}= Create Dictionary | ||
59 | + Set To Dictionary ${biddingresponse0} resp ${resp} | ||
60 | + Set To Dictionary ${USERS.users['${provider}']} biddingresponse0 ${biddingresponse0} | ||
61 | + log ${resp} | ||
62 | + | ||
63 | +Можливість змінити неціновий показник повторної цінової пропозиції до 0 | ||
64 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
65 | + Set To Dictionary ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} value 0 | ||
66 | + Log ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} | ||
67 | + ${fixbidparamsto0resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].biddingresponse0['resp']} | ||
68 | + Set To Dictionary ${USERS.users['${provider}'].biddingresponse0} fixbidparamsto0resp ${fixbidparamsto0resp} | ||
69 | + log ${fixbidparamsto0resp} | ||
70 | + | ||
71 | +Можливість змінити неціновий показник повторної цінової пропозиції до 0.15 | ||
72 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
73 | + Set To Dictionary ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} value 0.15 | ||
74 | + Log ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} | ||
75 | + ${fixbidparamsto015resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].biddingresponse0['resp']} | ||
76 | + Set To Dictionary ${USERS.users['${provider}'].biddingresponse0} fixbidparamsto015resp ${fixbidparamsto015resp} | ||
77 | + log ${fixbidparamsto015resp} | ||
78 | + | ||
79 | +Подати цінову пропозицію з неціновим показником другим учасником | ||
80 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
81 | + Дочекатись дати початку прийому пропозицій | ||
82 | + ${bid}= test bid data meat tender | ||
83 | + Log ${bid} | ||
84 | + ${bidresponses}= Create Dictionary | ||
85 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
86 | + Set To Dictionary ${bidresponses} resp ${resp} | ||
87 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
88 | + log ${resp} | ||
89 | + log ${USERS.users['${provider1}'].bidresponses} | ||
90 | + | ||
91 | +###### | ||
92 | +#Аукціон | ||
93 | + | ||
94 | +Очікування аукціону | ||
95 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
96 | + ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
97 | + log ${tender_data.data.auctionPeriod.startDate} | ||
98 | + Дочекатись дати початку аукціону | ||
99 | + sleep 1500 | ||
100 | + | ||
101 | +Завершення аукціону | ||
102 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
103 | + ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
104 | + ${result}= chef ${tender_data.data.bids} ${tender_data.data.features} | ||
105 | + Log Many ${result[0]} ${tender_data.data.awards[0]} | ||
106 | + Log Many ${result[0].id} ${tender_data.data.awards[0].bid_id} | ||
107 | + Should Be Equal ${result[0].id} ${tender_data.data.awards[0].bid_id} |
@@ -113,4 +113,4 @@ ${broker} Quinta | @@ -113,4 +113,4 @@ ${broker} Quinta | ||
113 | 113 | ||
114 | Можливість видалити позиції закупівлі тендера | 114 | Можливість видалити позиції закупівлі тендера |
115 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 115 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
116 | - Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 2 | 116 | + Викликати для учасника ${tender_owner} Відняти предмети закупівлі ${TENDER['TENDER_UAID']} 2 |
1 | +*** Settings *** | ||
2 | +Library op_robot_tests.tests_files.service_keywords | ||
3 | +Library String | ||
4 | +Library Collections | ||
5 | +Library Selenium2Library | ||
6 | +Library DebugLibrary | ||
7 | +Resource keywords.robot | ||
8 | +Resource resource.robot | ||
9 | +Suite Setup TestSuiteSetup | ||
10 | +Suite Teardown Close all browsers | ||
11 | + | ||
12 | +*** Variables *** | ||
13 | +${mode} multi | ||
14 | + | ||
15 | +${role} viewer | ||
16 | +${broker} Quinta | ||
17 | + | ||
18 | +${question_id} 1 | ||
19 | +${complaint_id} 1 | ||
20 | + | ||
21 | +*** Test Cases *** | ||
22 | +Можливість оголосити мультилотовий тендер | ||
23 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер | ||
24 | + ${tender_data}= Підготовка початкових даних | ||
25 | + ${tender_data}= test_tender_data_multiple_lots ${tender_data} | ||
26 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | ||
27 | + ${LAST_MODIFICATION_DATE}= Get Current Date | ||
28 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
29 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
30 | + log ${TENDER} | ||
31 | + | ||
32 | +Пошук мультилотового тендера по ідентифікатору | ||
33 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
34 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
35 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
36 | + | ||
37 | +Отримання тендера | ||
38 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
39 | + Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
40 | + | ||
41 | +####### | ||
42 | +#Операції з лотом | ||
43 | + | ||
44 | +Створення лоту | ||
45 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
46 | + ${lot}= test lot data | ||
47 | + ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
48 | + ${lotresponses}= Create Dictionary | ||
49 | + Set To Dictionary ${lotresponses} resp0 ${lotcreate} | ||
50 | + Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
51 | + log ${lotcreate} | ||
52 | + | ||
53 | +Можливість видалення лоту | ||
54 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
55 | + ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} | ||
56 | + ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} | ||
57 | + Log ${lotdelete} | ||
58 | + | ||
59 | +Повторне створення лоту | ||
60 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
61 | + ${lot}= test lot data | ||
62 | + ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | ||
63 | + ${lotresponses}= Create Dictionary | ||
64 | + Set To Dictionary ${lotresponses} resp ${lotcreate} | ||
65 | + Set To Dictionary ${USERS.users['${tender_owner}']} lotresponses ${lotresponses} | ||
66 | + log ${lotcreate} | ||
67 | + | ||
68 | +Можливість змінити цінову пропозицію у новому лоті до 8000 | ||
69 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
70 | + Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
71 | + ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
72 | + Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto8000resp ${fixlotto8000resp} | ||
73 | + log ${fixlotto8000resp} | ||
74 | + | ||
75 | +Можливість змінити цінову пропозицію у новому лоті до 100 | ||
76 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
77 | + Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | ||
78 | + ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
79 | + Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses} fixlotto100resp ${fixlotto100resp} | ||
80 | + log ${fixlotto100resp} | ||
81 | + | ||
82 | + | ||
83 | +##### | ||
84 | +#Предмети закупівлі лоту | ||
85 | + | ||
86 | +Можливість додати позицію закупівлі в тендер | ||
87 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
88 | + Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 | ||
89 | + | ||
90 | +Добавити предмет закупівлі до лоту | ||
91 | + Log ${tender_data.data['items']} | ||
92 | + ${items}= Get Variable Value ${tender_data.data['items']} | ||
93 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
94 | + Set To Dictionary ${items[-1]} relatedLot ${lot_id} | ||
95 | + Log ${items[-1]} | ||
96 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items} | ||
97 | + | ||
98 | +Неможливість видалення лоту з прив’язаними предметами закупівлі | ||
99 | + ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | ||
100 | + ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} | ||
101 | + Викликати для учасника ${tender_owner} Видалити лот shouldfail ${tender_data} ${lot} | ||
102 | + | ||
103 | +Можливість видалити позиції закупівлі тендера | ||
104 | + ${items}= Get Variable Value ${tender_data.data['items']} | ||
105 | + Log ${tender_data.data} | ||
106 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} | ||
107 | + Log ${tender_data.data} | ||
108 | + | ||
109 | +Можливість додати тендерну документацію лоту | ||
110 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
111 | + [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | ||
112 | + ${filepath}= create_fake_doc | ||
113 | + ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | ||
114 | + ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
115 | + ${file_upload_process_data} = Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply} | ||
116 | + log ${file_upload_process_data} | ||
117 | + Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data} | ||
118 | + Log ${lot_id} | ||
119 | + Log ${USERS.users['${tender_owner}']} | ||
120 | + | ||
121 | + | ||
122 | +####### | ||
123 | +#Запитання до лоту | ||
124 | + | ||
125 | +Задати питання | ||
126 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | ||
127 | + ${question}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} | ||
128 | + log ${question} | ||
129 | + ${now}= Get Current Date | ||
130 | + Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} | ||
131 | + | ||
132 | +Відповісти на запитання | ||
133 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | ||
134 | + Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]} | ||
135 | + ${now}= Get Current Date | ||
136 | + Set To Dictionary ${ANSWERS[${question_id}-1].data} date ${now} | ||
137 | + | ||
138 | + | ||
139 | +###### | ||
140 | +#Cкарга на лот | ||
141 | +# | ||
142 | +# | ||
143 | +##### Дочекатися скарг на лот | ||
144 | +# | ||
145 | +# | ||
146 | +#Можливість подати скаргу на лот | ||
147 | +# [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
148 | +# [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
149 | +# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
150 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
151 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
152 | +# | ||
153 | +#Можливість побачити скаргу користувачем | ||
154 | +# [Tags] ${USERS.users['${provider}'].broker}: Відображення основних даних оголошеного тендера | ||
155 | +# Викликати для учасника ${provider} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
156 | +# | ||
157 | +#Можливість побачити скаргу анонімом | ||
158 | +# [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
159 | +# Викликати для учасника ${viewer} Порівняти скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
160 | +# | ||
161 | +#Можливість відхилити скаргу на лот | ||
162 | +# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відхилити скаргу на умови | ||
163 | +# Set To Dictionary ${COMPLAINTS[0].data} status declined | ||
164 | +# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${COMPLAINTS[${complaint_id}]} | ||
165 | +# log many ${COMPLAINTS[${complaint_id}]} | ||
166 | +# викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
167 | +# | ||
168 | +#Можливість відкинути скаргу на лот | ||
169 | +# [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відкинути скаргу на умови | ||
170 | +# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
171 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
172 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
173 | +# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
174 | +# Set To Dictionary ${COMPLAINTS[0].data} status invalid | ||
175 | +# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${COMPLAINTS[${complaint_id}]} | ||
176 | +# log many ${COMPLAINTS[${complaint_id}]} | ||
177 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
178 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
179 | +# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
180 | +# | ||
181 | +#Можливість задовільнити скаргу на лот | ||
182 | +# [Tags] ${USERS.users['${provider}'].broker}: Можливість відповісти на запитання | ||
183 | +# Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${COMPLAINTS[${complaint_id}]} | ||
184 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
185 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
186 | +# Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
187 | +# Set To Dictionary ${COMPLAINTS[0].data} status resolved | ||
188 | +# Викликати для учасника ${tender_owner} Обробити скаргу ${TENDER['TENDER_UAID']} 2 ${COMPLAINTS[${complaint_id}]} | ||
189 | +# log many ${COMPLAINTS[${complaint_id}]} | ||
190 | +# ${LAST_MODIFICATION_DATE}= Get Current Date | ||
191 | +# Set Global Variable ${LAST_MODIFICATION_DATE} | ||
192 | +# | ||
193 | +###### | ||
194 | +#Подання пропозицій | ||
195 | + | ||
196 | +Неможливість подати цінову пропозицію до початку періоду подачі пропозицій | ||
197 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
198 | + ${bid}= test lots bid data | ||
199 | + Log ${bid} | ||
200 | + ${bidresponses}= Create Dictionary | ||
201 | + ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
202 | + Set To Dictionary ${bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | ||
203 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
204 | + log ${USERS.users['${provider}']} | ||
205 | + | ||
206 | +Неможливість подати цінову пропозицію без прив’язки до лоту | ||
207 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
208 | + Дочекатись дати початку прийому пропозицій | ||
209 | + ${bid}= test bid data | ||
210 | + Log ${bid} | ||
211 | + ${bidresponses}= Create Dictionary | ||
212 | + ${no_lot_bid_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
213 | + Set To Dictionary ${bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | ||
214 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
215 | + log ${USERS.users['${provider}']} | ||
216 | + | ||
217 | +Подати цінову пропозицію першим учасником | ||
218 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
219 | + ${bid}= test lots bid data | ||
220 | + Log ${bid} | ||
221 | + ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
222 | + Set Global Variable ${biddingresponse0} | ||
223 | + log ${biddingresponse0} | ||
224 | + | ||
225 | +Можливість скасувати цінову пропозицію | ||
226 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | ||
227 | + ${biddingresponse_0}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponse0} | ||
228 | + | ||
229 | +Подати повторно цінову пропозицію першим учасником | ||
230 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
231 | + Дочекатись дати початку прийому пропозицій | ||
232 | + ${bid}= test lots bid data | ||
233 | + Log ${bid} | ||
234 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
235 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
236 | + log ${resp} | ||
237 | + log ${USERS.users['${provider}'].bidresponses} | ||
238 | + | ||
239 | +Можливість змінити повторну цінову пропозицію до 2000 | ||
240 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
241 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} amount 2000 | ||
242 | + Log ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} | ||
243 | + ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
244 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto50000resp ${fixbidto50000resp} | ||
245 | + log ${fixbidto50000resp} | ||
246 | + | ||
247 | +Можливість змінити повторну цінову пропозицію до 100 | ||
248 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
249 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} amount 100 | ||
250 | + Log ${USERS.users['${provider}'].bidresponses['fixbidto50000resp'].data.lotValues[0].value} | ||
251 | + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
252 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | ||
253 | + log ${fixbidto10resp} | ||
254 | + | ||
255 | +Подати цінову пропозицію другим учасником | ||
256 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
257 | + Дочекатись дати початку прийому пропозицій | ||
258 | + ${bid}= test lots bid data | ||
259 | + Log ${bid} | ||
260 | + ${bidresponses}= Create Dictionary | ||
261 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
262 | + Set To Dictionary ${bidresponses} resp ${resp} | ||
263 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
264 | + log ${resp} | ||
265 | + log ${USERS.users['${provider1}'].bidresponses} | ||
266 | + | ||
267 | +Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | ||
268 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | ||
269 | + ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids | ||
270 | + Should Be Equal ${bids} ${None} | ||
271 | + | ||
272 | +Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | ||
273 | + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | ||
274 | + Дочекатись дати закінчення прийому пропозицій | ||
275 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} amount 50000 | ||
276 | + Log ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} | ||
277 | + ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
278 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto50000resp ${failfixbidto50000resp} | ||
279 | + log ${failfixbidto50000resp} | ||
280 | + | ||
281 | +Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | ||
282 | + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | ||
283 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} amount 1 | ||
284 | + Log ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} | ||
285 | + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
286 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | ||
287 | + log ${failfixbidto1resp} | ||
288 | + | ||
289 | +Неможливість скасувати цінову пропозицію | ||
290 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | ||
291 | + ${biddingresponse}= Викликати для учасника ${provider1} Скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
292 | + | ||
293 | +Отримання тендера після закінчення прийому пропозицій | ||
294 | + Дочекатись синхронізації з майданчиком ${viewer} | ||
295 | + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
@@ -14,13 +14,17 @@ from robot.output.loggerhelper import Message | @@ -14,13 +14,17 @@ from robot.output.loggerhelper import Message | ||
14 | # can access them by simply importing library "service_keywords". | 14 | # can access them by simply importing library "service_keywords". |
15 | # Please ignore the warning given by Flake8 or other linter. | 15 | # Please ignore the warning given by Flake8 or other linter. |
16 | from .initial_data import ( | 16 | from .initial_data import ( |
17 | - auction_bid, create_fake_doc, | ||
18 | - test_award_data, test_bid_data, test_complaint_data, | ||
19 | - test_complaint_reply_data, test_question_answer_data, | ||
20 | - test_question_data, test_tender_data, test_tender_data_multiple_lots | 17 | + auction_bid, create_fake_doc, test_award_data, test_bid_data, |
18 | + test_bid_data_meat_tender, test_complaint_data, test_complaint_reply_data, | ||
19 | + test_invalid_features_data, test_item_data, test_lot_complaint_data, | ||
20 | + test_lot_data, test_lot_document_data, test_lot_question_data, | ||
21 | + test_lots_bid_data, test_meat_tender_data, test_question_answer_data, | ||
22 | + test_question_data, test_tender_data, test_tender_data_multiple_items, | ||
23 | + test_tender_data_multiple_lots | ||
21 | ) | 24 | ) |
22 | from .local_time import get_now, TZ | 25 | from .local_time import get_now, TZ |
23 | import os | 26 | import os |
27 | +from barbecue import chef | ||
24 | 28 | ||
25 | 29 | ||
26 | def get_current_tzdate(): | 30 | def get_current_tzdate(): |
@@ -101,7 +105,7 @@ def prepare_test_tender_data(period_intervals, mode): | @@ -101,7 +105,7 @@ def prepare_test_tender_data(period_intervals, mode): | ||
101 | if mode == 'single': | 105 | if mode == 'single': |
102 | return munchify({'data': test_tender_data(period_intervals)}) | 106 | return munchify({'data': test_tender_data(period_intervals)}) |
103 | elif mode == 'multi': | 107 | elif mode == 'multi': |
104 | - return munchify({'data': test_tender_data_multiple_lots(period_intervals)}) | 108 | + return munchify({'data': test_tender_data_multiple_items(period_intervals)}) |
105 | raise ValueError('Invalid mode for test_tender_data') | 109 | raise ValueError('Invalid mode for test_tender_data') |
106 | 110 | ||
107 | 111 |
@@ -32,7 +32,8 @@ setup(name='op_robot_tests', | @@ -32,7 +32,8 @@ setup(name='op_robot_tests', | ||
32 | 'dateutils', | 32 | 'dateutils', |
33 | 'pytz', | 33 | 'pytz', |
34 | 'parse', | 34 | 'parse', |
35 | - 'chromedriver' | 35 | + 'chromedriver', |
36 | + 'barbecue' | ||
36 | ], | 37 | ], |
37 | entry_points={ | 38 | entry_points={ |
38 | 'console_scripts': [ | 39 | 'console_scripts': [ |
Please
register
or
login
to post a comment