Commit a5bef35d5d43cea0cac46683e257623f67e409da

Authored by selurvedu
2 parents c0ec7dc5 1cde1a91

Merge pull request #46 from Leits/openua

Add test for openUA tenders
... ... @@ -77,6 +77,9 @@ Library openprocurement_client_helper.py
77 77 [Arguments] ${username} ${tender_uid} ${fieldname} ${fieldvalue}
78 78 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid}
79 79 Set_To_Object ${tender.data} ${fieldname} ${fieldvalue}
  80 + ${procurementMethodType}= Get From Object ${tender.data} procurementMethodType
  81 + Run Keyword If '${procurementMethodType}' == 'aboveThresholdUA'
  82 + ... Remove From Dictionary ${tender.data} enquiryPeriod
80 83 ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
81 84 ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender}
82 85 Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue}
... ...
... ... @@ -579,3 +579,16 @@ def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af"
579 579 lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id}
580 580 lot_complaint.update(complaint.data)
581 581 return munchify({"data": lot_complaint})
  582 +
  583 +
  584 +def test_tender_data_openua(intervals, accelerator=0):
  585 + t_data = test_tender_data(intervals)
  586 + now = get_now()
  587 + t_data['procurementMethodType'] = 'aboveThresholdUA'
  588 + t_data['procurementMethodDetails'] = 'quick, accelerator={}'.format(accelerator)
  589 + t_data["tenderPeriod"] = {
  590 + "startDate": (now).isoformat(),
  591 + "endDate": (now + timedelta(minutes=15)).isoformat()
  592 + }
  593 + del t_data["enquiryPeriod"]
  594 + return t_data
... ...
  1 +*** Settings ***
  2 +Resource keywords.robot
  3 +Resource resource.robot
  4 +Suite Setup TestSuiteSetup
  5 +Suite Teardown Close all browsers
  6 +
  7 +*** Variables ***
  8 +${mode} openua
  9 +
  10 +${role} viewer
  11 +${broker} Quinta
  12 +
  13 +
  14 +*** Test Cases ***
  15 +Можливість оголосити понадпороговий однопредметний тендер
  16 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  17 + ... tender_owner
  18 + ... ${USERS.users['${tender_owner}'].broker}
  19 + ... minimal
  20 + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера)
  21 + ${tender_data}= Підготовка початкових даних
  22 + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data}
  23 + ${LAST_MODIFICATION_DATE}= Get Current TZdate
  24 + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data}
  25 + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID}
  26 + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE}
  27 + Log ${TENDER}
  28 +
  29 +Пошук позапорогового однопредметного тендера по ідентифікатору
  30 + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору
  31 + ... viewer tender_owner provider provider1
  32 + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker}
  33 + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker}
  34 + ... minimal
  35 + ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1}
  36 + :FOR ${username} IN @{usernames}
  37 + \ Дочекатись синхронізації з майданчиком ${username}
  38 + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
  39 +
  40 +Відображення типу закупівлі оголошеного тендер
  41 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
  42 + ... viewer
  43 + ... ${USERS.users['${viewer}'].broker}
  44 + Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procurementMethodType
  45 +
  46 +Відображення початку періоду прийому пропозицій оголошеного тендера
  47 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
  48 + ... viewer
  49 + ... ${USERS.users['${viewer}'].broker}
  50 + ... minimal
  51 + ${usernames}= Create List ${viewer} ${provider} ${provider1}
  52 + :FOR ${username} IN @{usernames}
  53 + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate
  54 +
  55 +Відображення закінчення періоду прийому пропозицій оголошеного тендера
  56 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
  57 + ... viewer
  58 + ... ${USERS.users['${viewer}'].broker}
  59 + ... minimal
  60 + ${usernames}= Create List ${viewer} ${provider} ${provider1}
  61 + :FOR ${username} IN @{usernames}
  62 + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate
  63 +
  64 +Можливість подати вимогу на умови більше ніж за 10 днів до завершення періоду подання пропозицій
  65 + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови
  66 + ... provider
  67 + ... ${USERS.users['${provider}'].broker}
  68 + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі
  69 + ${claim}= Get From List ${COMPLAINTS} 0
  70 + Set To Dictionary ${claim.data} status claim
  71 + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${claim}
  72 + ${complaints}= Create Dictionary
  73 + Set To Dictionary ${complaints} claim0 ${claim}
  74 + Set To Dictionary ${USERS.users['${provider}']} complaints ${complaints}
  75 +
  76 +Можливість скасувати вимогу на умови
  77 + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови
  78 + ... provider
  79 + ... ${USERS.users['${provider}'].broker}
  80 + ${claim}= Get From Dictionary ${USERS.users['${provider}'].complaints} claim0
  81 + Set To Dictionary ${claim.data} status cancelled
  82 + Set To Dictionary ${claim.data} cancellationReason test_draft_cancellation
  83 + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${claim}
  84 +
  85 +
  86 +Подати цінову пропозицію першим учасником після оголошення тендеру
  87 + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
  88 + ... provider
  89 + ... ${USERS.users['${provider}'].broker}
  90 + ${bid}= test bid data
  91 + Log ${bid}
  92 + ${bidresponses}= Create Dictionary
  93 + Set To Dictionary ${bidresponses} bid ${bid}
  94 + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses}
  95 + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  96 + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp}
  97 + log ${resp}
  98 +
  99 +Подати цінову пропозицію другим учасником
  100 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
  101 + ... provider1
  102 + ... ${USERS.users['${provider1}'].broker}
  103 + ${bid}= test bid data
  104 + Log ${bid}
  105 + ${bidresponses}= Create Dictionary
  106 + Set To Dictionary ${bidresponses} bid ${bid}
  107 + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses}
  108 + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  109 + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp}
  110 + log ${resp}
  111 +
  112 +Можливість редагувати однопредметний тендер більше ніж за 7 днів до завершення періоду подання пропозицій
  113 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  114 + ... tender_owner
  115 + ... ${USERS.users['${tender_owner}'].broker}
  116 + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description
  117 +
  118 +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю
  119 + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
  120 + ... provider provider1
  121 + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker}
  122 + ${usernames}= Create List ${provider} ${provider1}
  123 + :FOR ${username} IN @{usernames}
  124 + \ Дочекатись синхронізації з майданчиком ${username}
  125 + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
  126 + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']}
  127 + \ Should Be Equal ${bid.data.status} invalid
  128 + \ Log ${bid}
  129 +
  130 +
  131 +Оновити статус цінової пропозиції першого учасника
  132 + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
  133 + ... provider
  134 + ... ${USERS.users['${provider}'].broker}
  135 + ${activestatusresp}= create_data_dict data.status active
  136 + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${activestatusresp}
  137 + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp}
  138 + log ${activestatusresp}
  139 +
  140 +Cкасувати цінову пропозицію другого учасника
  141 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію
  142 + ... provider1
  143 + ... ${USERS.users['${provider1}'].broker}
  144 + ${bid}= Get Variable Value ${USERS.users['${provider1}'].bidresponses['resp']}
  145 + ${bidresponses}= Викликати для учасника ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  146 +
  147 +Повторно подати цінову пропозицію другим учасником після першої зміни
  148 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
  149 + ... provider1
  150 + ... ${USERS.users['${provider1}'].broker}
  151 + ${bid}= test bid data
  152 + Log ${bid}
  153 + ${bidresponses}= Create Dictionary
  154 + Set To Dictionary ${bidresponses} bid ${bid}
  155 + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses}
  156 + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  157 + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp}
  158 + log ${resp}
  159 +
  160 +Неможливість редагувати однопредметний тендер менше ніж за 7 днів до завершення періоду подання пропозицій
  161 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  162 + ... tender_owner
  163 + ... ${USERS.users['${tender_owner}'].broker}
  164 + ${no_edit_time}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} -6
  165 + Дочекатись дати ${no_edit_time}
  166 + Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} description description
  167 +
  168 +Неможливість подати вимогу на умови менше ніж за 10 днів до завершення періоду подання пропозицій
  169 + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови
  170 + ... provider
  171 + ... ${USERS.users['${provider}'].broker}
  172 + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі
  173 + ${claim}= Get From List ${COMPLAINTS} 0
  174 + Set To Dictionary ${claim.data} status claim
  175 + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${claim}
  176 +
  177 +
  178 +Продовжити період редагування подання пропозиції на 7 днів
  179 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  180 + ... tender_owner
  181 + ... ${USERS.users['${tender_owner}'].broker}
  182 + ${endDate}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} 7
  183 + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} tenderPeriod.endDate ${endDate}
  184 +
  185 +
  186 +Можливість подати скаргу на умови більше ніж за 4 дні до завершення періоду подання пропозицій
  187 + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови
  188 + ... provider
  189 + ... ${USERS.users['${provider}'].broker}
  190 + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі
  191 + Дочекатись синхронізації з майданчиком ${provider}
  192 + ${complaint}= Get From List ${COMPLAINTS} 0
  193 + Set To Dictionary ${complaint.data} status pending
  194 + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${complaint}
  195 + Set To Dictionary ${USERS.users['${provider}'].complaints} complaint ${complaint}
  196 +
  197 +
  198 +Можливість скасувати скаргу на умови
  199 + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови
  200 + ... provider
  201 + ... ${USERS.users['${provider}'].broker}
  202 + ${complaint}= Get From Dictionary ${USERS.users['${provider}'].complaints} complaint
  203 + Set To Dictionary ${complaint.data} status cancelled
  204 + Set To Dictionary ${complaint.data} cancellationReason test_draft_cancellation
  205 + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${complaint}
  206 +
  207 +
  208 +
  209 +Можливість редагувати однопредметний тендер після продовження періоду подання пропозицій
  210 + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер
  211 + ... tender_owner
  212 + ... ${USERS.users['${tender_owner}'].broker}
  213 + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description
  214 +
  215 +
  216 +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю після другої зміни
  217 + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
  218 + ... provider provider1
  219 + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker}
  220 + ${usernames}= Create List ${provider} ${provider1}
  221 + :FOR ${username} IN @{usernames}
  222 + \ Дочекатись синхронізації з майданчиком ${username}
  223 + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
  224 + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']}
  225 + \ Should Be Equal ${bid.data.status} invalid
  226 + \ Log ${bid}
  227 +
  228 +
  229 +Можливість оновити статус цінової пропозиції першого учасника після другої зміни
  230 + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію
  231 + ... provider
  232 + ... ${USERS.users['${provider}'].broker}
  233 + ${activestatusresp}= create_data_dict data.status active
  234 + Log ${USERS.users['${provider}'].bidresponses['resp'].data.status}
  235 + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${activestatusresp}
  236 + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp}
  237 + log ${activestatusresp}
  238 +
  239 +
  240 +Повторно подати цінову пропозицію другим учасником після другої зміни
  241 + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію
  242 + ... provider1
  243 + ... ${USERS.users['${provider1}'].broker}
  244 + ${bid}= test bid data
  245 + Log ${bid}
  246 + ${bidresponses}= Create Dictionary
  247 + Set To Dictionary ${bidresponses} bid ${bid}
  248 + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses}
  249 + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid}
  250 + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp}
  251 + log ${resp}
  252 +
  253 +
  254 +Неможливість подати скаргу на умови менше ніж за 4 дні до завершення періоду подання пропозицій
  255 + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови
  256 + ... provider
  257 + ... ${USERS.users['${provider}'].broker}
  258 + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі
  259 + Log ${USERS.users['${provider}'].tender_data.data.complaintPeriod.endDate}
  260 + Дочекатись Дати ${USERS.users['${provider}'].tender_data.data.complaintPeriod.endDate}
  261 + Дочекатись синхронізації з майданчиком ${provider}
  262 + ${complaint}= Get From List ${COMPLAINTS} 0
  263 + Set To Dictionary ${complaint.data} status pending
  264 + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${COMPLAINTS[0]}
... ...
... ... @@ -21,7 +21,7 @@ from .initial_data import (
21 21 test_lots_bid_data, test_meat_tender_data, test_question_answer_data,
22 22 test_question_data, test_supplier_data, test_tender_data,
23 23 test_tender_data_limited, test_tender_data_multiple_items,
24   - test_tender_data_multiple_lots
  24 + test_tender_data_multiple_lots, test_tender_data_openua
25 25 )
26 26 from .local_time import get_now, TZ
27 27 import os
... ... @@ -33,6 +33,10 @@ def get_current_tzdate():
33 33 return get_now().strftime('%Y-%m-%d %H:%M:%S.%f')
34 34
35 35
  36 +def add_minutes_to_date(date, minutes):
  37 + return (parse_date(date) + timedelta(minutes=int(minutes))).isoformat()
  38 +
  39 +
36 40 def get_file_contents(path):
37 41 with open(path, 'r') as f:
38 42 return unicode(f.read()) or u''
... ...
Please register or login to post a comment