Commit a5bef35d5d43cea0cac46683e257623f67e409da
Merge pull request #46 from Leits/openua
Add test for openUA tenders
Showing
4 changed files
with
285 additions
and
1 deletions
| ... | ... | @@ -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 | ... | ... |
op_robot_tests/tests_files/openUA.robot
0 → 100644
| 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