Commit 93cf3ad880e3f52af680a112bad52d6604092bbd

Authored by mykhaly
1 parent 28832b9c

Added test suite for limited procurement procedure

... ... @@ -425,3 +425,105 @@ Library openprocurement_client_helper.py
425 425 ${tender_lot}= Call Method ${USERS.users['${ARGUMENTS[0]}'].client} delete_lot ${tender} ${ARGUMENTS[2]}
426 426 Log ${tender_lot}
427 427 [return] ${tender_lot}
  428 +
  429 +
  430 +Додати постачальника
  431 + [Arguments] ${username} ${tenderUAID}
  432 + log ${username}
  433 + log ${tenderUAID}
  434 + ${supplier_data}= test supplier data
  435 + log ${supplier_data}
  436 + ${tenderID}= openprocurement_client.Отримати internal id по UAid ${username} ${tenderUAID}
  437 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${tenderID}
  438 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  439 + ${reply}= Call Method ${USERS.users['${username}'].client} create_award ${tender} ${supplier_data}
  440 + [return] ${reply}
  441 +
  442 +
  443 +Підтвердити постачальника
  444 + [Arguments] ${username} ${tenderUAID}
  445 + log ${username}
  446 + log ${tenderUAID}
  447 + ${tenderID}= openprocurement_client.Отримати internal id по UAid ${username} ${tenderUAID}
  448 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${tenderID}
  449 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  450 + log ${tender}
  451 + ${award_data}= Confirm supplier ${tender['data']['awards'][0]['id']}
  452 + log ${award_data}
  453 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award_data}
  454 + [return] ${reply}
  455 +
  456 +
  457 +Додати запит на скасування
  458 + [Arguments] ${username} ${tenderUAID}
  459 + ${tenderID}= openprocurement_client.Отримати internal id по UAid ${username} ${tenderUAID}
  460 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${tenderID}
  461 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  462 + ${cancel_data}= Cancel tender prost :))
  463 + log ${cancel_data}
  464 + ${reply}= Call Method ${USERS.users['${username}'].client} create_cancellation ${tender} ${cancel_data}
  465 + [return] ${reply}
  466 +
  467 +
  468 +Завантажити документацію до запиту на скасування
  469 + [Arguments] ${username} ${path} ${tenderid}
  470 + log ${username}
  471 + log ${path}
  472 + log ${tenderid}
  473 + ${internalid}= Отримати internal id по UAid ${username} ${tenderid}
  474 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid}
  475 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  476 + ${response}= Call Method ${USERS.users['${username}'].client} upload_cancellation_document ${path} ${tender} ${tender['data']['cancellations'][0]['id']}
  477 + log ${response}
  478 + ${uploaded_file} = Create Dictionary filepath ${path} upload_response ${response}
  479 + [return] ${uploaded_file}
  480 +
  481 +
  482 +Змінити опис документа в скасуванні
  483 + [Arguments] ${username} ${tenderUAID}
  484 + Log ${username}
  485 + Log ${tenderUAID}
  486 + ${tenderID}= openprocurement_client.Отримати internal id по UAid ${username} ${tenderUAID}
  487 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${tenderID}
  488 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  489 + ${data}= change_cancellation_document_field description test_description
  490 + log ${data}
  491 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation_document ${tender} ${data}
  492 + [return] ${reply}
  493 +
  494 +
  495 +Завантажити нову версію документа до запиту на скасування
  496 + [Arguments] ${username} ${path}
  497 + ${internalid}= Отримати internal id по UAid ${username} ${TENDER['TENDER_UAID']}
  498 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid}
  499 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  500 + ${response}= Call Method ${USERS.users['${username}'].client} update_cancellation_document ${path} ${tender} ${tender['data']['cancellations'][0]['id']} ${tender['data']['cancellations'][0]['documents'][0]['id']}
  501 + ${uploaded_file} = Create Dictionary filepath ${path} upload_response ${response}
  502 + Log ${uploaded_file}
  503 + [return] ${uploaded_file}
  504 +
  505 +
  506 +Підтвердити скасування закупівлі
  507 + [Arguments] ${username} ${tenderUAID}
  508 + log ${username}
  509 + log ${tenderUAID}
  510 + ${tenderID}= openprocurement_client.Отримати internal id по UAid ${username} ${tenderUAID}
  511 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${tenderID}
  512 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  513 + ${data}= Confirm cancellation ${tender['data']['cancellations'][0]['id']}
  514 + log ${data}
  515 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation ${tender} ${data}
  516 + [return] ${reply}
  517 +
  518 +
  519 +Підтвердити підписання контракту
  520 + [Arguments] ${username} ${tenderUAID}
  521 + log ${username}
  522 + log ${tenderUAID}
  523 + ${tenderID}= openprocurement_client.Отримати internal id по UAid ${username} ${tenderUAID}
  524 + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${tenderID}
  525 + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
  526 + ${data}= confirm contract ${tender['data']['contracts'][0]['id']}
  527 + log ${data}
  528 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_contract ${tender} ${data}
  529 + [return] ${reply}
... ...
... ... @@ -112,6 +112,58 @@ def test_tender_data(intervals):
112 112 return t_data
113 113
114 114
  115 +def test_tender_data_limited(intervals):
  116 + return {
  117 + "items": [
  118 + {
  119 + "additionalClassifications": [
  120 + {
  121 + "description": u"Послуги шкільних їдалень",
  122 + "id": "55.51.10.300",
  123 + "scheme": u"ДКПП"
  124 + }
  125 + ],
  126 + "classification": {
  127 + "description": u"Послуги з харчування у школах",
  128 + "id": "55523100-3",
  129 + "scheme": "CPV"
  130 + },
  131 + "description": u"Послуги шкільних їдалень",
  132 + "id": "2dc54675d6364e2baffbc0f8e74432ac"
  133 + }
  134 + ],
  135 + "owner": "test.quintagroup.com",
  136 + "procurementMethod": "limited",
  137 + "procurementMethodType": "reporting",
  138 + "procuringEntity": {
  139 + "address": {
  140 + "countryName": u"Україна",
  141 + "locality": u"м. Вінниця",
  142 + "postalCode": "21027",
  143 + "region": u"м. Вінниця",
  144 + "streetAddress": u"вул. Стахурського. 22"
  145 + },
  146 + "contactPoint": {
  147 + "name": u"Куца Світлана Валентинівна",
  148 + "telephone": "+380 (432) 46-53-02",
  149 + "url": "http://sch10.edu.vn.ua/"
  150 + },
  151 + "identifier": {
  152 + "id": "21725150",
  153 + "legalName": u"Заклад \"Загальноосвітня школа І-ІІІ ступенів № 10 Вінницької міської ради\"",
  154 + "scheme": u"UA-EDR"
  155 + },
  156 + "name": u"ЗОСШ #10 м.Вінниці"
  157 + },
  158 + "value": {
  159 + "amount": 500000,
  160 + "currency": "UAH",
  161 + "valueAddedTaxIncluded": True
  162 + },
  163 + "title": u"Послуги шкільних їдалень",
  164 + }
  165 +
  166 +
115 167 def test_tender_data_multiple_items(intervals):
116 168 now = get_now()
117 169 t_data = test_tender_data(intervals)
... ... @@ -566,6 +618,41 @@ def auction_bid():
566 618 })
567 619
568 620
  621 +def test_supplier_data():
  622 + return {
  623 + "data": {
  624 + "suppliers": [
  625 + {
  626 + "address": {
  627 + "countryName": u"Україна",
  628 + "locality": u"м. Вінниця",
  629 + "postalCode": "21100",
  630 + "region": u"м. Вінниця",
  631 + "streetAddress": u"вул. Островського, 33"
  632 + },
  633 + "contactPoint": {
  634 + "email": "soleksuk@gmail.com",
  635 + "name": u"Сергій Олексюк",
  636 + "telephone": "+380 (432) 21-69-30"
  637 + },
  638 + "identifier": {
  639 + "id": "13313462",
  640 + "legalName": u"Державне комунальне підприємство громадського харчування «Школяр»",
  641 + "scheme": "UA-EDR",
  642 + "uri": "http://sch10.edu.vn.ua/"
  643 + },
  644 + "name": u"ДКП «Школяр»"
  645 + }
  646 + ],
  647 + "value": {
  648 + "amount": 475000,
  649 + "currency": "UAH",
  650 + "valueAddedTaxIncluded": True
  651 + }
  652 + }
  653 + }
  654 +
  655 +
569 656 def test_award_data():
570 657 return munchify({'data': {}})
571 658
... ...
  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 +
  13 +*** Variables ***
  14 +${mode} limited
  15 +${role} viewer
  16 +${broker} Quinta
  17 +
  18 +
  19 +*** Test Cases ***
  20 +Можливість створити пряму закупівлю
  21 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість створити тендер
  22 + ${tender_data}= Підготовка початкових даних
  23 + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data}
  24 + ${LAST_MODIFICATION_DATE}= Get Current TZdate
  25 + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data}
  26 + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID}
  27 + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE}
  28 + log ${TENDER}
  29 + log ${tender_data}
  30 +
  31 +
  32 +Пошук прямої закупівлі по ідентифікатору
  33 + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору
  34 + Дочекатись синхронізації з майданчиком ${viewer}
  35 + Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
  36 + Log ${TENDER['TENDER_UAID']}
  37 +
  38 +
  39 +Можливість додати документацію до прямої закупівлі
  40 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документацію
  41 + [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі
  42 + ${filepath}= create_fake_doc
  43 + ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']}
  44 + ${file_upload_process_data}= Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply}
  45 + log ${file_upload_process_data}
  46 + Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data}
  47 + Log ${USERS.users['${tender_owner}']}
  48 +
  49 +
  50 +Можливість зареєструвати і підтвердити постачальника
  51 + ${award_response}= Викликати для учасника ${tender_owner} Додати постачальника ${TENDER['TENDER_UAID']}
  52 + Log ${award_response}
  53 + ${award_confirmation_response}= Викликати для учасника ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']}
  54 + log ${award_confirmation_response}
  55 +
  56 +
  57 +Можливість укласти угоду
  58 + ${contract_confirmation_response}= Викликати для учасника ${tender_owner} Підтвердити підписання контракту shouldfail ${TENDER['TENDER_UAID']}
  59 + log ${contract_confirmation_response}
  60 +
  61 +
  62 +Можливість сформувати запит на скасування
  63 + ${cancellation_response}= Викликати для учасника ${tender_owner} Додати запит на скасування ${TENDER['TENDER_UAID']}
  64 + log ${cancellation_response}
  65 + Set To Dictionary ${USERS.users['${tender_owner}']} cancellation_response_field ${cancellation_response}
  66 + log ${USERS.users['${tender_owner}']['cancellation_response_field']}
  67 +
  68 +
  69 +Можливість додати документацію до запиту на скасування
  70 + ${filepath}= create_fake_doc
  71 + ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документацію до запиту на скасування ${filepath} ${TENDER['TENDER_UAID']}
  72 + log ${doc_upload_reply}
  73 + ${file_upload_process_data}= Create Dictionary filepath=${filepath} doc_upload_reply=${doc_upload_reply}
  74 + log ${file_upload_process_data}
  75 + Set To Dictionary ${USERS.users['${tender_owner}']} file_upload_process_data ${file_upload_process_data}
  76 +
  77 +
  78 +Можливість змінити опис процедури і інші поля
  79 + ${cancellation_document_updated_data}= Викликати для учасника ${tender_owner} Змінити опис документа в скасуванні ${TENDER['TENDER_UAID']}
  80 + log ${cancellation_document_updated_data}
  81 +
  82 +
  83 +Можливість завантажити нову версію документа до запиту на скасування
  84 + ${filepath}= create_fake_doc
  85 + ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити нову версію документа до запиту на скасування ${filepath}
  86 + log ${doc_upload_reply}
  87 +
  88 +
  89 +Можливість активувати скасування закупівлі
  90 + ${cancellation_confirmation_response}= Викликати для учасника ${tender_owner} Підтвердити скасування закупівлі ${TENDER['TENDER_UAID']}
  91 + log ${cancellation_confirmation_response}
... ...
... ... @@ -19,7 +19,8 @@ from .initial_data import (
19 19 test_invalid_features_data, test_item_data, test_lot_complaint_data,
20 20 test_lot_data, test_lot_document_data, test_lot_question_data,
21 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,
  22 + test_question_data, test_supplier_data, test_tender_data,
  23 + test_tender_data_limited, test_tender_data_multiple_items,
23 24 test_tender_data_multiple_lots
24 25 )
25 26 from .local_time import get_now, TZ
... ... @@ -106,6 +107,8 @@ def prepare_test_tender_data(period_intervals, mode):
106 107 return munchify({'data': test_tender_data(period_intervals)})
107 108 elif mode == 'multi':
108 109 return munchify({'data': test_tender_data_multiple_items(period_intervals)})
  110 + elif mode == 'limited':
  111 + return munchify({'data': test_tender_data_limited(period_intervals)})
109 112 raise ValueError('Invalid mode for test_tender_data')
110 113
111 114
... ... @@ -179,6 +182,52 @@ def merge_dicts(left, right):
179 182 return new
180 183
181 184
  185 +def cancel_tender(cancellation_reason):
  186 + return {
  187 + 'data': {
  188 + 'reason': cancellation_reason
  189 + }
  190 + }
  191 +
  192 +
  193 +def confirm_supplier(supplier_id):
  194 + return {
  195 + "data": {
  196 + "status": "active",
  197 + "id": supplier_id
  198 + }
  199 + }
  200 +
  201 +
  202 +def change_cancellation_document_field(key, value):
  203 + data = {
  204 + "data": {
  205 + key: value
  206 + }
  207 + }
  208 + return data
  209 +
  210 +
  211 +def confirm_cancellation(cancellation_id):
  212 + data = {
  213 + "data": {
  214 + "status": "active",
  215 + "id": cancellation_id
  216 + }
  217 + }
  218 + return data
  219 +
  220 +
  221 +def confirm_contract(contract_id):
  222 + data = {
  223 + "data": {
  224 + "id": contract_id,
  225 + "status": "active"
  226 + }
  227 + }
  228 + return data
  229 +
  230 +
182 231 # GUI Frontends common
183 232 def add_data_for_gui_frontends(tender_data):
184 233 now = get_now()
... ...
Please register or login to post a comment