Commit 4140169abed3360f345d8df9ec30f867861abcf2

Authored by Leits
1 parent bba2edd2

Multilot tender test

... ... @@ -348,3 +348,57 @@ Library openprocurement_client_helper.py
348 348 ${contents} ${filename}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} get_file ${tender} ${ARGUMENTS[2]} ${token}
349 349 log ${filename}
350 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 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 116 now = get_now()
117 117 t_data = test_tender_data(intervals)
118 118 t_data.update({
... ... @@ -282,6 +282,30 @@ def test_tender_data_multiple_lots(intervals):
282 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 +
285 309 def test_meat_tender_data(tender):
286 310 item_id = "edd0032574bf4402877ad5f362df225a"
287 311 tender.data['items'][0].id = item_id
... ... @@ -483,6 +507,53 @@ def test_bid_data_meat_tender():
483 507 })
484 508
485 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 +
486 557 def auction_bid():
487 558 return munchify({
488 559 "data": {
... ... @@ -501,93 +572,131 @@ def test_award_data():
501 572
502 573 def test_item_data():
503 574 now = get_now()
504   - return {
505   - "description": fake.catch_phrase(),
506   - "deliveryDate": {
507   - "endDate": (now + timedelta(days=5)).isoformat()
  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 днів та більше"
508 628 },
509   - "deliveryLocation": {
510   - "latitude": 49.8500,
511   - "longitude": 24.0167
  629 + {
  630 + "value": 0.1,
  631 + "title": "90-179 днів",
512 632 },
513   - "deliveryAddress": {
514   - "countryName": u"Україна",
515   - "countryName_ru": u"Украина",
516   - "countryName_en": "Ukraine",
517   - "postalCode": fake.postalcode(),
518   - "region": u"м. Київ",
519   - "locality": u"м. Київ",
520   - "streetAddress": fake.street_address()
  633 + {
  634 + "value": 0.05,
  635 + "title": "30-89 днів"
521 636 },
522   - "classification": {
523   - "scheme": u"CPV",
524   - "id": u"44617100-9",
525   - "description": u"Картонки",
526   - "description_ru": u"Большие картонные коробки",
527   - "description_en": u"Cartons"
  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": "Вищий"
528 653 },
529   - "additionalClassifications": [
530   - {
531   - "scheme": u"ДКПП",
532   - "id": u"17.21.1",
533   - "description": u"Папір і картон гофровані, паперова й картонна тара"
534   - }
535   - ],
536   - "unit": {
537   - "name": u"кілограм",
538   - "name_ru": u"килограмм",
539   - "name_en": "kilogram",
540   - "code": u"KGM"
  654 + {
  655 + "value": 0.01,
  656 + "title": "Перший",
541 657 },
542   - "quantity": fake.pyint()
543   - }
  658 + {
  659 + "value": 0,
  660 + "title": "Другий"
  661 + }
  662 + ]
  663 + }
  664 + ]
544 665
545 666
546   -def test_invalid_features_data():
547   - return [
548   - {
549   - "code": "ee3e24bc17234a41bd3e3a04cc28e9c6",
550   - "featureOf": "tenderer",
551   - "title": "Термін оплати",
552   - "description": "Умови відстрочки платежу після поставки товару",
553   - "enum": [
554   - {
555   - "value": 0.35,
556   - "title":"180 днів та більше"
557   - },
558   - {
559   - "value": 0.1,
560   - "title": "90-179 днів",
561   - },
562   - {
563   - "value": 0.05,
564   - "title": "30-89 днів"
565   - },
566   - {
567   - "value": 0,
568   - "title": "Менше 30 днів"
569   - }
570   - ]
571   - },
572   - {
573   - "code": "48cfd91612c04125ab406374d7cc8d93",
574   - "featureOf": "item",
575   - "relatedItem": "edd0032574bf4402877ad5f362df225a",
576   - "title": "Сорт",
577   - "description": "Сорт продукції",
578   - "enum":[
579   - {
580   - "value": 0.35,
581   - "title": "Вищий"
582   - },
583   - {
584   - "value": 0.01,
585   - "title": "Перший",
586   - },
587   - {
588   - "value": 0,
589   - "title": "Другий"
590   - }
591   - ]
592   - }
593   -]
  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 71 Підготовка початкових даних
72 72 @{QUESTIONS}= Create list
73 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 76 Set Global Variable @{QUESTIONS}
76 77 @{ANSWERS}= Create list
77 78 ${answer}= test_question_answer_data
... ... @@ -79,7 +80,8 @@ Get Broker Property By Username
79 80 Set Global Variable @{ANSWERS}
80 81 @{COMPLAINTS}= Create list
81 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 85 Set Global Variable @{COMPLAINTS}
84 86 @{REPLIES}= Create list
85 87 ${reply}= test_complaint_reply_data
... ...
  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']}
... ...
1 1 *** Variables ***
2   -${API_HOST_URL} https://api-sandbox.openprocurement.org
3   -${api_version} 0.9
  2 +${API_HOST_URL} https://lb.api-sandbox.openprocurement.org
  3 +${api_version} 0.10
... ...
... ... @@ -16,13 +16,14 @@ from robot.output.loggerhelper import Message
16 16 from .initial_data import (
17 17 auction_bid, create_fake_doc, test_award_data, test_bid_data,
18 18 test_bid_data_meat_tender, test_complaint_data, test_complaint_reply_data,
19   - test_invalid_features_data, test_item_data, test_meat_tender_data,
20   - test_question_answer_data, test_question_data, test_tender_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,
21 23 test_tender_data_multiple_lots
22 24 )
23 25 from .local_time import get_now, TZ
24 26 import os
25   -import calendar
26 27 from barbecue import chef
27 28
28 29
... ... @@ -109,7 +110,7 @@ def prepare_test_tender_data(period_intervals, mode):
109 110 if mode == 'single':
110 111 return munchify({'data': test_tender_data(period_intervals)})
111 112 elif mode == 'multi':
112   - return munchify({'data': test_tender_data_multiple_lots(period_intervals)})
  113 + return munchify({'data': test_tender_data_multiple_items(period_intervals)})
113 114 raise ValueError('Invalid mode for test_tender_data')
114 115
115 116
... ...
Please register or login to post a comment