Commit e3bdc96c4cd5a3bb5d0faa9ab434f51cd81a418b
Merge pull request #214 from openprocurement/devel
Merge devel in master
Showing
18 changed files
with
2347 additions
and
1802 deletions
Too many changes to show.
To preserve performance only 18 of 18+ files are displayed.
| 1 | -*** Settings *** | ||
| 2 | -Resource keywords.robot | ||
| 3 | -Resource resource.robot | ||
| 4 | -Suite Setup Test Suite Setup | ||
| 5 | -Suite Teardown Test Suite Teardown | ||
| 6 | - | ||
| 7 | - | ||
| 8 | -*** Variables *** | ||
| 9 | -${mode} openeu | ||
| 10 | -@{used_roles} tender_owner provider provider1 viewer | ||
| 11 | - | ||
| 12 | - | ||
| 13 | -*** Test Cases *** | ||
| 14 | -Можливість оголосити понадпороговий однопредметний тендер | ||
| 15 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 16 | - ... tender_owner | ||
| 17 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 18 | - ... minimal | ||
| 19 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 20 | - ${tender_data}= Підготовка даних для створення тендера | ||
| 21 | - ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | ||
| 22 | - ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${adapted_data} | ||
| 23 | - Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | ||
| 24 | - Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | ||
| 25 | - Log ${TENDER} | ||
| 26 | - | ||
| 27 | - | ||
| 28 | -Можливість знайти понадпороговий однопредметний тендер по ідентифікатору | ||
| 29 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти тендер | ||
| 30 | - ... viewer tender_owner provider provider1 | ||
| 31 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 32 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 33 | - ... minimal | ||
| 34 | - :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 35 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 36 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 37 | - | ||
| 38 | - | ||
| 39 | -Відображення типу оголошеного тендера | ||
| 40 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 41 | - ... viewer | ||
| 42 | - ... ${USERS.users['${viewer}'].broker} | ||
| 43 | - Звірити поле тендера ${viewer} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} procurementMethodType | ||
| 44 | - | ||
| 45 | - | ||
| 46 | -Відображення початку періоду прийому пропозицій понадпорогового тендера | ||
| 47 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 48 | - ... viewer | ||
| 49 | - ... ${USERS.users['${viewer}'].broker} | ||
| 50 | - ... minimal | ||
| 51 | - :FOR ${username} IN ${viewer} ${provider} ${provider1} | ||
| 52 | - \ Звірити дату тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | ||
| 53 | - | ||
| 54 | - | ||
| 55 | -Відображення закінчення періоду прийому пропозицій понадпорогового тендера | ||
| 56 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 57 | - ... viewer | ||
| 58 | - ... ${USERS.users['${viewer}'].broker} | ||
| 59 | - ... minimal | ||
| 60 | - :FOR ${username} IN ${viewer} ${provider} ${provider1} | ||
| 61 | - \ Звірити дату тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | ||
| 62 | - | ||
| 63 | - | ||
| 64 | -Відображення закінчення періоду подання скарг на оголошений тендер | ||
| 65 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 66 | - ... viewer | ||
| 67 | - ... ${USERS.users['${viewer}'].broker} | ||
| 68 | - ... minimal | ||
| 69 | - :FOR ${username} IN ${viewer} ${provider} ${provider1} | ||
| 70 | - \ Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} complaintPeriod.endDate | ||
| 71 | - | ||
| 72 | - | ||
| 73 | -Можливість подати вимогу на умови більше ніж за 10 днів до завершення періоду подання пропозицій | ||
| 74 | - [Tags] ${USERS.users['${provider}'].broker}: Подання скарги | ||
| 75 | - ... provider | ||
| 76 | - ... ${USERS.users['${provider}'].broker} | ||
| 77 | - [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеного тендера | ||
| 78 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 79 | - Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} | ||
| 80 | - ${claim}= Підготовка даних для подання вимоги | ||
| 81 | - ${complaintID}= Викликати для учасника ${provider} | ||
| 82 | - ... Створити вимогу | ||
| 83 | - ... ${TENDER['TENDER_UAID']} | ||
| 84 | - ... ${claim} | ||
| 85 | - ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} | ||
| 86 | - Set To Dictionary ${USERS.users['${provider}']} claim_data=${claim_data} | ||
| 87 | - | ||
| 88 | - | ||
| 89 | -Можливість скасувати вимогу на умови | ||
| 90 | - [Tags] ${USERS.users['${provider}'].broker}: Подання скарги | ||
| 91 | - ... provider | ||
| 92 | - ... ${USERS.users['${provider}'].broker} | ||
| 93 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 94 | - ${cancellation_reason}= create_fake_sentence | ||
| 95 | - ${data}= Create Dictionary status=cancelled cancellationReason=${cancellation_reason} | ||
| 96 | - ${cancellation_data}= Create Dictionary data=${data} | ||
| 97 | - Викликати для учасника ${provider} | ||
| 98 | - ... Скасувати вимогу | ||
| 99 | - ... ${TENDER['TENDER_UAID']} | ||
| 100 | - ... ${USERS.users['${provider}']['claim_data']['complaintID']} | ||
| 101 | - ... ${cancellation_data} | ||
| 102 | - Set To Dictionary ${USERS.users['${provider}'].claim_data} cancellation=${cancellation_data} | ||
| 103 | - | ||
| 104 | - | ||
| 105 | -Можливість подати цінову пропозицію першим учасником | ||
| 106 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 107 | - ... provider | ||
| 108 | - ... ${USERS.users['${provider}'].broker} | ||
| 109 | - [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} | ||
| 110 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 111 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 112 | - Log ${bid} | ||
| 113 | - ${bidresponses}= Create Dictionary | ||
| 114 | - Set To Dictionary ${bidresponses} bid=${bid} | ||
| 115 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses=${bidresponses} | ||
| 116 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 117 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp=${resp} | ||
| 118 | - log ${resp} | ||
| 119 | - | ||
| 120 | - | ||
| 121 | -Можливість завантажити публічний документ до пропозиції першим учасником | ||
| 122 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 123 | - ... provider | ||
| 124 | - ... ${USERS.users['${provider}'].broker} | ||
| 125 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 126 | - log ${USERS.users['${provider}'].broker} | ||
| 127 | - ${filepath}= create_fake_doc | ||
| 128 | - ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | ||
| 129 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
| 130 | - | ||
| 131 | -############################################################################################## | ||
| 132 | -# openEU: Операції із документацію пропозиції | ||
| 133 | - | ||
| 134 | -Можливість змінити документацію цінової пропозиції з публічної на приватну | ||
| 135 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 136 | - ... provider | ||
| 137 | - ... ${USERS.users['${provider}'].broker} | ||
| 138 | - ... openeu | ||
| 139 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 140 | - log ${USERS.users['${provider}'].broker} | ||
| 141 | - ${privat_doc}= create_data_dict data.confidentialityRationale "Only our company sells badgers with pink hair." | ||
| 142 | - Set To Dictionary ${privat_doc.data} confidentiality=buyerOnly | ||
| 143 | - ${bidid}= Get Variable Value ${USERS.users['${provider}'].bidresponses['resp'].data.id} | ||
| 144 | - ${docid}= Get Variable Value ${USERS.users['${provider}'].bidresponses['bid_doc_upload']['upload_response'].data.id} | ||
| 145 | - ${bid_doc_modified}= Викликати для учасника ${provider} Змінити документацію в ставці ${privat_doc} ${bidid} ${docid} | ||
| 146 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_modified=${bid_doc_modified} | ||
| 147 | - | ||
| 148 | - | ||
| 149 | -Можливість завантажити фінансовий документ до пропозиції першим учасником | ||
| 150 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 151 | - ... provider | ||
| 152 | - ... ${USERS.users['${provider}'].broker} | ||
| 153 | - ... openeu | ||
| 154 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 155 | - log ${USERS.users['${provider}'].broker} | ||
| 156 | - ${filepath}= create_fake_doc | ||
| 157 | - ${doc_type}= Set variable financial_documents | ||
| 158 | - ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
| 159 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload=${bid_doc_upload} | ||
| 160 | - | ||
| 161 | - | ||
| 162 | -Можливість завантажити кваліфікаційний документ до пропозиції першим учасником | ||
| 163 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 164 | - ... provider | ||
| 165 | - ... ${USERS.users['${provider}'].broker} | ||
| 166 | - ... openeu | ||
| 167 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 168 | - log ${USERS.users['${provider}'].broker} | ||
| 169 | - ${filepath}= create_fake_doc | ||
| 170 | - ${doc_type}= Set variable eligibility_documents | ||
| 171 | - ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
| 172 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload=${bid_doc_upload} | ||
| 173 | - | ||
| 174 | - | ||
| 175 | -Можливість завантажити документ для критеріїв прийнятності до пропозиції першим учасником | ||
| 176 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 177 | - ... provider | ||
| 178 | - ... ${USERS.users['${provider}'].broker} | ||
| 179 | - ... openeu | ||
| 180 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 181 | - log ${USERS.users['${provider}'].broker} | ||
| 182 | - ${filepath}= create_fake_doc | ||
| 183 | - ${doc_type}= Set variable qualification_documents | ||
| 184 | - ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
| 185 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload=${bid_doc_upload} | ||
| 186 | - | ||
| 187 | -############################################################################################## | ||
| 188 | - | ||
| 189 | -Можливість подати цінову пропозицію другим учасником | ||
| 190 | - [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 191 | - ... provider1 | ||
| 192 | - ... ${USERS.users['${provider1}'].broker} | ||
| 193 | - [Setup] Дочекатись дати початку прийому пропозицій ${provider1} ${TENDER['TENDER_UAID']} | ||
| 194 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 195 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 196 | - Log ${bid} | ||
| 197 | - ${bidresponses}= Create Dictionary | ||
| 198 | - Set To Dictionary ${bidresponses} bid=${bid} | ||
| 199 | - Set To Dictionary ${USERS.users['${provider1}']} bidresponses=${bidresponses} | ||
| 200 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 201 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp=${resp} | ||
| 202 | - log ${resp} | ||
| 203 | - | ||
| 204 | - | ||
| 205 | -Можливість редагувати однопредметний тендер більше ніж за 7 днів до завершення періоду подання пропозицій | ||
| 206 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | ||
| 207 | - ... tender_owner | ||
| 208 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 209 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 210 | - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 211 | - | ||
| 212 | - | ||
| 213 | -Відображення зміни статусу пропозицій після редагування інформації про тендер | ||
| 214 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 215 | - ... provider provider1 | ||
| 216 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 217 | - :FOR ${username} IN ${provider} ${provider1} | ||
| 218 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 219 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 220 | - \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
| 221 | - \ Should Be Equal ${bid.data.status} invalid | ||
| 222 | - \ Log ${bid} | ||
| 223 | - | ||
| 224 | - | ||
| 225 | -Можливість оновити статус цінової пропозиції першого учасника | ||
| 226 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 227 | - ... provider | ||
| 228 | - ... ${USERS.users['${provider}'].broker} | ||
| 229 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 230 | - ${status}= Run Keyword IF '${mode}'=='openeu' Set Variable pending | ||
| 231 | - ... ELSE IF '${mode}'=='openua' Set Variable active | ||
| 232 | - ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status ${status} | ||
| 233 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp=${activestatusresp} | ||
| 234 | - log ${activestatusresp} | ||
| 235 | - | ||
| 236 | - | ||
| 237 | -Можливість скасувати цінову пропозицію другого учасника | ||
| 238 | - [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 239 | - ... provider1 | ||
| 240 | - ... ${USERS.users['${provider1}'].broker} | ||
| 241 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 242 | - ${bid}= Get Variable Value ${USERS.users['${provider1}'].bidresponses['resp']} | ||
| 243 | - ${bidresponses}= Викликати для учасника ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 244 | - | ||
| 245 | - | ||
| 246 | -Можливість повторно подати цінову пропозицію другим учасником після першої зміни | ||
| 247 | - [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 248 | - ... provider1 | ||
| 249 | - ... ${USERS.users['${provider1}'].broker} | ||
| 250 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 251 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 252 | - Log ${bid} | ||
| 253 | - ${bidresponses}= Create Dictionary | ||
| 254 | - Set To Dictionary ${bidresponses} bid=${bid} | ||
| 255 | - Set To Dictionary ${USERS.users['${provider1}']} bidresponses=${bidresponses} | ||
| 256 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 257 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp=${resp} | ||
| 258 | - log ${resp} | ||
| 259 | - | ||
| 260 | - | ||
| 261 | -Неможливість редагувати однопредметний тендер менше ніж за 7 днів до завершення періоду подання пропозицій | ||
| 262 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | ||
| 263 | - ... tender_owner | ||
| 264 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 265 | - ${no_edit_time}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} -6 | ||
| 266 | - Дочекатись дати ${no_edit_time} | ||
| 267 | - Require Failure ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 268 | - | ||
| 269 | - | ||
| 270 | -Неможливість подати вимогу на умови менше ніж за 10 днів до завершення періоду подання пропозицій | ||
| 271 | - [Tags] ${USERS.users['${provider}'].broker}: Подання скарги | ||
| 272 | - ... provider | ||
| 273 | - ... ${USERS.users['${provider}'].broker} | ||
| 274 | - [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеного тендера | ||
| 275 | - ${claim}= Підготовка даних для подання вимоги | ||
| 276 | - ${complaintID}= Require failure ${provider} | ||
| 277 | - ... Створити вимогу | ||
| 278 | - ... ${TENDER['TENDER_UAID']} | ||
| 279 | - ... ${claim} | ||
| 280 | - ${claim_data2}= Create Dictionary claim=${claim} complaintID=${complaintID} | ||
| 281 | - Set To Dictionary ${USERS.users['${provider}']} claim_data2=${claim_data2} | ||
| 282 | - | ||
| 283 | - | ||
| 284 | - | ||
| 285 | -Можливість продовжити період подання пропозиції на 7 днів | ||
| 286 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | ||
| 287 | - ... tender_owner | ||
| 288 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 289 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 290 | - ${endDate}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} 7 | ||
| 291 | - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} tenderPeriod.endDate ${endDate} | ||
| 292 | - | ||
| 293 | - | ||
| 294 | -Можливість подати скаргу на умови більше ніж за 4 дні до завершення періоду подання пропозицій | ||
| 295 | - [Tags] ${USERS.users['${provider}'].broker}: Подання скарги | ||
| 296 | - ... provider | ||
| 297 | - ... ${USERS.users['${provider}'].broker} | ||
| 298 | - [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеного тендера | ||
| 299 | - [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 300 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 301 | - ${claim}= Підготовка даних для подання вимоги | ||
| 302 | - ${complaintID}= Викликати для учасника ${provider} | ||
| 303 | - ... Створити вимогу | ||
| 304 | - ... ${TENDER['TENDER_UAID']} | ||
| 305 | - ... ${claim} | ||
| 306 | - ${claim_data3}= Create Dictionary claim=${claim} complaintID=${complaintID} | ||
| 307 | - Set To Dictionary ${USERS.users['${provider}']} claim_data3=${claim_data3} | ||
| 308 | - | ||
| 309 | - ${data}= Create Dictionary status=pending satisfied=${False} | ||
| 310 | - ${escalation_data}= Create Dictionary data=${data} | ||
| 311 | - Викликати для учасника ${provider} | ||
| 312 | - ... Перетворити вимогу в скаргу | ||
| 313 | - ... ${TENDER['TENDER_UAID']} | ||
| 314 | - ... ${USERS.users['${provider}']['claim_data3']['complaintID']} | ||
| 315 | - ... ${escalation_data} | ||
| 316 | - Set To Dictionary ${USERS.users['${provider}'].claim_data3} escalation=${escalation_data} | ||
| 317 | - | ||
| 318 | - | ||
| 319 | -Можливість скасувати скаргу на умови | ||
| 320 | - [Tags] ${USERS.users['${provider}'].broker}: Подання скарги | ||
| 321 | - ... provider | ||
| 322 | - ... ${USERS.users['${provider}'].broker} | ||
| 323 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 324 | - ${cancellation_reason}= create_fake_sentence | ||
| 325 | - ${data}= Create Dictionary status=cancelled cancellationReason=${cancellation_reason} | ||
| 326 | - ${cancellation_data}= Create Dictionary data=${data} | ||
| 327 | - Викликати для учасника ${provider} | ||
| 328 | - ... Скасувати вимогу | ||
| 329 | - ... ${TENDER['TENDER_UAID']} | ||
| 330 | - ... ${USERS.users['${provider}']['claim_data3']['complaintID']} | ||
| 331 | - ... ${cancellation_data} | ||
| 332 | - Set To Dictionary ${USERS.users['${provider}'].claim_data3} cancellation=${cancellation_data} | ||
| 333 | - | ||
| 334 | - | ||
| 335 | -Можливість редагувати однопредметний тендер після продовження періоду подання пропозицій | ||
| 336 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | ||
| 337 | - ... tender_owner | ||
| 338 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 339 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 340 | - Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 341 | - | ||
| 342 | - | ||
| 343 | -Відображення зміни статусу пропозицій після другої зміни | ||
| 344 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 345 | - ... provider provider1 | ||
| 346 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 347 | - :FOR ${username} IN ${provider} ${provider1} | ||
| 348 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 349 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 350 | - \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
| 351 | - \ Should Be Equal ${bid.data.status} invalid | ||
| 352 | - \ Log ${bid} | ||
| 353 | - | ||
| 354 | - | ||
| 355 | -Можливість оновити статус цінової пропозиції першого учасника після другої зміни | ||
| 356 | - [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 357 | - ... provider | ||
| 358 | - ... ${USERS.users['${provider}'].broker} | ||
| 359 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 360 | - ${status}= Run Keyword IF '${mode}'=='openeu' Set Variable pending | ||
| 361 | - ... ELSE IF '${mode}'=='openua' Set Variable active | ||
| 362 | - ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status ${status} | ||
| 363 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp=${activestatusresp} | ||
| 364 | - log ${activestatusresp} | ||
| 365 | - | ||
| 366 | - | ||
| 367 | -Можливість повторно подати цінову пропозицію другим учасником після другої зміни | ||
| 368 | - [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 369 | - ... provider1 | ||
| 370 | - ... ${USERS.users['${provider1}'].broker} | ||
| 371 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 372 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 373 | - Log ${bid} | ||
| 374 | - ${bidresponses}= Create Dictionary | ||
| 375 | - Set To Dictionary ${bidresponses} bid=${bid} | ||
| 376 | - Set To Dictionary ${USERS.users['${provider1}']} bidresponses=${bidresponses} | ||
| 377 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 378 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp=${resp} | ||
| 379 | - log ${resp} | ||
| 380 | - | ||
| 381 | - | ||
| 382 | -Неможливість подати скаргу на умови менше ніж за 4 дні до завершення періоду подання пропозицій | ||
| 383 | - [Tags] ${USERS.users['${provider}'].broker}: Подання скарги | ||
| 384 | - ... provider | ||
| 385 | - ... ${USERS.users['${provider}'].broker} | ||
| 386 | - [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеного тендера | ||
| 387 | - [Setup] Дочекатись дати закінчення періоду подання скарг ${provider} | ||
| 388 | - ${claim}= Підготовка даних для подання вимоги | ||
| 389 | - ${complaintID}= Викликати для учасника ${provider} | ||
| 390 | - ... Створити вимогу | ||
| 391 | - ... ${TENDER['TENDER_UAID']} | ||
| 392 | - ... ${claim} | ||
| 393 | - ${claim_data4}= Create Dictionary claim=${claim} complaintID=${complaintID} | ||
| 394 | - Set To Dictionary ${USERS.users['${provider}']} claim_data4=${claim_data4} | ||
| 395 | - | ||
| 396 | - | ||
| 397 | - ${data}= Create Dictionary status=pending satisfied=${False} | ||
| 398 | - ${escalation_data}= Create Dictionary data=${data} | ||
| 399 | - Викликати для учасника ${provider} | ||
| 400 | - ... Перетворити вимогу в скаргу | ||
| 401 | - ... ${TENDER['TENDER_UAID']} | ||
| 402 | - ... ${USERS.users['${provider}']['claim_data4']['complaintID']} | ||
| 403 | - ... ${escalation_data} | ||
| 404 | - Set To Dictionary ${USERS.users['${provider}'].claim_data4} escalation=${escalation_data} | ||
| 405 | - | ||
| 406 | -############################################################################################## | ||
| 407 | -# OPENEU Pre-Qualification | ||
| 408 | -############################################################################################## | ||
| 409 | - | ||
| 410 | -Відображення статусу першої пропозиції кваліфікації | ||
| 411 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 412 | - ... tender_owner | ||
| 413 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 414 | - ... openeu | ||
| 415 | - [Setup] Дочекатись дати закінчення прийому пропозицій ${tender_owner} ${TENDER['TENDER_UAID']} | ||
| 416 | - Звірити поле тендера із значенням ${tender_owner} ${TENDER['TENDER_UAID']} pending qualifications[0].status | ||
| 417 | - | ||
| 418 | - | ||
| 419 | -Відображення статусу другої пропозиції кваліфікації | ||
| 420 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 421 | - ... tender_owner | ||
| 422 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 423 | - ... openeu | ||
| 424 | - [Setup] Дочекатись дати закінчення прийому пропозицій ${tender_owner} ${TENDER['TENDER_UAID']} | ||
| 425 | - Звірити поле тендера із значенням ${tender_owner} ${TENDER['TENDER_UAID']} pending qualifications[1].status | ||
| 426 | - | ||
| 427 | - | ||
| 428 | -Можливість завантажити документ у кваліфікацію пропозиції першого учасника | ||
| 429 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 430 | - ... tender_owner | ||
| 431 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 432 | - ... openeu | ||
| 433 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 434 | - ${filepath}= create_fake_doc | ||
| 435 | - Викликати для учасника ${tender_owner} Завантажити документ у кваліфікацію ${filepath} ${TENDER['TENDER_UAID']} 0 | ||
| 436 | - | ||
| 437 | - | ||
| 438 | -Можливість підтвердити першу пропозицію кваліфікації | ||
| 439 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 440 | - ... tender_owner | ||
| 441 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 442 | - ... openeu | ||
| 443 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 444 | - Викликати для учасника ${tender_owner} Підтвердити кваліфікацію ${TENDER['TENDER_UAID']} 0 | ||
| 445 | - | ||
| 446 | - | ||
| 447 | -Можливість завантажити документ у кваліфікацію пропозиції другого учасника | ||
| 448 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 449 | - ... tender_owner | ||
| 450 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 451 | - ... openeu | ||
| 452 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 453 | - ${filepath}= create_fake_doc | ||
| 454 | - Викликати для учасника ${tender_owner} Завантажити документ у кваліфікацію ${filepath} ${TENDER['TENDER_UAID']} 1 | ||
| 455 | - | ||
| 456 | - | ||
| 457 | -Можливість відхилити другу пропозицію кваліфікації | ||
| 458 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 459 | - ... tender_owner | ||
| 460 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 461 | - ... openeu | ||
| 462 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 463 | - Викликати для учасника ${tender_owner} Відхилити кваліфікацію ${TENDER['TENDER_UAID']} 1 | ||
| 464 | - | ||
| 465 | - | ||
| 466 | -Можливість скасувати рішення кваліфікації для другої пропопозиції | ||
| 467 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 468 | - ... tender_owner | ||
| 469 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 470 | - ... openeu | ||
| 471 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 472 | - Викликати для учасника ${tender_owner} Скасувати кваліфікацію ${TENDER['TENDER_UAID']} 1 | ||
| 473 | - | ||
| 474 | - | ||
| 475 | -Можливість підтвердити другу пропозицію кваліфікації | ||
| 476 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 477 | - ... tender_owner | ||
| 478 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 479 | - ... openeu | ||
| 480 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 481 | - Викликати для учасника ${tender_owner} Підтвердити кваліфікацію ${TENDER['TENDER_UAID']} 2 | ||
| 482 | - | ||
| 483 | - | ||
| 484 | -Можливість затвердити остаточне рішення кваліфікації | ||
| 485 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 486 | - ... tender_owner | ||
| 487 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 488 | - ... openeu | ||
| 489 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 490 | - Викликати для учасника ${tender_owner} Затвердити остаточне рішення кваліфікації ${TENDER['TENDER_UAID']} |
| 1 | +*** Settings *** | ||
| 2 | +Library op_robot_tests.tests_files.service_keywords | ||
| 3 | +Library Collections | ||
| 4 | +Resource keywords.robot | ||
| 5 | +Resource resource.robot | ||
| 6 | +Resource base_keywords.robot | ||
| 7 | + | ||
| 8 | + | ||
| 9 | +*** Keywords *** | ||
| 10 | + | ||
| 11 | +Неможливість редагувати однопредметний тендер менше ніж за 7 днів до завершення періоду подання пропозицій | ||
| 12 | + ${no_edit_time}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} -6 | ||
| 13 | + Дочекатись дати ${no_edit_time} | ||
| 14 | + Require Failure ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 15 | + | ||
| 16 | + | ||
| 17 | +Можливість продовжити період подання пропозиції на 7 днів | ||
| 18 | + ${endDate}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} 7 | ||
| 19 | + Можливість змінити поле tenderPeriod.endDate тендера на ${endDate} | ||
| 20 | + | ||
| 21 | +############################################################################################## | ||
| 22 | +# BIDDING | ||
| 23 | +############################################################################################## | ||
| 24 | + | ||
| 25 | +Відображення зміни статусу пропозицій на ${status} для учасника ${username} | ||
| 26 | + Дочекатись синхронізації з майданчиком ${username} | ||
| 27 | + Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 28 | + ${bid_status}= Run As ${username} Отримати інформацію із пропозиції ${TENDER['TENDER_UAID']} status | ||
| 29 | + Should Be Equal ${bid_status} ${status} | ||
| 30 | + | ||
| 31 | + | ||
| 32 | +Можливість оновити статус цінової пропозиції учасником ${username} | ||
| 33 | + ${status}= Run Keyword IF '${mode}'=='openeu' Set Variable pending | ||
| 34 | + ... ELSE IF '${mode}'=='openua' Set Variable active | ||
| 35 | + ${activestatusresp}= Run As ${username} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status ${status} | ||
| 36 | + Set To Dictionary ${USERS.users['${username}'].bidresponses} activestatusresp=${activestatusresp} | ||
| 37 | + log ${activestatusresp} | ||
| 38 | + | ||
| 39 | +############################################################################################## | ||
| 40 | +# OPENEU Bid documentation | ||
| 41 | +############################################################################################## | ||
| 42 | + | ||
| 43 | +Можливість змінити документацію цінової пропозиції з публічної на приватну учасником ${username} | ||
| 44 | + ${confidentialityRationale}= create_fake_sentence | ||
| 45 | + ${privat_doc}= create_data_dict data.confidentialityRationale ${confidentialityRationale} | ||
| 46 | + Set To Dictionary ${privat_doc.data} confidentiality=buyerOnly | ||
| 47 | + ${docid}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid_doc_upload']['upload_response'].data.id} | ||
| 48 | + ${bid_doc_modified}= Run As ${username} Змінити документацію в ставці ${privat_doc} ${docid} | ||
| 49 | + Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_modified=${bid_doc_modified} | ||
| 50 | + | ||
| 51 | + | ||
| 52 | +Можливість завантажити ${doc_type} документ до пропозиції учасником ${username} | ||
| 53 | + ${filepath}= create_fake_doc | ||
| 54 | + ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
| 55 | + Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} | ||
| 56 | + | ||
| 57 | +############################################################################################## | ||
| 58 | +# OPENEU Pre-Qualification | ||
| 59 | +############################################################################################## | ||
| 60 | + | ||
| 61 | +Можливість завантажити документ у кваліфікацію ${bid_index} пропозиції | ||
| 62 | + ${filepath}= create_fake_doc | ||
| 63 | + Run As ${tender_owner} Завантажити документ у кваліфікацію ${filepath} ${TENDER['TENDER_UAID']} ${bid_index} | ||
| 64 | + | ||
| 65 | + | ||
| 66 | +Можливість відхилити ${bid_index} пропозиції кваліфікації | ||
| 67 | + Run As ${tender_owner} Відхилити кваліфікацію ${TENDER['TENDER_UAID']} ${bid_index} | ||
| 68 | + | ||
| 69 | + | ||
| 70 | +Можливість скасувати рішення кваліфікації для ${bid_index} пропопозиції | ||
| 71 | + Run As ${tender_owner} Скасувати кваліфікацію ${TENDER['TENDER_UAID']} ${bid_index} | ||
| 72 | + | ||
| 73 | + | ||
| 74 | +Можливість підтвердити ${bid_index} пропозицію кваліфікації | ||
| 75 | + Run As ${tender_owner} Підтвердити кваліфікацію ${TENDER['TENDER_UAID']} ${bid_index} | ||
| 76 | + | ||
| 77 | + | ||
| 78 | +Можливість затвердити остаточне рішення кваліфікації | ||
| 79 | + Run As ${tender_owner} Затвердити остаточне рішення кваліфікації ${TENDER['TENDER_UAID']} |
| @@ -8,12 +8,13 @@ Suite Teardown Test Suite Teardown | @@ -8,12 +8,13 @@ Suite Teardown Test Suite Teardown | ||
| 8 | *** Variables *** | 8 | *** Variables *** |
| 9 | @{used_roles} viewer | 9 | @{used_roles} viewer |
| 10 | 10 | ||
| 11 | + | ||
| 11 | *** Test Cases *** | 12 | *** Test Cases *** |
| 12 | Можливість знайти закупівлю по ідентифікатору | 13 | Можливість знайти закупівлю по ідентифікатору |
| 13 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 14 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 14 | ... ${USERS.users['${viewer}'].broker} | 15 | ... ${USERS.users['${viewer}'].broker} |
| 15 | Завантажити дані про тендер | 16 | Завантажити дані про тендер |
| 16 | - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 17 | + Run As ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 17 | 18 | ||
| 18 | ############################################################################################## | 19 | ############################################################################################## |
| 19 | # AUCTION | 20 | # AUCTION |
| @@ -24,7 +25,7 @@ Suite Teardown Test Suite Teardown | @@ -24,7 +25,7 @@ Suite Teardown Test Suite Teardown | ||
| 24 | ... viewer | 25 | ... viewer |
| 25 | ... ${USERS.users['${viewer}'].broker} | 26 | ... ${USERS.users['${viewer}'].broker} |
| 26 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} | 27 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} |
| 27 | - Отримати дані із тендера ${viewer} auctionPeriod.startDate ${TENDER['LOT_ID']} | 28 | + Отримати дані із тендера ${viewer} ${TENDER['TENDER_UAID']} auctionPeriod.startDate ${TENDER['LOT_ID']} |
| 28 | 29 | ||
| 29 | 30 | ||
| 30 | Можливість дочекатися початку аукціону | 31 | Можливість дочекатися початку аукціону |
| @@ -34,15 +35,19 @@ Suite Teardown Test Suite Teardown | @@ -34,15 +35,19 @@ Suite Teardown Test Suite Teardown | ||
| 34 | Дочекатись дати початку аукціону ${viewer} | 35 | Дочекатись дати початку аукціону ${viewer} |
| 35 | 36 | ||
| 36 | 37 | ||
| 38 | +Можливість вичитати посилання на аукціон для глядача | ||
| 39 | + [Tags] ${USERS.users['${viewer}'].broker}: Участь в аукціоні | ||
| 40 | + ... viewer | ||
| 41 | + ... ${USERS.users['${viewer}'].broker} | ||
| 42 | + Можливість вичитати посилання на аукціон для ${viewer} | ||
| 43 | + | ||
| 44 | + | ||
| 37 | Можливість дочекатися завершення аукціону | 45 | Можливість дочекатися завершення аукціону |
| 38 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися завершення аукціону | 46 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися завершення аукціону |
| 39 | ... viewer | 47 | ... viewer |
| 40 | ... ${USERS.users['${viewer}'].broker} | 48 | ... ${USERS.users['${viewer}'].broker} |
| 41 | [Teardown] Оновити LAST_MODIFICATION_DATE | 49 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 42 | - Відкрити сторінку аукціону для глядача | ||
| 43 | - Wait Until Keyword Succeeds 61 times 30 s Page should contain Аукціон завершився | ||
| 44 | - Wait Until Keyword Succeeds 5 times 30 s Page should not contain очікуємо розкриття учасників | ||
| 45 | - Close browser | 50 | + Дочекатись дати закінчення аукціону користувачем ${viewer} |
| 46 | 51 | ||
| 47 | 52 | ||
| 48 | Відображення дати завершення аукціону | 53 | Відображення дати завершення аукціону |
| @@ -50,4 +55,34 @@ Suite Teardown Test Suite Teardown | @@ -50,4 +55,34 @@ Suite Teardown Test Suite Teardown | ||
| 50 | ... viewer | 55 | ... viewer |
| 51 | ... ${USERS.users['${viewer}'].broker} | 56 | ... ${USERS.users['${viewer}'].broker} |
| 52 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} | 57 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} |
| 53 | - Отримати дані із тендера ${viewer} auctionPeriod.endDate ${TENDER['LOT_ID']} | 58 | + Отримати дані із тендера ${viewer} ${TENDER['TENDER_UAID']} auctionPeriod.endDate ${TENDER['LOT_ID']} |
| 59 | + | ||
| 60 | + | ||
| 61 | +*** Keywords *** | ||
| 62 | +Дочекатись дати початку аукціону | ||
| 63 | + [Arguments] ${username} | ||
| 64 | + # Can't use that dirty hack here since we don't know | ||
| 65 | + # the date of auction when creating the procurement :) | ||
| 66 | + ${auctionStart}= Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} auctionPeriod.startDate ${TENDER['LOT_ID']} | ||
| 67 | + Дочекатись дати ${auctionStart} | ||
| 68 | + Оновити LAST_MODIFICATION_DATE | ||
| 69 | + Дочекатись синхронізації з майданчиком ${username} | ||
| 70 | + | ||
| 71 | + | ||
| 72 | +Можливість вичитати посилання на аукціон для ${username} | ||
| 73 | + ${url}= Run As ${username} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} ${TENDER['LOT_ID']} | ||
| 74 | + Should Be True '${url}' | ||
| 75 | + Should Match Regexp ${url} ^https?:\/\/auction(?:-sandbox)?\.openprocurement\.org\/tenders\/([0-9A-Fa-f]{32}) | ||
| 76 | + Log URL аукціону для глядача: ${url} | ||
| 77 | + | ||
| 78 | + | ||
| 79 | +Відкрити сторінку аукціону для ${username} | ||
| 80 | + ${url}= Run as ${username} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} ${TENDER['LOT_ID']} | ||
| 81 | + Open browser ${url} ${USERS.users['${username}'].browser} | ||
| 82 | + | ||
| 83 | + | ||
| 84 | +Дочекатись дати закінчення аукціону користувачем ${username} | ||
| 85 | + Відкрити сторінку аукціону для ${username} | ||
| 86 | + Wait Until Keyword Succeeds 61 times 30 s Page should contain Аукціон завершився | ||
| 87 | + Wait Until Keyword Succeeds 5 times 30 s Page should not contain очікуємо розкриття учасників | ||
| 88 | + Close browser |
| 1 | +*** Settings *** | ||
| 2 | +Library op_robot_tests.tests_files.service_keywords | ||
| 3 | +Library Collections | ||
| 4 | +Resource keywords.robot | ||
| 5 | +Resource resource.robot | ||
| 6 | + | ||
| 7 | + | ||
| 8 | +*** Keywords *** | ||
| 9 | +Можливість оголосити тендер | ||
| 10 | + ${number_of_lots}= Convert To Integer ${number_of_lots} | ||
| 11 | + ${number_of_items}= Convert To Integer ${number_of_items} | ||
| 12 | + ${tender_parameters}= Create Dictionary | ||
| 13 | + ... mode=${mode} | ||
| 14 | + ... number_of_items=${number_of_items} | ||
| 15 | + ... number_of_lots=${number_of_lots} | ||
| 16 | + ... tender_meat=${${tender_meat}} | ||
| 17 | + ... lot_meat=${${lot_meat}} | ||
| 18 | + ... item_meat=${${item_meat}} | ||
| 19 | + ${tender_data}= Підготувати дані для створення тендера ${tender_parameters} | ||
| 20 | + ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | ||
| 21 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data} | ||
| 22 | + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | ||
| 23 | + Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | ||
| 24 | + | ||
| 25 | + | ||
| 26 | +Можливість знайти тендер по ідентифікатору для усіх користувачів | ||
| 27 | + :FOR ${username} IN ${tender_owner} ${provider} ${provider1} ${viewer} | ||
| 28 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 29 | + \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 30 | + | ||
| 31 | + | ||
| 32 | +Можливість змінити поле ${field_name} тендера на ${field_value} | ||
| 33 | + Run As ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value} | ||
| 34 | + | ||
| 35 | + | ||
| 36 | +Можливість додати документацію до тендера | ||
| 37 | + ${filepath}= create_fake_doc | ||
| 38 | + Run As ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']} | ||
| 39 | + | ||
| 40 | + | ||
| 41 | +Можливість додати предмет закупівлі в тендер | ||
| 42 | + ${item}= Підготувати дані для створення предмету закупівлі ${USERS.users['${tender_owner}'].initial_data.data['items'][0]['classification']['id']} | ||
| 43 | + Run As ${tender_owner} Додати предмет закупівлі ${TENDER['TENDER_UAID']} ${item} | ||
| 44 | + ${item_id}= get_id_from_object ${item} | ||
| 45 | + ${item_data}= Create Dictionary item=${item} item_id=${item_id} | ||
| 46 | + ${item_data}= munch_dict arg=${item_data} | ||
| 47 | + Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data} | ||
| 48 | + | ||
| 49 | + | ||
| 50 | +Можливість видалити предмет закупівлі з тендера | ||
| 51 | + Run As ${tender_owner} Видалити предмет закупівлі ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].item_data.item_id} | ||
| 52 | + | ||
| 53 | + | ||
| 54 | +Звірити відображення поля ${field} тендера для усіх користувачів | ||
| 55 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 56 | + \ Звірити відображення поля ${field} тендера для користувача ${username} | ||
| 57 | + | ||
| 58 | + | ||
| 59 | +Звірити відображення поля ${field} тендера із ${data} для користувача ${username} | ||
| 60 | + Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} ${data} ${field} | ||
| 61 | + | ||
| 62 | + | ||
| 63 | +Звірити відображення поля ${field} тендера для користувача ${username} | ||
| 64 | + Звірити поле тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${field} | ||
| 65 | + | ||
| 66 | +Звірити відображення дати ${date} тендера для усіх користувачів | ||
| 67 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 68 | + \ Звірити відображення дати ${date} тендера для користувача ${username} | ||
| 69 | + | ||
| 70 | + | ||
| 71 | +Звірити відображення дати ${date} тендера для користувача ${username} | ||
| 72 | + Звірити дату тендера ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} ${date} | ||
| 73 | + | ||
| 74 | + | ||
| 75 | +Звірити відображення поля ${field} усіх предметів для користувача ${username} | ||
| 76 | + ${number_of_items}= Get Length ${USERS.users['${tender_owner}'].initial_data.data['items']} | ||
| 77 | + :FOR ${item_index} IN RANGE ${number_of_items} | ||
| 78 | + \ Звірити відображення поля ${field} ${item_index} предмету для користувача ${username} | ||
| 79 | + | ||
| 80 | + | ||
| 81 | +Звірити відображення поля ${field} ${item_index} предмету для користувача ${username} | ||
| 82 | + ${item_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}]} | ||
| 83 | + Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}].${field}} ${field} ${item_id} | ||
| 84 | + | ||
| 85 | + | ||
| 86 | +Звірити відображення дати ${field} усіх предметів для користувача ${username} | ||
| 87 | + ${number_of_items}= Get Length ${USERS.users['${tender_owner}'].initial_data.data['items']} | ||
| 88 | + :FOR ${item_index} IN RANGE ${number_of_items} | ||
| 89 | + \ Звірити відображення дати ${field} ${item_index} предмету для користувача ${username} | ||
| 90 | + | ||
| 91 | + | ||
| 92 | +Звірити відображення дати ${date} ${item_index} предмету для користувача ${username} | ||
| 93 | + ${item_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}]} | ||
| 94 | + Звірити дату тендера із значенням ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}].${date}} ${date} ${item_id} | ||
| 95 | + | ||
| 96 | + | ||
| 97 | +Звірити відображення координат усіх предметів для користувача ${username} | ||
| 98 | + ${number_of_items}= Get Length ${USERS.users['${tender_owner}'].initial_data.data['items']} | ||
| 99 | + :FOR ${item_index} IN RANGE ${number_of_items} | ||
| 100 | + \ Звірити відображення координат ${item_index} предмету для користувача ${username} | ||
| 101 | + | ||
| 102 | + | ||
| 103 | +Звірити відображення координат ${item_index} предмету для користувача ${username} | ||
| 104 | + Звірити координати доставки тендера ${viewer} ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].initial_data} items[${item_index}] | ||
| 105 | + | ||
| 106 | + | ||
| 107 | +Отримати дані із поля ${field} тендера для усіх користувачів | ||
| 108 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} ${tender_owner} | ||
| 109 | + \ Отримати дані із поля ${field} тендера для користувача ${username} | ||
| 110 | + | ||
| 111 | + | ||
| 112 | +Отримати дані із поля ${field} тендера для користувача ${username} | ||
| 113 | + Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} ${field} | ||
| 114 | + | ||
| 115 | + | ||
| 116 | + | ||
| 117 | +############################################################################################## | ||
| 118 | +# LOTS | ||
| 119 | +############################################################################################## | ||
| 120 | + | ||
| 121 | +Можливість додати документацію до ${lot_index} лоту | ||
| 122 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} | ||
| 123 | + ${filepath}= create_fake_doc | ||
| 124 | + Run As ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
| 125 | + | ||
| 126 | + | ||
| 127 | +Можливість додати предмет закупівлі в ${lot_index} лот | ||
| 128 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} | ||
| 129 | + ${item}= Підготувати дані для створення предмету закупівлі ${USERS.users['${tender_owner}'].initial_data.data['items'][0]['classification']['id']} | ||
| 130 | + Run As ${tender_owner} Додати предмет закупівлі в лот ${TENDER['TENDER_UAID']} ${lot_id} ${item} | ||
| 131 | + ${item_id}= get_id_from_object ${item} | ||
| 132 | + ${item_data}= Create Dictionary item=${item} item_id=${item_id} | ||
| 133 | + ${item_data}= munch_dict arg=${item_data} | ||
| 134 | + Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data} | ||
| 135 | + | ||
| 136 | + | ||
| 137 | +Можливість видалити предмет закупівлі з ${lot_index} лоту | ||
| 138 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} | ||
| 139 | + Run As ${tender_owner} Видалити предмет закупівлі ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].item_data.item_id} ${lot_id} | ||
| 140 | + | ||
| 141 | + | ||
| 142 | +Можливість створення лоту | ||
| 143 | + ${lot}= Підготувати дані для створення лоту ${USERS.users['${tender_owner}'].tender_data.data.value.amount} | ||
| 144 | + ${lot_resp}= Run As ${tender_owner} Створити лот ${TENDER['TENDER_UAID']} ${lot} | ||
| 145 | + ${lot_id}= get_id_from_object ${lot.data} | ||
| 146 | + ${lot_data}= Create Dictionary lot=${lot} lot_resp=${lot_resp} lot_id=${lot_id} | ||
| 147 | + ${lot_data}= munch_dict arg=${lot_data} | ||
| 148 | + Set To Dictionary ${USERS.users['${tender_owner}']} lot_data=${lot_data} | ||
| 149 | + | ||
| 150 | + | ||
| 151 | +Можливість видалення ${lot_index} лоту | ||
| 152 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} | ||
| 153 | + Run As ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${lot_id} | ||
| 154 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 155 | + \ Remove From List ${USERS.users['${username}'].tender_data.data.lots} ${lot_index} | ||
| 156 | + | ||
| 157 | + | ||
| 158 | +Звірити відображення поля ${field} усіх лотів для усіх користувачів | ||
| 159 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 160 | + \ Звірити відображення поля ${field} усіх лотів для користувача ${username} | ||
| 161 | + | ||
| 162 | + | ||
| 163 | +Звірити відображення поля ${field} усіх лотів для користувача ${username} | ||
| 164 | + ${number_of_lots}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.lots} | ||
| 165 | + :FOR ${lot_index} IN RANGE ${number_of_lots} | ||
| 166 | + \ Звірити відображення поля ${field} ${lot_index} лоту для користувача ${username} | ||
| 167 | + | ||
| 168 | + | ||
| 169 | +Звірити відображення поля ${field} ${lot_index} лоту для користувача ${username} | ||
| 170 | + Дочекатись синхронізації з майданчиком ${username} | ||
| 171 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}]} | ||
| 172 | + Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} | ||
| 173 | + ... ${USERS.users['${tender_owner}'].initial_data.data.lots[${lot_index}].${field}} ${field} | ||
| 174 | + ... object_id=${lot_id} | ||
| 175 | + | ||
| 176 | + | ||
| 177 | +Звірити відображення поля ${field} у новоствореному лоті для усіх користувачів | ||
| 178 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 179 | + \ Звірити відображення поля ${field} у новоствореному лоті для користувача ${username} | ||
| 180 | + | ||
| 181 | + | ||
| 182 | +Звірити відображення поля ${field} у новоствореному лоті для користувача ${username} | ||
| 183 | + Дочекатись синхронізації з майданчиком ${username} | ||
| 184 | + Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} | ||
| 185 | + ... ${USERS.users['${tender_owner}'].lot_data.lot.data.${field}} ${field} | ||
| 186 | + ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 187 | + | ||
| 188 | + | ||
| 189 | +Можливість змінити на ${percent} відсотки бюджет ${lot_index} лоту | ||
| 190 | + ${percent}= Convert To Number ${percent} | ||
| 191 | + ${value}= Evaluate ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}].value.amount}*${percent}/${100} | ||
| 192 | + Можливість змінити value.amount ${lot_index} лоту на ${value} | ||
| 193 | + | ||
| 194 | + | ||
| 195 | +Можливість змінити ${field} ${lot_index} лоту на ${value} | ||
| 196 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} | ||
| 197 | + Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${lot_id} ${field} ${value} | ||
| 198 | + | ||
| 199 | +############################################################################################## | ||
| 200 | +# FEATURES | ||
| 201 | +############################################################################################## | ||
| 202 | + | ||
| 203 | +Можливість добавити неціновий показник на тендер | ||
| 204 | + ${feature}= Підготувати дані для створення нецінового показника | ||
| 205 | + Set To Dictionary ${feature} featureOf=tenderer | ||
| 206 | + Run As ${tender_owner} Додати неціновий показник на тендер ${TENDER['TENDER_UAID']} ${feature} | ||
| 207 | + ${feature_id}= get_id_from_object ${feature} | ||
| 208 | + ${feature_data}= Create Dictionary feature=${feature} feature_id=${feature_id} | ||
| 209 | + ${feature_data}= munch_dict arg=${feature_data} | ||
| 210 | + Set To Dictionary ${USERS.users['${tender_owner}']} feature_data=${feature_data} | ||
| 211 | + | ||
| 212 | + | ||
| 213 | +Можливість добавити неціновий показник на ${lot_index} лот | ||
| 214 | + ${feature}= Підготувати дані для створення нецінового показника | ||
| 215 | + Set To Dictionary ${feature} featureOf=lot | ||
| 216 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} | ||
| 217 | + Run As ${tender_owner} Додати неціновий показник на лот ${TENDER['TENDER_UAID']} ${feature} ${lot_id} | ||
| 218 | + ${feature_id}= get_id_from_object ${feature} | ||
| 219 | + ${feature_data}= Create Dictionary feature=${feature} feature_id=${feature_id} | ||
| 220 | + ${feature_data}= munch_dict arg=${feature_data} | ||
| 221 | + Set To Dictionary ${USERS.users['${tender_owner}']} feature_data=${feature_data} | ||
| 222 | + | ||
| 223 | + | ||
| 224 | +Можливість добавити неціновий показник на ${item_index} предмет | ||
| 225 | + ${feature}= Підготувати дані для створення нецінового показника | ||
| 226 | + Set To Dictionary ${feature} featureOf=item | ||
| 227 | + ${item_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data['items'][${item_index}]} | ||
| 228 | + Run As ${tender_owner} Додати неціновий показник на предмет ${TENDER['TENDER_UAID']} ${feature} ${item_id} | ||
| 229 | + ${feature_id}= get_id_from_object ${feature} | ||
| 230 | + ${feature_data}= Create Dictionary feature=${feature} feature_id=${feature_id} | ||
| 231 | + ${feature_data}= munch_dict arg=${feature_data} | ||
| 232 | + Set To Dictionary ${USERS.users['${tender_owner}']} feature_data=${feature_data} | ||
| 233 | + | ||
| 234 | + | ||
| 235 | +Звірити відображення поля ${field} у новоствореному неціновому показнику для усіх користувачів | ||
| 236 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 237 | + \ Звірити відображення поля ${field} у новоствореному неціновому показнику для користувача ${username} | ||
| 238 | + | ||
| 239 | + | ||
| 240 | +Звірити відображення поля ${field} у новоствореному неціновому показнику для користувача ${username} | ||
| 241 | + Дочекатись синхронізації з майданчиком ${username} | ||
| 242 | + Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} | ||
| 243 | + ... ${USERS.users['${tender_owner}'].feature_data.feature.${field}} ${field} | ||
| 244 | + ... object_id=${USERS.users['${tender_owner}'].feature_data.feature_id} | ||
| 245 | + | ||
| 246 | + | ||
| 247 | +Звірити відображення поля ${field} усіх нецінових показників для усіх користувачів | ||
| 248 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 249 | + \ Звірити відображення поля ${field} усіх нецінових показників для користувача ${username} | ||
| 250 | + | ||
| 251 | + | ||
| 252 | +Звірити відображення поля ${field} усіх нецінових показників для користувача ${username} | ||
| 253 | + ${number_of_features}= Get Length ${USERS.users['${tender_owner}'].initial_data.data.features} | ||
| 254 | + :FOR ${feature_index} IN RANGE ${number_of_features} | ||
| 255 | + \ Звірити відображення поля ${field} ${feature_index} нецінового показника для користувача ${username} | ||
| 256 | + | ||
| 257 | + | ||
| 258 | +Звірити відображення поля ${field} ${feature_index} нецінового показника для користувача ${username} | ||
| 259 | + Дочекатись синхронізації з майданчиком ${username} | ||
| 260 | + ${feature_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.features[${feature_index}]} | ||
| 261 | + Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} | ||
| 262 | + ... ${USERS.users['${tender_owner}'].initial_data.data.features[${feature_index}].${field}} ${field} | ||
| 263 | + ... object_id=${feature_id} | ||
| 264 | + | ||
| 265 | + | ||
| 266 | +Можливість видалити ${feature_index} неціновий показник | ||
| 267 | + ${feature_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data['features'][${feature_index}]} | ||
| 268 | + Run As ${tender_owner} Видалити неціновий показник ${TENDER['TENDER_UAID']} ${feature_id} | ||
| 269 | + ${feature_index}= get_object_index_by_id ${USERS.users['${tender_owner}'].tender_data.data['features']} ${feature_id} | ||
| 270 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 271 | + \ Remove From List ${USERS.users['${username}'].tender_data.data['features']} ${feature_index} | ||
| 272 | + | ||
| 273 | +############################################################################################## | ||
| 274 | +# QUESTIONS | ||
| 275 | +############################################################################################## | ||
| 276 | + | ||
| 277 | +Можливість задати запитання на тендер користувачем ${username} | ||
| 278 | + ${question}= Підготувати дані для запитання | ||
| 279 | + ${question_resp}= Run As ${username} Задати запитання на тендер ${TENDER['TENDER_UAID']} ${question} | ||
| 280 | + ${now}= Get Current TZdate | ||
| 281 | + ${question.data.date}= Set variable ${now} | ||
| 282 | + ${question_id}= get_id_from_object ${question.data} | ||
| 283 | + ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} | ||
| 284 | + ${question_data}= munch_dict arg=${question_data} | ||
| 285 | + Set To Dictionary ${USERS.users['${username}']} question_data=${question_data} | ||
| 286 | + | ||
| 287 | + | ||
| 288 | +Можливість задати запитання на ${lot_index} лот користувачем ${username} | ||
| 289 | + ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data.lots[${lot_index}]} | ||
| 290 | + ${question}= Підготувати дані для запитання | ||
| 291 | + ${question_resp}= Run As ${username} Задати запитання на лот ${TENDER['TENDER_UAID']} ${lot_id} ${question} | ||
| 292 | + ${now}= Get Current TZdate | ||
| 293 | + ${question.data.date}= Set variable ${now} | ||
| 294 | + ${question_id}= get_id_from_object ${question.data} | ||
| 295 | + ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} | ||
| 296 | + ${question_data}= munch_dict arg=${question_data} | ||
| 297 | + Set To Dictionary ${USERS.users['${username}']} question_data=${question_data} | ||
| 298 | + | ||
| 299 | +Можливість задати запитання на ${item_index} предмет користувачем ${username} | ||
| 300 | + ${item_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data['items'][${item_index}]} | ||
| 301 | + ${question}= Підготувати дані для запитання | ||
| 302 | + ${question_resp}= Run As ${username} Задати запитання на предмет ${TENDER['TENDER_UAID']} ${item_id} ${question} | ||
| 303 | + ${now}= Get Current TZdate | ||
| 304 | + ${question.data.date}= Set variable ${now} | ||
| 305 | + ${question_id}= get_id_from_object ${question.data} | ||
| 306 | + ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} | ||
| 307 | + ${question_data}= munch_dict arg=${question_data} | ||
| 308 | + Set To Dictionary ${USERS.users['${username}']} question_data=${question_data} | ||
| 309 | + | ||
| 310 | +Можливість відповісти на запитання | ||
| 311 | + ${answer}= Підготувати дані для відповіді на запитання | ||
| 312 | + Run As ${tender_owner} | ||
| 313 | + ... Відповісти на запитання ${TENDER['TENDER_UAID']} | ||
| 314 | + ... ${answer} | ||
| 315 | + ... ${USERS.users['${provider}'].question_data.question_id} | ||
| 316 | + Set To Dictionary ${USERS.users['${provider}'].question_data.question.data} answer=${answer.data.answer} | ||
| 317 | + | ||
| 318 | + | ||
| 319 | +Звірити відображення поля ${field} запитання для усіх користувачів | ||
| 320 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 321 | + \ Звірити відображення поля ${field} запитання для користувача ${username} | ||
| 322 | + | ||
| 323 | + | ||
| 324 | +Звірити відображення поля ${field} запитання для користувача ${username} | ||
| 325 | + Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].question_data.question.data.${field}} ${field} ${USERS.users['${provider}'].question_data.question_id} | ||
| 326 | + | ||
| 327 | +############################################################################################## | ||
| 328 | +# COMPLAINTS | ||
| 329 | +############################################################################################## | ||
| 330 | + | ||
| 331 | + | ||
| 332 | +Можливість створити чернетку вимоги | ||
| 333 | + ${claim}= Підготувати дані для подання вимоги | ||
| 334 | + ${complaintID}= Run As ${provider} | ||
| 335 | + ... Створити чернетку вимоги | ||
| 336 | + ... ${TENDER['TENDER_UAID']} | ||
| 337 | + ... ${claim} | ||
| 338 | + ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} | ||
| 339 | + ${claim_data}= munch_dict arg=${claim_data} | ||
| 340 | + Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data} | ||
| 341 | + | ||
| 342 | + | ||
| 343 | +Можливість створити вимогу із документацією | ||
| 344 | + ${claim}= Підготувати дані для подання вимоги | ||
| 345 | + ${document}= create_fake_doc | ||
| 346 | + ${complaintID}= Run As ${provider} | ||
| 347 | + ... Створити вимогу | ||
| 348 | + ... ${TENDER['TENDER_UAID']} | ||
| 349 | + ... ${claim} | ||
| 350 | + ... ${document} | ||
| 351 | + ${claim_data}= Create Dictionary claim=${claim} complaintID=${complaintID} document=${document} | ||
| 352 | + ${claim_data}= munch_dict arg=${claim_data} | ||
| 353 | + Set To Dictionary ${USERS.users['${provider}']} claim_data ${claim_data} | ||
| 354 | + | ||
| 355 | + | ||
| 356 | +Можливість скасувати вимогу | ||
| 357 | + ${cancellation_reason}= create_fake_sentence | ||
| 358 | + ${data}= Create Dictionary status=cancelled cancellationReason=${cancellation_reason} | ||
| 359 | + ${cancellation_data}= Create Dictionary data=${data} | ||
| 360 | + ${cancellation_data}= munch_dict arg=${cancellation_data} | ||
| 361 | + Run As ${provider} | ||
| 362 | + ... Скасувати вимогу | ||
| 363 | + ... ${TENDER['TENDER_UAID']} | ||
| 364 | + ... ${USERS.users['${provider}']['claim_data']['complaintID']} | ||
| 365 | + ... ${cancellation_data} | ||
| 366 | + Set To Dictionary ${USERS.users['${provider}'].claim_data} cancellation ${cancellation_data} | ||
| 367 | + | ||
| 368 | +Можливість перетворити вимогу в скаргу | ||
| 369 | + ${data}= Create Dictionary status=pending satisfied=${False} | ||
| 370 | + ${escalation_data}= Create Dictionary data=${data} | ||
| 371 | + ${escalation_data}= munch_dict arg=${escalation_data} | ||
| 372 | + Run As ${provider} | ||
| 373 | + ... Перетворити вимогу в скаргу | ||
| 374 | + ... ${TENDER['TENDER_UAID']} | ||
| 375 | + ... ${USERS.users['${provider}']['claim_data']['complaintID']} | ||
| 376 | + ... ${escalation_data} | ||
| 377 | + Set To Dictionary ${USERS.users['${provider}'].claim_data} escalation ${escalation_data} | ||
| 378 | + | ||
| 379 | + | ||
| 380 | + | ||
| 381 | +Звірити відображення поля ${field} вимоги із ${data} для користувача ${username} | ||
| 382 | + Звірити поле скарги із значенням ${username} | ||
| 383 | + ... ${data} | ||
| 384 | + ... ${field} | ||
| 385 | + ... ${USERS.users['${provider}'].claim_data['complaintID']} | ||
| 386 | + | ||
| 387 | + | ||
| 388 | +Можливість відповісти на вимогу | ||
| 389 | + ${answer_data}= test_claim_answer_data | ||
| 390 | + Log ${answer_data} | ||
| 391 | + Run As ${tender_owner} | ||
| 392 | + ... Відповісти на вимогу | ||
| 393 | + ... ${TENDER['TENDER_UAID']} | ||
| 394 | + ... ${USERS.users['${provider}']['claim_data']['complaintID']} | ||
| 395 | + ... ${answer_data} | ||
| 396 | + ${claim_data}= Create Dictionary claim_answer=${answer_data} | ||
| 397 | + ${claim_data}= munch_dict arg=${claim_data} | ||
| 398 | + Set To Dictionary ${USERS.users['${tender_owner}']} claim_data ${claim_data} | ||
| 399 | + | ||
| 400 | + | ||
| 401 | +Можливість підтвердити задоволення вимоги про виправлення умов закупівлі | ||
| 402 | + ${data}= Create Dictionary status=resolved satisfied=${True} | ||
| 403 | + ${confirmation_data}= Create Dictionary data=${data} | ||
| 404 | + ${confirmation_data}= munch_dict arg=${confirmation_data} | ||
| 405 | + Run As ${provider} | ||
| 406 | + ... Підтвердити вирішення вимоги | ||
| 407 | + ... ${TENDER['TENDER_UAID']} | ||
| 408 | + ... ${USERS.users['${provider}']['claim_data']['complaintID']} | ||
| 409 | + ... ${confirmation_data} | ||
| 410 | + Set To Dictionary ${USERS.users['${provider}']['claim_data']} claim_answer_confirm ${confirmation_data} | ||
| 411 | + | ||
| 412 | + | ||
| 413 | +############################################################################################## | ||
| 414 | +# BIDDING | ||
| 415 | +############################################################################################## | ||
| 416 | + | ||
| 417 | +Можливість подати цінову пропозицію користувачем ${username} | ||
| 418 | + ${bid}= Підготувати дані для подання пропозиції ${username} | ||
| 419 | + ${bidresponses}= Create Dictionary bid=${bid} | ||
| 420 | + Set To Dictionary ${USERS.users['${username}']} bidresponses=${bidresponses} | ||
| 421 | + ${resp}= Run As ${username} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 422 | + Set To Dictionary ${USERS.users['${username}'].bidresponses} resp=${resp} | ||
| 423 | + | ||
| 424 | + | ||
| 425 | +Неможливість подати цінову пропозицію без прив’язки до лоту користувачем ${username} | ||
| 426 | + ${bid}= Підготувати дані для подання пропозиції ${username} | ||
| 427 | + ${values}= Get Variable Value ${bid.data.lotValues[0]} | ||
| 428 | + Remove From Dictionary ${bid.data} lotValues | ||
| 429 | + Set_To_Object ${bid} data ${values} | ||
| 430 | + Require Failure ${username} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 431 | + | ||
| 432 | + | ||
| 433 | +Неможливість подати цінову пропозицію без нецінових показників користувачем ${username} | ||
| 434 | + ${bid}= Підготувати дані для подання пропозиції ${username} | ||
| 435 | + Remove From Dictionary ${bid.data} parameters | ||
| 436 | + Require Failure ${username} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 437 | + | ||
| 438 | + | ||
| 439 | +Можливість змінити пропозицію до ${amount} користувачем ${username} | ||
| 440 | + ${field}= Set Variable If ${number_of_lots} == 0 value.amount lotValues[0].value.amount | ||
| 441 | + ${fixbidto10resp}= Run As ${username} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${field} ${amount} | ||
| 442 | + | ||
| 443 | + | ||
| 444 | +Можливість завантажити документ в пропозицію користувачем ${username} | ||
| 445 | + ${filepath}= create_fake_doc | ||
| 446 | + ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | ||
| 447 | + Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} | ||
| 448 | + | ||
| 449 | + | ||
| 450 | +Можливість змінити документацію цінової пропозиції користувачем ${username} | ||
| 451 | + ${filepath}= create_fake_doc | ||
| 452 | + ${docid}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid_doc_upload']['upload_response'].data.id} | ||
| 453 | + ${bid_doc_modified}= Run As ${username} Змінити документ в ставці ${filepath} ${docid} | ||
| 454 | + Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_modified=${bid_doc_modified} | ||
| 455 | + | ||
| 456 | + | ||
| 457 | +Можливість скасувати цінову пропозицію користувачем ${username} | ||
| 458 | + ${canceledbidresp}= Run As ${username} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} |
| @@ -10,7 +10,8 @@ Library openprocurement_client_helper.py | @@ -10,7 +10,8 @@ Library openprocurement_client_helper.py | ||
| 10 | Log Many ${USERS.users['${username}'].id_map} | 10 | Log Many ${USERS.users['${username}'].id_map} |
| 11 | ${status}= Run Keyword And Return Status Dictionary Should Contain Key ${USERS.users['${username}'].id_map} ${tender_uaid} | 11 | ${status}= Run Keyword And Return Status Dictionary Should Contain Key ${USERS.users['${username}'].id_map} ${tender_uaid} |
| 12 | Run Keyword And Return If ${status} Get From Dictionary ${USERS.users['${username}'].id_map} ${tender_uaid} | 12 | Run Keyword And Return If ${status} Get From Dictionary ${USERS.users['${username}'].id_map} ${tender_uaid} |
| 13 | - ${tender_id}= get_tender_id_by_uaid ${tender_uaid} ${USERS.users['${username}'].client} | 13 | + Call Method ${USERS.users['${username}'].client} get_tenders |
| 14 | + ${tender_id}= Wait Until Keyword Succeeds 5x 30 sec get_tender_id_by_uaid ${tender_uaid} ${USERS.users['${username}'].client} | ||
| 14 | Set To Dictionary ${USERS.users['${username}'].id_map} ${tender_uaid} ${tender_id} | 15 | Set To Dictionary ${USERS.users['${username}'].id_map} ${tender_uaid} ${tender_id} |
| 15 | [return] ${tender_id} | 16 | [return] ${tender_id} |
| 16 | 17 | ||
| @@ -28,6 +29,37 @@ Library openprocurement_client_helper.py | @@ -28,6 +29,37 @@ Library openprocurement_client_helper.py | ||
| 28 | Log Variables | 29 | Log Variables |
| 29 | 30 | ||
| 30 | 31 | ||
| 32 | +Завантажити документ | ||
| 33 | + [Arguments] ${username} ${filepath} ${tender_uaid} | ||
| 34 | + Log ${username} | ||
| 35 | + Log ${tender_uaid} | ||
| 36 | + Log ${filepath} | ||
| 37 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 38 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 39 | + ${reply}= Call Method ${USERS.users['${username}'].client} upload_document ${filepath} ${tender} | ||
| 40 | + Log object data ${reply} reply | ||
| 41 | + [return] ${reply} | ||
| 42 | + | ||
| 43 | + | ||
| 44 | +Отримати документ | ||
| 45 | + [Arguments] ${username} ${tender_uaid} ${url} | ||
| 46 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 47 | + ${token}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 48 | + ${contents} ${filename}= Call Method ${USERS.users['${username}'].client} get_file ${tender} ${url} ${token} | ||
| 49 | + [return] ${contents} ${filename} | ||
| 50 | + | ||
| 51 | + | ||
| 52 | +Отримати посилання на аукціон для глядача | ||
| 53 | + [Arguments] ${username} ${tender_uaid} ${lot_id}=${Empty} | ||
| 54 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 55 | + ${auctionUrl}= Run Keyword IF '${lot_id}' Set Variable ${tender.data.lots[${lot_index}].auctionUrl} | ||
| 56 | + ... ELSE Set Variable ${tender.data.auctionUrl} | ||
| 57 | + [return] ${auctionUrl} | ||
| 58 | + | ||
| 59 | +############################################################################## | ||
| 60 | +# Tender operations | ||
| 61 | +############################################################################## | ||
| 62 | + | ||
| 31 | Підготувати дані для оголошення тендера | 63 | Підготувати дані для оголошення тендера |
| 32 | [Documentation] Це слово використовується в майданчиків, тому потрібно, щоб воно було і тут | 64 | [Documentation] Це слово використовується в майданчиків, тому потрібно, щоб воно було і тут |
| 33 | [Arguments] ${username} ${tender_data} | 65 | [Arguments] ${username} ${tender_data} |
| @@ -41,8 +73,6 @@ Library openprocurement_client_helper.py | @@ -41,8 +73,6 @@ Library openprocurement_client_helper.py | ||
| 41 | ${access_token}= Get Variable Value ${tender.access.token} | 73 | ${access_token}= Get Variable Value ${tender.access.token} |
| 42 | Set To Dictionary ${USERS.users['${username}']} access_token=${access_token} | 74 | Set To Dictionary ${USERS.users['${username}']} access_token=${access_token} |
| 43 | Set To Dictionary ${USERS.users['${username}']} tender_data=${tender} | 75 | Set To Dictionary ${USERS.users['${username}']} tender_data=${tender} |
| 44 | - Log ${access_token} | ||
| 45 | - Log ${tender.data.id} | ||
| 46 | Log ${USERS.users['${username}'].tender_data} | 76 | Log ${USERS.users['${username}'].tender_data} |
| 47 | [return] ${tender.data.tenderID} | 77 | [return] ${tender.data.tenderID} |
| 48 | 78 | ||
| @@ -50,14 +80,17 @@ Library openprocurement_client_helper.py | @@ -50,14 +80,17 @@ Library openprocurement_client_helper.py | ||
| 50 | Пошук тендера по ідентифікатору | 80 | Пошук тендера по ідентифікатору |
| 51 | [Arguments] ${username} ${tender_uaid} | 81 | [Arguments] ${username} ${tender_uaid} |
| 52 | ${internalid}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid} | 82 | ${internalid}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid} |
| 53 | - ${tender}= openprocurement_client.Отримати тендер ${username} ${internalid} | 83 | + ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid} |
| 84 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 85 | + Set To Dictionary ${USERS.users['${username}']} tender_data=${tender} | ||
| 86 | + ${tender}= munch_dict arg=${tender} | ||
| 87 | + Log ${tender} | ||
| 54 | [return] ${tender} | 88 | [return] ${tender} |
| 55 | 89 | ||
| 56 | 90 | ||
| 57 | Оновити сторінку з тендером | 91 | Оновити сторінку з тендером |
| 58 | [Arguments] ${username} ${tender_uaid} | 92 | [Arguments] ${username} ${tender_uaid} |
| 59 | - ${tender_data}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 60 | - Log ${tender_data} | 93 | + openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 61 | 94 | ||
| 62 | 95 | ||
| 63 | Отримати інформацію із тендера | 96 | Отримати інформацію із тендера |
| @@ -75,12 +108,6 @@ Library openprocurement_client_helper.py | @@ -75,12 +108,6 @@ Library openprocurement_client_helper.py | ||
| 75 | Fail Field not found: ${field_name} | 108 | Fail Field not found: ${field_name} |
| 76 | 109 | ||
| 77 | 110 | ||
| 78 | -Отримати інформацію із запитання | ||
| 79 | - [Arguments] ${username} ${tender_uaid} ${question_id} ${field_name} | ||
| 80 | - ${field_name}= Отримати шлях до поля об’єкта ${username} ${field_name} ${question_id} | ||
| 81 | - Run Keyword And Return openprocurement_client.Отримати інформацію із тендера ${username} ${tender_uaid} ${field_name} | ||
| 82 | - | ||
| 83 | - | ||
| 84 | Внести зміни в тендер | 111 | Внести зміни в тендер |
| 85 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | 112 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
| 86 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 113 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| @@ -92,17 +119,9 @@ Library openprocurement_client_helper.py | @@ -92,17 +119,9 @@ Library openprocurement_client_helper.py | ||
| 92 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 119 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
| 93 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} | 120 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} |
| 94 | 121 | ||
| 95 | - | ||
| 96 | -Отримати тендер | ||
| 97 | - [Arguments] ${username} ${internalid} | ||
| 98 | - Log ${username} | ||
| 99 | - Log ${internalid} | ||
| 100 | - ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid} | ||
| 101 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 102 | - Set To Dictionary ${USERS.users['${username}']} tender_data=${tender} | ||
| 103 | - Log ${tender} | ||
| 104 | - [Return] ${tender} | ||
| 105 | - | 122 | +############################################################################## |
| 123 | +# Item operations | ||
| 124 | +############################################################################## | ||
| 106 | 125 | ||
| 107 | Додати предмет закупівлі | 126 | Додати предмет закупівлі |
| 108 | [Arguments] ${username} ${tender_uaid} ${item} | 127 | [Arguments] ${username} ${tender_uaid} ${item} |
| @@ -111,163 +130,19 @@ Library openprocurement_client_helper.py | @@ -111,163 +130,19 @@ Library openprocurement_client_helper.py | ||
| 111 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 130 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
| 112 | 131 | ||
| 113 | 132 | ||
| 133 | +Отримати інформацію із предмету | ||
| 134 | + [Arguments] ${username} ${tender_uaid} ${item_id} ${field_name} | ||
| 135 | + ${field_name}= Отримати шлях до поля об’єкта ${username} ${field_name} ${item_id} | ||
| 136 | + Run Keyword And Return openprocurement_client.Отримати інформацію із тендера ${username} ${tender_uaid} ${field_name} | ||
| 137 | + | ||
| 138 | + | ||
| 114 | Видалити предмет закупівлі | 139 | Видалити предмет закупівлі |
| 115 | - [Arguments] ${username} ${tender_uaid} ${item_id} | 140 | + [Arguments] ${username} ${tender_uaid} ${item_id} ${lot_id}=${Empty} |
| 116 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 141 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 117 | ${item_index}= get_object_index_by_id ${tender.data['items']} ${item_id} | 142 | ${item_index}= get_object_index_by_id ${tender.data['items']} ${item_id} |
| 118 | Remove From List ${tender.data['items']} ${item_index} | 143 | Remove From List ${tender.data['items']} ${item_index} |
| 119 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 144 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
| 120 | 145 | ||
| 121 | - | ||
| 122 | -Задати питання | ||
| 123 | - [Arguments] ${username} ${tender_uaid} ${question} | ||
| 124 | - Log ${question} | ||
| 125 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 126 | - ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_question ${tender} ${question} | ||
| 127 | - [return] ${biddingresponse} | ||
| 128 | - | ||
| 129 | - | ||
| 130 | -Відповісти на питання | ||
| 131 | - [Arguments] ${username} ${tender_uaid} ${question} ${answer_data} ${question_id} | ||
| 132 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 133 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 134 | - ${answer_data.data.id}= openprocurement_client.Отримати інформацію із запитання ${username} ${tender_uaid} ${question_id} id | ||
| 135 | - ${question_with_answer}= Call Method ${USERS.users['${username}'].client} patch_question ${tender} ${answer_data} | ||
| 136 | - Log object data ${question_with_answer} question_with_answer | ||
| 137 | - [return] ${question_with_answer} | ||
| 138 | - | ||
| 139 | - | ||
| 140 | -Подати цінову пропозицію | ||
| 141 | - [Arguments] ${username} ${tender_uaid} ${bid} | ||
| 142 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 143 | - ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} | ||
| 144 | - ${bid}= Run Keyword If ${lots} test_bid_data multiLot | ||
| 145 | - ... ELSE Set Variable ${bid} | ||
| 146 | - Run Keyword If ${lots} | ||
| 147 | - ... Run Keywords | ||
| 148 | - ... Remove From List ${bid.data.lotValues} 1 | ||
| 149 | - ... AND | ||
| 150 | - ... Set_To_Object ${bid.data.lotValues[0]} relatedLot ${lots[0].id} | ||
| 151 | - ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_bid ${tender} ${bid} | ||
| 152 | - Set To Dictionary ${USERS.users['${username}'].bidresponses['bid'].data} id=${biddingresponse['data']['id']} | ||
| 153 | - Log ${biddingresponse} | ||
| 154 | - [return] ${biddingresponse} | ||
| 155 | - | ||
| 156 | - | ||
| 157 | -Змінити цінову пропозицію | ||
| 158 | - [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | ||
| 159 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 160 | - ${lots}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots} | ||
| 161 | - ${fieldname}= Run Keyword If ${lots} Set Variable lotValues.0.${fieldname} | ||
| 162 | - ... ELSE Set Variable ${fieldname} | ||
| 163 | - ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | ||
| 164 | - Set_To_Object ${bid.data} ${fieldname} ${fieldvalue} | ||
| 165 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 166 | - ${changed_bid}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${bid} | ||
| 167 | - Log ${changed_bid} | ||
| 168 | - [return] ${changed_bid} | ||
| 169 | - | ||
| 170 | - | ||
| 171 | -Скасувати цінову пропозицію | ||
| 172 | - [Arguments] ${username} ${tender_uaid} ${bid} | ||
| 173 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 174 | - Set To Dictionary ${bid.data} id=${USERS.users['${username}'].bidresponses['bid'].data.id} | ||
| 175 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 176 | - ${changed_bid}= Call Method ${USERS.users['${username}'].client} delete_bid ${tender} ${bid} | ||
| 177 | - Log ${changed_bid} | ||
| 178 | - [return] ${changed_bid} | ||
| 179 | - | ||
| 180 | - | ||
| 181 | -Прийняти цінову пропозицію | ||
| 182 | - [Arguments] ${username} ${tender_uaid} ${award} | ||
| 183 | - ${internalid}= openprocurement_client.Отримати internal id по UAid ${username} ${tender_uaid} | ||
| 184 | - ${tender}= Call Method ${USERS.users['${username}'].client} get_tender ${internalid} | ||
| 185 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 186 | - ${award_activeted_response}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} | ||
| 187 | - Log ${award_activeted_response} | ||
| 188 | - [return] ${award_activeted_response} | ||
| 189 | - | ||
| 190 | - | ||
| 191 | -Завантажити документ в ставку | ||
| 192 | - [Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents | ||
| 193 | - ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} | ||
| 194 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 195 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 196 | - ${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document ${path} ${tender} ${bid_id} ${doc_type} | ||
| 197 | - ${uploaded_file} = Create Dictionary filepath=${path} upload_response=${response} | ||
| 198 | - Log ${response} | ||
| 199 | - Log object data ${uploaded_file} | ||
| 200 | - [return] ${uploaded_file} | ||
| 201 | - | ||
| 202 | - | ||
| 203 | -Змінити документ в ставці | ||
| 204 | - [Arguments] ${username} ${path} ${bidid} ${docid} | ||
| 205 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${TENDER['TENDER_UAID']} | ||
| 206 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 207 | - ${response}= Call Method ${USERS.users['${username}'].client} update_bid_document ${path} ${tender} ${bidid} ${docid} | ||
| 208 | - ${uploaded_file} = Create Dictionary filepath=${path} upload_response=${response} | ||
| 209 | - Log ${response} | ||
| 210 | - Log object data ${uploaded_file} | ||
| 211 | - [return] ${uploaded_file} | ||
| 212 | - | ||
| 213 | - | ||
| 214 | -Змінити документацію в ставці | ||
| 215 | - [Arguments] ${username} ${doc_data} ${bidid} ${docid} | ||
| 216 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${TENDER['TENDER_UAID']} | ||
| 217 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 218 | - ${response}= Call Method ${USERS.users['${username}'].client} patch_bid_document ${tender} ${doc_data} ${bidid} ${docid} | ||
| 219 | - Log ${response} | ||
| 220 | - [return] ${response} | ||
| 221 | - | ||
| 222 | - | ||
| 223 | -Завантажити документ | ||
| 224 | - [Arguments] ${username} ${filepath} ${tender_uaid} | ||
| 225 | - Log ${username} | ||
| 226 | - Log ${tender_uaid} | ||
| 227 | - Log ${filepath} | ||
| 228 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 229 | - ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 230 | - ${reply}= Call Method ${USERS.users['${username}'].client} upload_document ${filepath} ${tender} | ||
| 231 | - Log object data ${reply} reply | ||
| 232 | - [return] ${reply} | ||
| 233 | - | ||
| 234 | - | ||
| 235 | -Отримати посилання на аукціон для глядача | ||
| 236 | - [Arguments] ${username} ${tender_uaid} ${lot_id}=${Empty} | ||
| 237 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 238 | - ${lot_auctionUrl}= Run Keyword If "${mode}" == "single" Get Variable Value ${tender.data.lots[0].auctionUrl} | ||
| 239 | - ${auctionUrl}= Run Keyword If ${lot_auctionUrl} Set Variable ${lot_auctionUrl} | ||
| 240 | - ... ELSE IF '${lot_id}' Set Variable ${tender.data.lots[${lot_index}].auctionUrl} | ||
| 241 | - ... ELSE Set Variable ${tender.data.auctionUrl} | ||
| 242 | - [return] ${auctionUrl} | ||
| 243 | - | ||
| 244 | - | ||
| 245 | -Отримати посилання на аукціон для учасника | ||
| 246 | - [Arguments] ${username} ${tender_uaid} | ||
| 247 | - ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | ||
| 248 | - ${lot_participationUrl}= Run Keyword If "${mode}" == "single" Get Variable Value ${bid.data.lots[0].participationUrl} | ||
| 249 | - ${participationUrl}= Run Keyword If ${lot_participationUrl} Set Variable ${participationUrl} | ||
| 250 | - ... ELSE Set Variable ${bid.data.participationUrl} | ||
| 251 | - [return] ${participationUrl} | ||
| 252 | - | ||
| 253 | - | ||
| 254 | -Отримати пропозицію | ||
| 255 | - [Arguments] ${username} ${tender_uaid} | ||
| 256 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 257 | - ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} | ||
| 258 | - ${token}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 259 | - ${bid}= Call Method ${USERS.users['${username}'].client} get_bid ${tender} ${bid_id} ${token} | ||
| 260 | - [return] ${bid} | ||
| 261 | - | ||
| 262 | - | ||
| 263 | -Отримати документ | ||
| 264 | - [Arguments] ${username} ${tender_uaid} ${url} | ||
| 265 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 266 | - ${token}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 267 | - ${contents} ${filename}= Call Method ${USERS.users['${username}'].client} get_file ${tender} ${url} ${token} | ||
| 268 | - Log ${filename} | ||
| 269 | - [return] ${contents} ${filename} | ||
| 270 | - | ||
| 271 | ############################################################################## | 146 | ############################################################################## |
| 272 | # Lot operations | 147 | # Lot operations |
| 273 | ############################################################################## | 148 | ############################################################################## |
| @@ -305,16 +180,6 @@ Library openprocurement_client_helper.py | @@ -305,16 +180,6 @@ Library openprocurement_client_helper.py | ||
| 305 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 180 | Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
| 306 | 181 | ||
| 307 | 182 | ||
| 308 | -Задати питання до лоту | ||
| 309 | - [Arguments] ${username} ${tender_uaid} ${lot_id} ${question} | ||
| 310 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 311 | - ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
| 312 | - ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
| 313 | - ${question}= test_lot_question_data ${question} ${lot_id} | ||
| 314 | - ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_question ${tender} ${question} | ||
| 315 | - [return] ${biddingresponse} | ||
| 316 | - | ||
| 317 | - | ||
| 318 | Завантажити документ в лот | 183 | Завантажити документ в лот |
| 319 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} | 184 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} |
| 320 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 185 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| @@ -335,14 +200,111 @@ Library openprocurement_client_helper.py | @@ -335,14 +200,111 @@ Library openprocurement_client_helper.py | ||
| 335 | [return] ${reply} | 200 | [return] ${reply} |
| 336 | 201 | ||
| 337 | 202 | ||
| 338 | -Подати цінову пропозицію на лоти | ||
| 339 | - [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids} | 203 | +Скасувати лот |
| 204 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${cancellation_reason} ${document} ${new_description} | ||
| 205 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 206 | + ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
| 207 | + ${data}= Create dictionary reason=${cancellation_reason} cancellationOf=lot relatedLot=${lot_id} | ||
| 208 | + ${cancellation_data}= Create dictionary data=${data} | ||
| 209 | + ${cancellation_data}= munch_dict arg=${cancellation_data} | ||
| 210 | + ${cancel_reply}= Call Method ${USERS.users['${username}'].client} create_cancellation ${tender} ${cancellation_data} | ||
| 211 | + ${cancellation_id}= Set variable ${cancel_reply.data.id} | ||
| 212 | + | ||
| 213 | + ${document_id}= openprocurement_client.Завантажити документацію до запиту на скасування ${username} ${tender_uaid} ${cancellation_id} ${document} | ||
| 214 | + | ||
| 215 | + openprocurement_client.Змінити опис документа в скасуванні ${username} ${tender_uaid} ${cancellation_id} ${document_id} ${new_description} | ||
| 216 | + | ||
| 217 | + openprocurement_client.Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id} | ||
| 218 | + | ||
| 219 | + | ||
| 220 | +############################################################################## | ||
| 221 | +# Feature operations | ||
| 222 | +############################################################################## | ||
| 223 | + | ||
| 224 | +Додати неціновий показник на тендер | ||
| 225 | + [Arguments] ${username} ${tender_uaid} ${feature} | ||
| 226 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 227 | + Append To List ${tender.data['features']} ${feature} | ||
| 228 | + Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | ||
| 229 | + | ||
| 230 | + | ||
| 231 | +Додати неціновий показник на предмет | ||
| 232 | + [Arguments] ${username} ${tender_uaid} ${feature} ${item_id} | ||
| 233 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 234 | + ${item_index}= get_object_index_by_id ${tender.data['items']} ${item_id} | ||
| 235 | + ${item_id}= Get Variable Value ${tender.data['items'][${item_index}].id} | ||
| 236 | + Set To Dictionary ${feature} relatedItem=${item_id} | ||
| 237 | + Append To List ${tender.data['features']} ${feature} | ||
| 238 | + Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | ||
| 239 | + | ||
| 240 | + | ||
| 241 | +Додати неціновий показник на лот | ||
| 242 | + [Arguments] ${username} ${tender_uaid} ${feature} ${lot_id} | ||
| 243 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 244 | + ${lot_index}= get_object_index_by_id ${tender.data['lots']} ${lot_id} | ||
| 245 | + ${lot_id}= Get Variable Value ${tender.data['lots'][${lot_index}].id} | ||
| 246 | + Set To Dictionary ${feature} relatedItem=${lot_id} | ||
| 247 | + Append To List ${tender.data['features']} ${feature} | ||
| 248 | + Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | ||
| 249 | + | ||
| 250 | + | ||
| 251 | +Отримати інформацію із нецінового показника | ||
| 252 | + [Arguments] ${username} ${tender_uaid} ${feature_id} ${field_name} | ||
| 253 | + ${field_name}= Отримати шлях до поля об’єкта ${username} ${field_name} ${feature_id} | ||
| 254 | + Run Keyword And Return openprocurement_client.Отримати інформацію із тендера ${username} ${tender_uaid} ${field_name} | ||
| 255 | + | ||
| 256 | + | ||
| 257 | +Видалити неціновий показник | ||
| 258 | + [Arguments] ${username} ${tender_uaid} ${feature_id} ${obj_id}=${Empty} | ||
| 259 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 260 | + ${feature_index}= get_object_index_by_id ${tender.data['features']} ${feature_id} | ||
| 261 | + Remove From List ${tender.data['features']} ${feature_index} | ||
| 262 | + Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | ||
| 263 | + | ||
| 264 | + | ||
| 265 | +############################################################################## | ||
| 266 | +# Questions | ||
| 267 | +############################################################################## | ||
| 268 | + | ||
| 269 | +Задати запитання на предмет | ||
| 270 | + [Arguments] ${username} ${tender_uaid} ${item_id} ${question} | ||
| 271 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 272 | + ${item_index}= get_object_index_by_id ${tender.data['items']} ${item_id} | ||
| 273 | + ${item_id}= Get Variable Value ${tender.data['items'][${item_index}].id} | ||
| 274 | + ${question}= test_related_question ${question} item ${item_id} | ||
| 275 | + ${reply}= Call Method ${USERS.users['${username}'].client} create_question ${tender} ${question} | ||
| 276 | + [return] ${reply} | ||
| 277 | + | ||
| 278 | + | ||
| 279 | +Задати запитання на лот | ||
| 280 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${question} | ||
| 340 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 281 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 341 | - : FOR ${index} ${lot_id} IN ENUMERATE @{lots_ids} | ||
| 342 | - \ ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
| 343 | - \ ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
| 344 | - \ Set To Dictionary ${bid.data.lotValues[${index}]} relatedLot=${lot_id} | ||
| 345 | - ${reply}= openprocurement_client.Подати цінову пропозицію ${username} ${tender_uaid} ${bid} | 282 | + ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id} |
| 283 | + ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id} | ||
| 284 | + ${question}= test_related_question ${question} lot ${lot_id} | ||
| 285 | + ${reply}= Call Method ${USERS.users['${username}'].client} create_question ${tender} ${question} | ||
| 286 | + [return] ${reply} | ||
| 287 | + | ||
| 288 | + | ||
| 289 | +Задати запитання на тендер | ||
| 290 | + [Arguments] ${username} ${tender_uaid} ${question} | ||
| 291 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 292 | + ${reply}= Call Method ${USERS.users['${username}'].client} create_question ${tender} ${question} | ||
| 293 | + [return] ${reply} | ||
| 294 | + | ||
| 295 | + | ||
| 296 | +Отримати інформацію із запитання | ||
| 297 | + [Arguments] ${username} ${tender_uaid} ${question_id} ${field_name} | ||
| 298 | + ${field_name}= Отримати шлях до поля об’єкта ${username} ${field_name} ${question_id} | ||
| 299 | + Run Keyword And Return openprocurement_client.Отримати інформацію із тендера ${username} ${tender_uaid} ${field_name} | ||
| 300 | + | ||
| 301 | + | ||
| 302 | +Відповісти на запитання | ||
| 303 | + [Arguments] ${username} ${tender_uaid} ${answer_data} ${question_id} | ||
| 304 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 305 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | ||
| 306 | + ${answer_data.data.id}= openprocurement_client.Отримати інформацію із запитання ${username} ${tender_uaid} ${question_id} id | ||
| 307 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_question ${tender} ${answer_data} | ||
| 346 | [return] ${reply} | 308 | [return] ${reply} |
| 347 | 309 | ||
| 348 | ############################################################################## | 310 | ############################################################################## |
| @@ -465,6 +427,92 @@ Library openprocurement_client_helper.py | @@ -465,6 +427,92 @@ Library openprocurement_client_helper.py | ||
| 465 | Log ${reply} | 427 | Log ${reply} |
| 466 | 428 | ||
| 467 | ############################################################################## | 429 | ############################################################################## |
| 430 | +# Bid operations | ||
| 431 | +############################################################################## | ||
| 432 | + | ||
| 433 | +Подати цінову пропозицію | ||
| 434 | + [Arguments] ${username} ${tender_uaid} ${bid} | ||
| 435 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 436 | + ${reply}= Call Method ${USERS.users['${username}'].client} create_bid ${tender} ${bid} | ||
| 437 | + Set To Dictionary ${USERS.users['${username}']} access_token=${reply['access']['token']} | ||
| 438 | + Set To Dictionary ${USERS.users['${username}'].bidresponses['bid'].data} id=${reply['data']['id']} | ||
| 439 | + Log ${reply} | ||
| 440 | + [return] ${reply} | ||
| 441 | + | ||
| 442 | + | ||
| 443 | +Змінити цінову пропозицію | ||
| 444 | + [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | ||
| 445 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 446 | + ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | ||
| 447 | + Set_To_Object ${bid.data} ${fieldname} ${fieldvalue} | ||
| 448 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 449 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${bid} | ||
| 450 | + Log ${reply} | ||
| 451 | + [return] ${reply} | ||
| 452 | + | ||
| 453 | + | ||
| 454 | +Скасувати цінову пропозицію | ||
| 455 | + [Arguments] ${username} ${tender_uaid} | ||
| 456 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 457 | + ${bid_id}= openprocurement_client.Отримати інформацію із пропозиції ${username} ${tender_uaid} id | ||
| 458 | + ${reply}= Call Method ${USERS.users['${username}'].client} delete_bid ${tender} ${bid_id} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 459 | + Log ${reply} | ||
| 460 | + [return] ${reply} | ||
| 461 | + | ||
| 462 | +Завантажити документ в ставку | ||
| 463 | + [Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents | ||
| 464 | + ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} | ||
| 465 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 466 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 467 | + ${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document ${path} ${tender} ${bid_id} ${doc_type} | ||
| 468 | + ${uploaded_file} = Create Dictionary filepath=${path} upload_response=${response} | ||
| 469 | + Log object data ${uploaded_file} | ||
| 470 | + [return] ${uploaded_file} | ||
| 471 | + | ||
| 472 | + | ||
| 473 | +Змінити документ в ставці | ||
| 474 | + [Arguments] ${username} ${path} ${docid} | ||
| 475 | + ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} | ||
| 476 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${TENDER['TENDER_UAID']} | ||
| 477 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 478 | + ${response}= Call Method ${USERS.users['${username}'].client} update_bid_document ${path} ${tender} ${bid_id} ${docid} | ||
| 479 | + ${uploaded_file} = Create Dictionary filepath=${path} upload_response=${response} | ||
| 480 | + Log object data ${uploaded_file} | ||
| 481 | + [return] ${uploaded_file} | ||
| 482 | + | ||
| 483 | + | ||
| 484 | +Змінити документацію в ставці | ||
| 485 | + [Arguments] ${username} ${doc_data} ${docid} | ||
| 486 | + ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} | ||
| 487 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${TENDER['TENDER_UAID']} | ||
| 488 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 489 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_bid_document ${tender} ${doc_data} ${bid_id} ${docid} | ||
| 490 | + [return] ${reply} | ||
| 491 | + | ||
| 492 | + | ||
| 493 | +Отримати пропозицію | ||
| 494 | + [Arguments] ${username} ${tender_uaid} | ||
| 495 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 496 | + ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} | ||
| 497 | + ${token}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 498 | + ${reply}= Call Method ${USERS.users['${username}'].client} get_bid ${tender} ${bid_id} ${token} | ||
| 499 | + [return] ${reply} | ||
| 500 | + | ||
| 501 | + | ||
| 502 | +Отримати інформацію із пропозиції | ||
| 503 | + [Arguments] ${username} ${tender_uaid} ${field} | ||
| 504 | + ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | ||
| 505 | + [return] ${bid.data.${field}} | ||
| 506 | + | ||
| 507 | + | ||
| 508 | +Отримати посилання на аукціон для учасника | ||
| 509 | + [Arguments] ${username} ${tender_uaid} ${lot_id}=${Empty} | ||
| 510 | + ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | ||
| 511 | + ${participationUrl}= Run Keyword IF '${lot_id}' Set Variable ${bid.data.lotValues[${lot_index}].participationUrl} | ||
| 512 | + ... ELSE Set Variable ${bid.data.participationUrl} | ||
| 513 | + [return] ${participationUrl} | ||
| 514 | + | ||
| 515 | +############################################################################## | ||
| 468 | # Qualification operations | 516 | # Qualification operations |
| 469 | ############################################################################## | 517 | ############################################################################## |
| 470 | 518 | ||
| @@ -473,14 +521,9 @@ Library openprocurement_client_helper.py | @@ -473,14 +521,9 @@ Library openprocurement_client_helper.py | ||
| 473 | ... [Arguments] Username, tender uaid, qualification number and document to upload | 521 | ... [Arguments] Username, tender uaid, qualification number and document to upload |
| 474 | ... [Description] Find tender using uaid, and call upload_qualification_document | 522 | ... [Description] Find tender using uaid, and call upload_qualification_document |
| 475 | ... [Return] Reply of API | 523 | ... [Return] Reply of API |
| 476 | - [Arguments] ${username} ${document} ${tender_uaid} ${award_num} ${lot_id}=${Empty} | 524 | + [Arguments] ${username} ${document} ${tender_uaid} ${award_num} |
| 477 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 525 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 478 | ${doc}= Call Method ${USERS.users['${username}'].client} upload_award_document ${document} ${tender} ${tender.data.awards[${award_num}].id} | 526 | ${doc}= Call Method ${USERS.users['${username}'].client} upload_award_document ${document} ${tender} ${tender.data.awards[${award_num}].id} |
| 479 | - ${lot_index}= Run Keyword If '${lot_id}' get_object_index_by_id ${tender.data.lots} ${lot_id} | ||
| 480 | - Run Keyword If '${lot_id}' | ||
| 481 | - ... Set To Object ${doc.data} documentOf lot | ||
| 482 | - ... Set To Object ${doc.data} relatedItem ${tender.data.lots[${lot_index}].id} | ||
| 483 | - ... Call Method ${USERS.users['${username}'].client} patch_document ${tender} ${doc} | ||
| 484 | Log ${doc} | 527 | Log ${doc} |
| 485 | [Return] ${doc} | 528 | [Return] ${doc} |
| 486 | 529 | ||
| @@ -494,6 +537,10 @@ Library openprocurement_client_helper.py | @@ -494,6 +537,10 @@ Library openprocurement_client_helper.py | ||
| 494 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 537 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 495 | ${award}= create_data_dict data.status active | 538 | ${award}= create_data_dict data.status active |
| 496 | Set To Dictionary ${award.data} id=${tender.data.awards[${award_num}].id} | 539 | Set To Dictionary ${award.data} id=${tender.data.awards[${award_num}].id} |
| 540 | + Run Keyword IF 'open' in '${mode}' | ||
| 541 | + ... Set To Dictionary ${award.data} | ||
| 542 | + ... qualified=${True} | ||
| 543 | + ... eligible=${True} | ||
| 497 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} | 544 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} |
| 498 | Log ${reply} | 545 | Log ${reply} |
| 499 | 546 | ||
| @@ -503,8 +550,8 @@ Library openprocurement_client_helper.py | @@ -503,8 +550,8 @@ Library openprocurement_client_helper.py | ||
| 503 | ... [Arguments] Username, tender uaid and award number | 550 | ... [Arguments] Username, tender uaid and award number |
| 504 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_award | 551 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_award |
| 505 | ... [Return] Reply of API | 552 | ... [Return] Reply of API |
| 506 | - [Arguments] ${username} ${tender_uid} ${award_num} | ||
| 507 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | 553 | + [Arguments] ${username} ${tender_uaid} ${award_num} |
| 554 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 508 | ${award}= create_data_dict data.status unsuccessful | 555 | ${award}= create_data_dict data.status unsuccessful |
| 509 | Set To Dictionary ${award.data} id=${tender.data.awards[${award_num}].id} | 556 | Set To Dictionary ${award.data} id=${tender.data.awards[${award_num}].id} |
| 510 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} | 557 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} |
| @@ -517,8 +564,8 @@ Library openprocurement_client_helper.py | @@ -517,8 +564,8 @@ Library openprocurement_client_helper.py | ||
| 517 | ... [Arguments] Username, tender uaid and award number | 564 | ... [Arguments] Username, tender uaid and award number |
| 518 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_award | 565 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_award |
| 519 | ... [Return] Reply of API | 566 | ... [Return] Reply of API |
| 520 | - [Arguments] ${username} ${tender_uid} ${award_num} | ||
| 521 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | 567 | + [Arguments] ${username} ${tender_uaid} ${award_num} |
| 568 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 522 | ${award}= create_data_dict data.status cancelled | 569 | ${award}= create_data_dict data.status cancelled |
| 523 | Set To Dictionary ${award.data} id=${tender.data.awards[${award_num}].id} | 570 | Set To Dictionary ${award.data} id=${tender.data.awards[${award_num}].id} |
| 524 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} | 571 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} |
| @@ -640,8 +687,8 @@ Library openprocurement_client_helper.py | @@ -640,8 +687,8 @@ Library openprocurement_client_helper.py | ||
| 640 | ... [Arguments] Username, tender uaid and qualification number | 687 | ... [Arguments] Username, tender uaid and qualification number |
| 641 | ... [Description] Find tender using uaid, create data dict with active status and call patch_qualification | 688 | ... [Description] Find tender using uaid, create data dict with active status and call patch_qualification |
| 642 | ... [Return] Reply of API | 689 | ... [Return] Reply of API |
| 643 | - [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
| 644 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | 690 | + [Arguments] ${username} ${tender_uaid} ${qualification_num} |
| 691 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 645 | ${qualification}= create_data_dict data.status active | 692 | ${qualification}= create_data_dict data.status active |
| 646 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} eligible=${True} qualified=${True} | 693 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} eligible=${True} qualified=${True} |
| 647 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | 694 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} |
| @@ -654,8 +701,8 @@ Library openprocurement_client_helper.py | @@ -654,8 +701,8 @@ Library openprocurement_client_helper.py | ||
| 654 | ... [Arguments] Username, tender uaid and qualification number | 701 | ... [Arguments] Username, tender uaid and qualification number |
| 655 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_qualification | 702 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_qualification |
| 656 | ... [Return] Reply of API | 703 | ... [Return] Reply of API |
| 657 | - [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
| 658 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | 704 | + [Arguments] ${username} ${tender_uaid} ${qualification_num} |
| 705 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 659 | ${qualification}= create_data_dict data.status unsuccessful | 706 | ${qualification}= create_data_dict data.status unsuccessful |
| 660 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} | 707 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} |
| 661 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | 708 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} |
| @@ -680,8 +727,8 @@ Library openprocurement_client_helper.py | @@ -680,8 +727,8 @@ Library openprocurement_client_helper.py | ||
| 680 | ... [Arguments] Username, tender uaid and qualification number | 727 | ... [Arguments] Username, tender uaid and qualification number |
| 681 | ... [Description] Find tender using uaid, create data dict with cancelled status and call patch_qualification | 728 | ... [Description] Find tender using uaid, create data dict with cancelled status and call patch_qualification |
| 682 | ... [Return] Reply of API | 729 | ... [Return] Reply of API |
| 683 | - [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
| 684 | - ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | 730 | + [Arguments] ${username} ${tender_uaid} ${qualification_num} |
| 731 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 685 | ${qualification}= create_data_dict data.status cancelled | 732 | ${qualification}= create_data_dict data.status cancelled |
| 686 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} | 733 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} |
| 687 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | 734 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} |
op_robot_tests/tests_files/cancelation.robot
0 → 100644
| 1 | +*** Settings *** | ||
| 2 | +Resource keywords.robot | ||
| 3 | +Resource resource.robot | ||
| 4 | +Suite Setup Test Suite Setup | ||
| 5 | +Suite Teardown Test Suite Teardown | ||
| 6 | + | ||
| 7 | +*** Variables *** | ||
| 8 | +@{used_roles} tender_owner viewer | ||
| 9 | + | ||
| 10 | + | ||
| 11 | +*** Test Cases *** | ||
| 12 | +Можливість знайти закупівлю по ідентифікатору | ||
| 13 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
| 14 | + ... viewer | ||
| 15 | + ... ${USERS.users['${viewer}'].broker} | ||
| 16 | + ... tender_cancelation lot_cancelation delete_lot | ||
| 17 | + Завантажити дані про тендер | ||
| 18 | + Run As ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 19 | + | ||
| 20 | +############################################################################################## | ||
| 21 | +# TENDER CANCELLATION | ||
| 22 | +############################################################################################## | ||
| 23 | +Можливість скасувати тендер | ||
| 24 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Скасування тендера | ||
| 25 | + ... tender_owner | ||
| 26 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 27 | + ... tender_cancelation | ||
| 28 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 29 | + Можливість скасувати тендер | ||
| 30 | + | ||
| 31 | + | ||
| 32 | +Відображення активного статусу скасування тендера | ||
| 33 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера | ||
| 34 | + ... viewer | ||
| 35 | + ... ${USERS.users['${viewer}'].broker} | ||
| 36 | + ... tender_cancelation | ||
| 37 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 38 | + Відображення активного статусу скасування | ||
| 39 | + | ||
| 40 | + | ||
| 41 | +Відображення причини скасування тендера | ||
| 42 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера | ||
| 43 | + ... viewer | ||
| 44 | + ... ${USERS.users['${viewer}'].broker} | ||
| 45 | + ... tender_cancelation | ||
| 46 | + Відображення причини скасування | ||
| 47 | + | ||
| 48 | + | ||
| 49 | +Відображення опису документа скасування тендера | ||
| 50 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера | ||
| 51 | + ... viewer | ||
| 52 | + ... ${USERS.users['${viewer}'].broker} | ||
| 53 | + ... tender_cancelation | ||
| 54 | + Відображення опису документа скасування | ||
| 55 | + | ||
| 56 | + | ||
| 57 | +Відображення заголовку документа скасування тендера | ||
| 58 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера | ||
| 59 | + ... viewer | ||
| 60 | + ... ${USERS.users['${viewer}'].broker} | ||
| 61 | + ... tender_cancelation | ||
| 62 | + Відображення заголовку документа скасування | ||
| 63 | + | ||
| 64 | +############################################################################################## | ||
| 65 | +# LOT CANCELLATION | ||
| 66 | +############################################################################################## | ||
| 67 | + | ||
| 68 | +Можливість скасувати лот | ||
| 69 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Скасування лота | ||
| 70 | + ... tender_owner | ||
| 71 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 72 | + ... lot_cancelation | ||
| 73 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 74 | + Можливість скасувати лот | ||
| 75 | + | ||
| 76 | + | ||
| 77 | +Відображення активного статусу скасування лота | ||
| 78 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота | ||
| 79 | + ... viewer | ||
| 80 | + ... ${USERS.users['${viewer}'].broker} | ||
| 81 | + ... lot_cancelation | ||
| 82 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 83 | + Відображення активного статусу скасування | ||
| 84 | + | ||
| 85 | + | ||
| 86 | +Відображення причини скасування лота | ||
| 87 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота | ||
| 88 | + ... viewer | ||
| 89 | + ... ${USERS.users['${viewer}'].broker} | ||
| 90 | + ... lot_cancelation | ||
| 91 | + Відображення причини скасування | ||
| 92 | + | ||
| 93 | + | ||
| 94 | +Відображення опису документа скасування лота | ||
| 95 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота | ||
| 96 | + ... viewer | ||
| 97 | + ... ${USERS.users['${viewer}'].broker} | ||
| 98 | + ... lot_cancelation | ||
| 99 | + Відображення опису документа скасування | ||
| 100 | + | ||
| 101 | + | ||
| 102 | +Відображення заголовку документа скасування лота | ||
| 103 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування лота | ||
| 104 | + ... viewer | ||
| 105 | + ... ${USERS.users['${viewer}'].broker} | ||
| 106 | + ... lot_cancelation | ||
| 107 | + Відображення заголовку документа скасування | ||
| 108 | + | ||
| 109 | +############################################################################################## | ||
| 110 | +# DELETING LOT | ||
| 111 | +############################################################################################## | ||
| 112 | + | ||
| 113 | +Неможливість видалення лоту | ||
| 114 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 115 | + ... tender_owner | ||
| 116 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 117 | + ... delete_lot | ||
| 118 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 119 | + Require Failure ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${TENDER['LOT_ID']} | ||
| 120 | + | ||
| 121 | + | ||
| 122 | +*** Keywords *** | ||
| 123 | +Можливість скасувати тендер | ||
| 124 | + ${cancellation_data}= Підготувати дані про скасування ${tender_owner} | ||
| 125 | + Run As ${tender_owner} | ||
| 126 | + ... Скасувати закупівлю | ||
| 127 | + ... ${TENDER['TENDER_UAID']} | ||
| 128 | + ... ${cancellation_data['cancellation_reason']} | ||
| 129 | + ... ${cancellation_data['document']} | ||
| 130 | + ... ${cancellation_data['description']} | ||
| 131 | + | ||
| 132 | + | ||
| 133 | +Можливість скасувати лот | ||
| 134 | + ${cancellation_data}= Підготувати дані про скасування ${tender_owner} | ||
| 135 | + Run As ${tender_owner} | ||
| 136 | + ... Скасувати лот | ||
| 137 | + ... ${TENDER['TENDER_UAID']} | ||
| 138 | + ... ${TENDER['LOT_ID']} | ||
| 139 | + ... ${cancellation_data['cancellation_reason']} | ||
| 140 | + ... ${cancellation_data['document']} | ||
| 141 | + ... ${cancellation_data['description']} | ||
| 142 | + | ||
| 143 | + | ||
| 144 | +Відображення активного статусу скасування | ||
| 145 | + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} | ||
| 146 | + ... active | ||
| 147 | + ... cancellations[0].status | ||
| 148 | + | ||
| 149 | + | ||
| 150 | +Відображення причини скасування | ||
| 151 | + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} | ||
| 152 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['cancellation_reason']} | ||
| 153 | + ... cancellations[0].reason | ||
| 154 | + | ||
| 155 | + | ||
| 156 | +Відображення опису документа скасування | ||
| 157 | + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} | ||
| 158 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['description']} | ||
| 159 | + ... cancellations[0].documents[0].description | ||
| 160 | + | ||
| 161 | + | ||
| 162 | +Відображення заголовку документа скасування | ||
| 163 | + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} | ||
| 164 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['document']} | ||
| 165 | + ... cancellations[0].documents[0].title |
| @@ -16,7 +16,7 @@ Suite Teardown Test Suite Teardown | @@ -16,7 +16,7 @@ Suite Teardown Test Suite Teardown | ||
| 16 | ... minimal | 16 | ... minimal |
| 17 | Завантажити дані про тендер | 17 | Завантажити дані про тендер |
| 18 | :FOR ${username} IN ${viewer} ${tender_owner} | 18 | :FOR ${username} IN ${viewer} ${tender_owner} |
| 19 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 19 | + \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 20 | 20 | ||
| 21 | ############################################################################################## | 21 | ############################################################################################## |
| 22 | # CONTRACT | 22 | # CONTRACT |
| @@ -27,23 +27,26 @@ Suite Teardown Test Suite Teardown | @@ -27,23 +27,26 @@ Suite Teardown Test Suite Teardown | ||
| 27 | ... tender_owner | 27 | ... tender_owner |
| 28 | ... ${USERS.users['${tender_owner}'].broker} | 28 | ... ${USERS.users['${tender_owner}'].broker} |
| 29 | :FOR ${username} IN ${viewer} ${tender_owner} | 29 | :FOR ${username} IN ${viewer} ${tender_owner} |
| 30 | - \ Отримати дані із тендера ${username} awards[1].complaintPeriod.endDate | 30 | + \ Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} awards[1].complaintPeriod.endDate |
| 31 | + | ||
| 31 | 32 | ||
| 32 | Дочекатися закічення stand still періоду | 33 | Дочекатися закічення stand still періоду |
| 33 | ${standstillEnd}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data.awards[1].complaintPeriod.endDate} | 34 | ${standstillEnd}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data.awards[1].complaintPeriod.endDate} |
| 34 | Дочекатись дати ${standstillEnd} | 35 | Дочекатись дати ${standstillEnd} |
| 35 | 36 | ||
| 37 | + | ||
| 36 | Можливість укласти угоду для закупівлі | 38 | Можливість укласти угоду для закупівлі |
| 37 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для прямої закупівлі | 39 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для прямої закупівлі |
| 38 | ... tender_owner | 40 | ... tender_owner |
| 39 | ... ${USERS.users['${tender_owner}'].broker} | 41 | ... ${USERS.users['${tender_owner}'].broker} |
| 40 | [Teardown] Оновити LAST_MODIFICATION_DATE | 42 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 41 | - Викликати для учасника ${tender_owner} Підтвердити підписання контракту ${TENDER['TENDER_UAID']} 1 | 43 | + Run As ${tender_owner} Підтвердити підписання контракту ${TENDER['TENDER_UAID']} 1 |
| 44 | + | ||
| 42 | 45 | ||
| 43 | Відображення статусу підписаної угоди з постачальником закупівлі | 46 | Відображення статусу підписаної угоди з постачальником закупівлі |
| 44 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення статусу підписаної угоди з постачальником прямої закупівлі | 47 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення статусу підписаної угоди з постачальником прямої закупівлі |
| 45 | ... viewer | 48 | ... viewer |
| 46 | ... ${USERS.users['${viewer}'].broker} | 49 | ... ${USERS.users['${viewer}'].broker} |
| 47 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} | 50 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} |
| 48 | - Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | ||
| 49 | - Звірити поле тендера із значенням ${viewer} active contracts[1].status | 51 | + Run As ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} |
| 52 | + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} active contracts[1].status |
| @@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
| 2 | from datetime import timedelta | 2 | from datetime import timedelta |
| 3 | from faker import Factory | 3 | from faker import Factory |
| 4 | from munch import munchify | 4 | from munch import munchify |
| 5 | +from uuid import uuid4 | ||
| 5 | from tempfile import NamedTemporaryFile | 6 | from tempfile import NamedTemporaryFile |
| 6 | from .local_time import get_now | 7 | from .local_time import get_now |
| 7 | from op_faker import OP_Provider | 8 | from op_faker import OP_Provider |
| @@ -46,7 +47,7 @@ def create_fake_doc(): | @@ -46,7 +47,7 @@ def create_fake_doc(): | ||
| 46 | return tf.name | 47 | return tf.name |
| 47 | 48 | ||
| 48 | 49 | ||
| 49 | -def test_tender_data(intervals, periods=("enquiry", "tender")): | 50 | +def test_tender_data(params, periods=("enquiry", "tender")): |
| 50 | now = get_now() | 51 | now = get_now() |
| 51 | value_amount = round(random.uniform(3000, 99999999999.99), 2) # max value equals to budget of Ukraine in hryvnias | 52 | value_amount = round(random.uniform(3000, 99999999999.99), 2) # max value equals to budget of Ukraine in hryvnias |
| 52 | data = { | 53 | data = { |
| @@ -68,11 +69,10 @@ def test_tender_data(intervals, periods=("enquiry", "tender")): | @@ -68,11 +69,10 @@ def test_tender_data(intervals, periods=("enquiry", "tender")): | ||
| 68 | "amount": round(random.uniform(0.005, 0.03) * value_amount, 2), | 69 | "amount": round(random.uniform(0.005, 0.03) * value_amount, 2), |
| 69 | "currency": u"UAH" | 70 | "currency": u"UAH" |
| 70 | }, | 71 | }, |
| 71 | - "items": [] | 72 | + "items": [], |
| 73 | + "features": [] | ||
| 72 | } | 74 | } |
| 73 | data["procuringEntity"]["kind"] = "other" | 75 | data["procuringEntity"]["kind"] = "other" |
| 74 | - new_item = test_item_data() | ||
| 75 | - data["items"].append(new_item) | ||
| 76 | if data.get("mode") == "test": | 76 | if data.get("mode") == "test": |
| 77 | data["title"] = u"[ТЕСТУВАННЯ] {}".format(data["title"]) | 77 | data["title"] = u"[ТЕСТУВАННЯ] {}".format(data["title"]) |
| 78 | data["title_en"] = u"[TESTING] {}".format(data["title_en"]) | 78 | data["title_en"] = u"[TESTING] {}".format(data["title_en"]) |
| @@ -82,21 +82,57 @@ def test_tender_data(intervals, periods=("enquiry", "tender")): | @@ -82,21 +82,57 @@ def test_tender_data(intervals, periods=("enquiry", "tender")): | ||
| 82 | for period_name in periods: | 82 | for period_name in periods: |
| 83 | period_dict[period_name + "Period"] = {} | 83 | period_dict[period_name + "Period"] = {} |
| 84 | for i, j in zip(range(2), ("start", "end")): | 84 | for i, j in zip(range(2), ("start", "end")): |
| 85 | - inc_dt += timedelta(minutes=intervals[period_name][i]) | 85 | + inc_dt += timedelta(minutes=params['intervals'][period_name][i]) |
| 86 | period_dict[period_name + "Period"][j + "Date"] = inc_dt.isoformat() | 86 | period_dict[period_name + "Period"][j + "Date"] = inc_dt.isoformat() |
| 87 | data.update(period_dict) | 87 | data.update(period_dict) |
| 88 | + cpv_group = fake.cpv()[:3] | ||
| 89 | + if params['number_of_lots']: | ||
| 90 | + data['lots'] = [] | ||
| 91 | + for lot_number in range(params['number_of_lots']): | ||
| 92 | + lot_id = uuid4().hex | ||
| 93 | + new_lot = test_lot_data(data['value']['amount']) | ||
| 94 | + data['lots'].append(new_lot) | ||
| 95 | + data['lots'][lot_number]['id'] = lot_id | ||
| 96 | + for i in range(params['number_of_items']): | ||
| 97 | + new_item = test_item_data(cpv_group) | ||
| 98 | + new_item['relatedLot'] = lot_id | ||
| 99 | + data['items'].append(new_item) | ||
| 100 | + value_amount = sum(lot['value']['amount'] for lot in data['lots']) | ||
| 101 | + minimalStep = min(lot['minimalStep']['amount'] for lot in data['lots']) | ||
| 102 | + data['value']['amount'] = value_amount | ||
| 103 | + data['minimalStep']['amount'] = minimalStep | ||
| 104 | + else: | ||
| 105 | + for i in range(params['number_of_items']): | ||
| 106 | + new_item = test_item_data(cpv_group) | ||
| 107 | + data['items'].append(new_item) | ||
| 108 | + if params['tender_meat']: | ||
| 109 | + new_feature = test_feature_data() | ||
| 110 | + new_feature.featureOf = "tenderer" | ||
| 111 | + data['features'].append(new_feature) | ||
| 112 | + if params['lot_meat'] and params['number_of_lots']: | ||
| 113 | + new_feature = test_feature_data() | ||
| 114 | + new_feature['featureOf'] = "lot" | ||
| 115 | + data['lots'][0]['id'] = data['lots'][0].get('id', uuid4().hex) | ||
| 116 | + new_feature['relatedItem'] = data['lots'][0]['id'] | ||
| 117 | + data['features'].append(new_feature) | ||
| 118 | + if params['item_meat'] and params['number_of_items']: | ||
| 119 | + new_feature = test_feature_data() | ||
| 120 | + new_feature['featureOf'] = "item" | ||
| 121 | + data['items'][0]['id'] = data['items'][0].get('id', uuid4().hex) | ||
| 122 | + new_feature['relatedItem'] = data['items'][0]['id'] | ||
| 123 | + data['features'].append(new_feature) | ||
| 88 | return munchify(data) | 124 | return munchify(data) |
| 89 | 125 | ||
| 90 | 126 | ||
| 91 | -def test_tender_data_limited(intervals, procurement_method_type): | ||
| 92 | - data = test_tender_data(intervals) | 127 | +def test_tender_data_limited(params): |
| 128 | + data = test_tender_data(params) | ||
| 93 | del data["submissionMethodDetails"] | 129 | del data["submissionMethodDetails"] |
| 94 | del data["minimalStep"] | 130 | del data["minimalStep"] |
| 95 | del data["enquiryPeriod"] | 131 | del data["enquiryPeriod"] |
| 96 | del data["tenderPeriod"] | 132 | del data["tenderPeriod"] |
| 97 | data["procuringEntity"]["kind"] = "general" | 133 | data["procuringEntity"]["kind"] = "general" |
| 98 | - data.update({"procurementMethodType": procurement_method_type, "procurementMethod": "limited"}) | ||
| 99 | - if procurement_method_type == "negotiation": | 134 | + data.update({"procurementMethodType": params['mode'], "procurementMethod": "limited"}) |
| 135 | + if params['mode'] == "negotiation": | ||
| 100 | cause_variants = ( | 136 | cause_variants = ( |
| 101 | "artContestIP", | 137 | "artContestIP", |
| 102 | "noCompetition", | 138 | "noCompetition", |
| @@ -107,11 +143,11 @@ def test_tender_data_limited(intervals, procurement_method_type): | @@ -107,11 +143,11 @@ def test_tender_data_limited(intervals, procurement_method_type): | ||
| 107 | ) | 143 | ) |
| 108 | cause = fake.random_element(cause_variants) | 144 | cause = fake.random_element(cause_variants) |
| 109 | data.update({"cause": cause}) | 145 | data.update({"cause": cause}) |
| 110 | - if procurement_method_type == "negotiation.quick": | 146 | + if params['mode'] == "negotiation.quick": |
| 111 | cause_variants = ('quick',) | 147 | cause_variants = ('quick',) |
| 112 | cause = fake.random_element(cause_variants) | 148 | cause = fake.random_element(cause_variants) |
| 113 | data.update({"cause": cause}) | 149 | data.update({"cause": cause}) |
| 114 | - if procurement_method_type in ("negotiation", "negotiation.quick"): | 150 | + if params['mode'] in ("negotiation", "negotiation.quick"): |
| 115 | data.update({ | 151 | data.update({ |
| 116 | "procurementMethodDetails": "quick, accelerator=1440", | 152 | "procurementMethodDetails": "quick, accelerator=1440", |
| 117 | "causeDescription": fake.description() | 153 | "causeDescription": fake.description() |
| @@ -119,77 +155,26 @@ def test_tender_data_limited(intervals, procurement_method_type): | @@ -119,77 +155,26 @@ def test_tender_data_limited(intervals, procurement_method_type): | ||
| 119 | return munchify(data) | 155 | return munchify(data) |
| 120 | 156 | ||
| 121 | 157 | ||
| 122 | -def test_tender_data_multiple_items(intervals): | ||
| 123 | - t_data = test_tender_data(intervals) | ||
| 124 | - for _ in range(4): | ||
| 125 | - new_item = test_item_data() | ||
| 126 | - t_data['items'].append(new_item) | ||
| 127 | - return munchify(t_data) | ||
| 128 | - | ||
| 129 | - | ||
| 130 | -def test_tender_data_multiple_lots(intervals): | ||
| 131 | - tender = test_tender_data(intervals) | ||
| 132 | - first_lot_id = "3c8f387879de4c38957402dbdb8b31af" | ||
| 133 | - tender['items'][0]['relatedLot'] = first_lot_id | ||
| 134 | - tender['lots'] = [test_lot_data(tender['value']['amount'])] | ||
| 135 | - tender['lots'][0]['id'] = first_lot_id | ||
| 136 | - max_lot_value_amount = max([lot['value']['amount'] for lot in tender['lots']]) | ||
| 137 | - tender['value']['amount'] = max_lot_value_amount | ||
| 138 | - return munchify(tender) | ||
| 139 | - | ||
| 140 | - | ||
| 141 | -def test_tender_data_meat(intervals): | ||
| 142 | - tender = munchify(test_tender_data(intervals)) | ||
| 143 | - item_id = "edd0032574bf4402877ad5f362df225a" | ||
| 144 | - tender['items'][0].id = item_id | ||
| 145 | - tender.features = [ | ||
| 146 | - { | ||
| 147 | - "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
| 148 | - "featureOf": "tenderer", | ||
| 149 | - "title": field_with_id("f", fake.title()), | ||
| 150 | - "description": fake.description(), | ||
| 151 | - "enum": [ | ||
| 152 | - { | ||
| 153 | - "value": 0.15, | ||
| 154 | - "title": fake.word() | ||
| 155 | - }, | ||
| 156 | - { | ||
| 157 | - "value": 0.1, | ||
| 158 | - "title": fake.word() | ||
| 159 | - }, | ||
| 160 | - { | ||
| 161 | - "value": 0.05, | ||
| 162 | - "title": fake.word() | ||
| 163 | - }, | ||
| 164 | - { | ||
| 165 | - "value": 0, | ||
| 166 | - "title": fake.word() | ||
| 167 | - } | ||
| 168 | - ] | ||
| 169 | - }, | ||
| 170 | - { | ||
| 171 | - "code": "48cfd91612c04125ab406374d7cc8d93", | ||
| 172 | - "featureOf": "item", | ||
| 173 | - "relatedItem": item_id, | ||
| 174 | - "title": field_with_id("f", fake.title()), | ||
| 175 | - "description": fake.description(), | ||
| 176 | - "enum": [ | ||
| 177 | - { | ||
| 178 | - "value": 0.05, | ||
| 179 | - "title": fake.word() | ||
| 180 | - }, | ||
| 181 | - { | ||
| 182 | - "value": 0.01, | ||
| 183 | - "title": fake.word() | ||
| 184 | - }, | ||
| 185 | - { | ||
| 186 | - "value": 0, | ||
| 187 | - "title": fake.word() | ||
| 188 | - } | ||
| 189 | - ] | ||
| 190 | - } | ||
| 191 | - ] | ||
| 192 | - return munchify(tender) | 158 | +def test_feature_data(): |
| 159 | + return munchify({ | ||
| 160 | + "code": uuid4().hex, | ||
| 161 | + "title": field_with_id("f", fake.title()), | ||
| 162 | + "description": fake.description(), | ||
| 163 | + "enum": [ | ||
| 164 | + { | ||
| 165 | + "value": 0.05, | ||
| 166 | + "title": fake.word() | ||
| 167 | + }, | ||
| 168 | + { | ||
| 169 | + "value": 0.01, | ||
| 170 | + "title": fake.word() | ||
| 171 | + }, | ||
| 172 | + { | ||
| 173 | + "value": 0, | ||
| 174 | + "title": fake.word() | ||
| 175 | + } | ||
| 176 | + ] | ||
| 177 | + }) | ||
| 193 | 178 | ||
| 194 | 179 | ||
| 195 | def test_question_data(): | 180 | def test_question_data(): |
| @@ -202,6 +187,11 @@ def test_question_data(): | @@ -202,6 +187,11 @@ def test_question_data(): | ||
| 202 | }) | 187 | }) |
| 203 | 188 | ||
| 204 | 189 | ||
| 190 | +def test_related_question(question, relation, obj_id): | ||
| 191 | + question.data.update({"questionOf": relation, "relatedItem": obj_id}) | ||
| 192 | + return munchify(question) | ||
| 193 | + | ||
| 194 | + | ||
| 205 | def test_question_answer_data(): | 195 | def test_question_answer_data(): |
| 206 | return munchify({ | 196 | return munchify({ |
| 207 | "data": { | 197 | "data": { |
| @@ -263,7 +253,7 @@ def test_complaint_reply_data(): | @@ -263,7 +253,7 @@ def test_complaint_reply_data(): | ||
| 263 | }) | 253 | }) |
| 264 | 254 | ||
| 265 | 255 | ||
| 266 | -def test_bid_data(mode, max_value_amount): | 256 | +def test_bid_data(): |
| 267 | bid = munchify({ | 257 | bid = munchify({ |
| 268 | "data": { | 258 | "data": { |
| 269 | "tenderers": [ | 259 | "tenderers": [ |
| @@ -273,35 +263,9 @@ def test_bid_data(mode, max_value_amount): | @@ -273,35 +263,9 @@ def test_bid_data(mode, max_value_amount): | ||
| 273 | }) | 263 | }) |
| 274 | bid.data.tenderers[0].address.countryName_en = translate_country_en(bid.data.tenderers[0].address.countryName) | 264 | bid.data.tenderers[0].address.countryName_en = translate_country_en(bid.data.tenderers[0].address.countryName) |
| 275 | bid.data.tenderers[0].address.countryName_ru = translate_country_ru(bid.data.tenderers[0].address.countryName) | 265 | bid.data.tenderers[0].address.countryName_ru = translate_country_ru(bid.data.tenderers[0].address.countryName) |
| 276 | - if 'open' in mode: | ||
| 277 | - bid.data['selfEligible'] = True | ||
| 278 | - bid.data['selfQualified'] = True | ||
| 279 | - if mode == 'multiLot': | ||
| 280 | - bid.data.lotValues = list() | ||
| 281 | - for _ in range(2): | ||
| 282 | - bid.data.lotValues.append(test_bid_value(max_value_amount)) | ||
| 283 | - else: | ||
| 284 | - bid.data.update(test_bid_value(max_value_amount)) | ||
| 285 | - if mode == 'meat': | ||
| 286 | - bid.data.update(test_bid_params()) | ||
| 287 | return bid | 266 | return bid |
| 288 | 267 | ||
| 289 | 268 | ||
| 290 | -def test_bid_params(): | ||
| 291 | - return munchify({ | ||
| 292 | - "parameters": [ | ||
| 293 | - { | ||
| 294 | - "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
| 295 | - "value": fake.random_element(elements=(0.15, 0.1, 0.05, 0)) | ||
| 296 | - }, | ||
| 297 | - { | ||
| 298 | - "code": "48cfd91612c04125ab406374d7cc8d93", | ||
| 299 | - "value": fake.random_element(elements=(0.05, 0.01, 0)) | ||
| 300 | - } | ||
| 301 | - ] | ||
| 302 | - }) | ||
| 303 | - | ||
| 304 | - | ||
| 305 | def test_bid_value(max_value_amount): | 269 | def test_bid_value(max_value_amount): |
| 306 | return munchify({ | 270 | return munchify({ |
| 307 | "value": { | 271 | "value": { |
| @@ -354,23 +318,6 @@ def test_invalid_features_data(): | @@ -354,23 +318,6 @@ def test_invalid_features_data(): | ||
| 354 | "title": fake.word() | 318 | "title": fake.word() |
| 355 | } | 319 | } |
| 356 | ] | 320 | ] |
| 357 | - }, | ||
| 358 | - { | ||
| 359 | - "code": "48cfd91612c04125ab406374d7cc8d93", | ||
| 360 | - "featureOf": "item", | ||
| 361 | - "relatedItem": "edd0032574bf4402877ad5f362df225a", | ||
| 362 | - "title": fake.title(), | ||
| 363 | - "description": fake.description(), | ||
| 364 | - "enum": [ | ||
| 365 | - { | ||
| 366 | - "value": 0.35, | ||
| 367 | - "title": fake.word() | ||
| 368 | - }, | ||
| 369 | - { | ||
| 370 | - "value": 0, | ||
| 371 | - "title": fake.word() | ||
| 372 | - } | ||
| 373 | - ] | ||
| 374 | } | 321 | } |
| 375 | ] | 322 | ] |
| 376 | 323 | ||
| @@ -400,49 +347,45 @@ def test_lot_document_data(document, lot_id): | @@ -400,49 +347,45 @@ def test_lot_document_data(document, lot_id): | ||
| 400 | return munchify(document) | 347 | return munchify(document) |
| 401 | 348 | ||
| 402 | 349 | ||
| 403 | -def test_lot_question_data(question, lot_id): | ||
| 404 | - question.data.update({"questionOf": "lot", "relatedItem": lot_id}) | ||
| 405 | - return munchify(question) | ||
| 406 | - | ||
| 407 | - | ||
| 408 | def test_lot_complaint_data(complaint, lot_id): | 350 | def test_lot_complaint_data(complaint, lot_id): |
| 409 | complaint.data.update({"complaintOf": "lot", "relatedItem": lot_id}) | 351 | complaint.data.update({"complaintOf": "lot", "relatedItem": lot_id}) |
| 410 | return munchify(complaint) | 352 | return munchify(complaint) |
| 411 | 353 | ||
| 412 | 354 | ||
| 413 | -def test_tender_data_openua(intervals): | ||
| 414 | - accelerator = intervals['accelerator'] | 355 | +def test_tender_data_openua(params): |
| 356 | + accelerator = params['intervals']['accelerator'] | ||
| 415 | # Since `accelerator` field is not really a list containing timings | 357 | # Since `accelerator` field is not really a list containing timings |
| 416 | # for a period called `acceleratorPeriod`, let's remove it :) | 358 | # for a period called `acceleratorPeriod`, let's remove it :) |
| 417 | - del intervals['accelerator'] | 359 | + del params['intervals']['accelerator'] |
| 418 | # We should not provide any values for `enquiryPeriod` when creating | 360 | # We should not provide any values for `enquiryPeriod` when creating |
| 419 | # an openUA or openEU procedure. That field should not be present at all. | 361 | # an openUA or openEU procedure. That field should not be present at all. |
| 420 | # Therefore, we pass a nondefault list of periods to `test_tender_data()`. | 362 | # Therefore, we pass a nondefault list of periods to `test_tender_data()`. |
| 421 | - t_data = test_tender_data(intervals, periods=('tender',)) | ||
| 422 | - t_data['procurementMethodType'] = 'aboveThresholdUA' | ||
| 423 | - t_data['procurementMethodDetails'] = 'quick, ' \ | 363 | + data = test_tender_data(params, ('tender',)) |
| 364 | + data['procurementMethodType'] = 'aboveThresholdUA' | ||
| 365 | + data['procurementMethodDetails'] = 'quick, ' \ | ||
| 424 | 'accelerator={}'.format(accelerator) | 366 | 'accelerator={}'.format(accelerator) |
| 425 | - t_data['procuringEntity']['kind'] = 'general' | ||
| 426 | - return t_data | 367 | + data['procuringEntity']['kind'] = 'general' |
| 368 | + return data | ||
| 427 | 369 | ||
| 428 | 370 | ||
| 429 | -def test_tender_data_openeu(intervals): | ||
| 430 | - accelerator = intervals['accelerator'] | 371 | +def test_tender_data_openeu(params): |
| 372 | + accelerator = params['intervals']['accelerator'] | ||
| 431 | # Since `accelerator` field is not really a list containing timings | 373 | # Since `accelerator` field is not really a list containing timings |
| 432 | # for a period called `acceleratorPeriod`, let's remove it :) | 374 | # for a period called `acceleratorPeriod`, let's remove it :) |
| 433 | - del intervals['accelerator'] | 375 | + del params['intervals']['accelerator'] |
| 434 | # We should not provide any values for `enquiryPeriod` when creating | 376 | # We should not provide any values for `enquiryPeriod` when creating |
| 435 | # an openUA or openEU procedure. That field should not be present at all. | 377 | # an openUA or openEU procedure. That field should not be present at all. |
| 436 | # Therefore, we pass a nondefault list of periods to `test_tender_data()`. | 378 | # Therefore, we pass a nondefault list of periods to `test_tender_data()`. |
| 437 | - t_data = test_tender_data(intervals, periods=('tender',)) | ||
| 438 | - t_data['procurementMethodType'] = 'aboveThresholdEU' | ||
| 439 | - t_data['procurementMethodDetails'] = 'quick, ' \ | 379 | + data = test_tender_data(params, ('tender',)) |
| 380 | + data['procurementMethodType'] = 'aboveThresholdEU' | ||
| 381 | + data['procurementMethodDetails'] = 'quick, ' \ | ||
| 440 | 'accelerator={}'.format(accelerator) | 382 | 'accelerator={}'.format(accelerator) |
| 441 | - t_data['title_en'] = "[TESTING]" | ||
| 442 | - for item_number, item in enumerate(t_data['items']): | 383 | + data['title_en'] = "[TESTING]" |
| 384 | + for item_number, item in enumerate(data['items']): | ||
| 443 | item['description_en'] = "Test item #{}".format(item_number) | 385 | item['description_en'] = "Test item #{}".format(item_number) |
| 444 | - t_data['procuringEntity']['contactPoint']['name_en'] = fake_en.name() | ||
| 445 | - t_data['procuringEntity']['contactPoint']['availableLanguage'] = "en" | ||
| 446 | - t_data['procuringEntity']['identifier']['legalName_en'] = "Institution \"Vinnytsia City Council primary and secondary general school № 10\"" | ||
| 447 | - t_data['procuringEntity']['kind'] = 'general' | ||
| 448 | - return t_data | 386 | + data['procuringEntity']['name_en'] = fake_en.name() |
| 387 | + data['procuringEntity']['contactPoint']['name_en'] = fake_en.name() | ||
| 388 | + data['procuringEntity']['contactPoint']['availableLanguage'] = "en" | ||
| 389 | + data['procuringEntity']['identifier']['legalName_en'] = "Institution \"Vinnytsia City Council primary and secondary general school № 10\"" | ||
| 390 | + data['procuringEntity']['kind'] = 'general' | ||
| 391 | + return data |
| @@ -169,8 +169,11 @@ Get Broker Property By Username | @@ -169,8 +169,11 @@ Get Broker Property By Username | ||
| 169 | ... tender_owner=${USERS.users['${tender_owner}'].broker} | 169 | ... tender_owner=${USERS.users['${tender_owner}'].broker} |
| 170 | ... access_token=${USERS.users['${tender_owner}'].access_token} | 170 | ... access_token=${USERS.users['${tender_owner}'].access_token} |
| 171 | ... tender_id=${USERS.users['${tender_owner}'].tender_data.data.id} | 171 | ... tender_id=${USERS.users['${tender_owner}'].tender_data.data.id} |
| 172 | + Run Keyword And Ignore Error Set To Dictionary ${artifact} tender_owner_access_token=${USERS.users['${tender_owner}'].access_token} | ||
| 173 | + Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_access_token=${USERS.users['${provider}'].access_token} | ||
| 174 | + Run Keyword And Ignore Error Set To Dictionary ${artifact} provider1_access_token=${USERS.users['${provider1}'].access_token} | ||
| 172 | ${status} ${lots_ids}= Run Keyword And Ignore Error Отримати ідентифікатори об’єктів ${viewer} lots | 175 | ${status} ${lots_ids}= Run Keyword And Ignore Error Отримати ідентифікатори об’єктів ${viewer} lots |
| 173 | - Run Keyword If ${status}'=='PASS' | 176 | + Run Keyword If '${status}'=='PASS' |
| 174 | ... Set To Dictionary ${artifact} lots=${lots_ids} | 177 | ... Set To Dictionary ${artifact} lots=${lots_ids} |
| 175 | Log ${artifact} | 178 | Log ${artifact} |
| 176 | log_object_data ${artifact} artifact update=${True} | 179 | log_object_data ${artifact} artifact update=${True} |
| @@ -184,64 +187,71 @@ Get Broker Property By Username | @@ -184,64 +187,71 @@ Get Broker Property By Username | ||
| 184 | ${lot_index}= Get Variable Value ${lot_index} 0 | 187 | ${lot_index}= Get Variable Value ${lot_index} 0 |
| 185 | Run Keyword And Ignore Error Set To Dictionary ${TENDER} LOT_ID=${ARTIFACT.lots[${lot_index}]} | 188 | Run Keyword And Ignore Error Set To Dictionary ${TENDER} LOT_ID=${ARTIFACT.lots[${lot_index}]} |
| 186 | ${mode}= Get Variable Value ${mode} ${ARTIFACT.mode} | 189 | ${mode}= Get Variable Value ${mode} ${ARTIFACT.mode} |
| 190 | + Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${tender_owner}']} access_token=${ARTIFACT.tender_owner_access_token} | ||
| 191 | + Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${provider}']} access_token=${ARTIFACT.provider_access_token} | ||
| 192 | + Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${provider1}']} access_token=${ARTIFACT.provider1_access_token} | ||
| 187 | Set Suite Variable ${mode} | 193 | Set Suite Variable ${mode} |
| 188 | Set Suite Variable ${lot_index} | 194 | Set Suite Variable ${lot_index} |
| 189 | Set Suite Variable ${TENDER} | 195 | Set Suite Variable ${TENDER} |
| 190 | log_object_data ${ARTIFACT} artifact | 196 | log_object_data ${ARTIFACT} artifact |
| 191 | 197 | ||
| 192 | 198 | ||
| 193 | -Підготовка даних для створення тендера | 199 | +Підготувати дані для створення тендера |
| 200 | + [Arguments] ${tender_parameters} | ||
| 194 | ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers} | 201 | ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers} |
| 195 | - ${tender_data}= prepare_test_tender_data ${period_intervals} ${mode} | 202 | + ${tender_data}= prepare_test_tender_data ${period_intervals} ${tender_parameters} |
| 196 | ${TENDER}= Create Dictionary | 203 | ${TENDER}= Create Dictionary |
| 197 | Set Global Variable ${TENDER} | 204 | Set Global Variable ${TENDER} |
| 198 | - Log ${TENDER} | ||
| 199 | Log ${tender_data} | 205 | Log ${tender_data} |
| 200 | [return] ${tender_data} | 206 | [return] ${tender_data} |
| 201 | 207 | ||
| 202 | 208 | ||
| 203 | -Підготовка даних для створення предмету закупівлі | ||
| 204 | - ${item}= test_item_data | 209 | +Підготувати дані для створення предмету закупівлі |
| 210 | + [Arguments] ${cpv} | ||
| 211 | + ${item}= test_item_data ${cpv[0:3]} | ||
| 205 | [Return] ${item} | 212 | [Return] ${item} |
| 206 | 213 | ||
| 207 | 214 | ||
| 208 | -Підготовка даних для створення лоту | 215 | +Підготувати дані для створення лоту |
| 209 | [Arguments] ${max_lot_value_amount} | 216 | [Arguments] ${max_lot_value_amount} |
| 210 | ${lot}= test_lot_data ${max_lot_value_amount} | 217 | ${lot}= test_lot_data ${max_lot_value_amount} |
| 211 | ${reply}= Create Dictionary data=${lot} | 218 | ${reply}= Create Dictionary data=${lot} |
| 212 | [Return] ${reply} | 219 | [Return] ${reply} |
| 213 | 220 | ||
| 221 | +Підготувати дані для створення нецінового показника | ||
| 222 | + ${reply}= test_feature_data | ||
| 223 | + [Return] ${reply} | ||
| 214 | 224 | ||
| 215 | -Підготовка даних для подання вимоги | 225 | +Підготувати дані для подання вимоги |
| 216 | ${claim}= test_claim_data | 226 | ${claim}= test_claim_data |
| 217 | [Return] ${claim} | 227 | [Return] ${claim} |
| 218 | 228 | ||
| 219 | 229 | ||
| 220 | -Підготовка даних для подання скарги | 230 | +Підготувати дані для подання скарги |
| 221 | [Arguments] ${lot}=${False} | 231 | [Arguments] ${lot}=${False} |
| 222 | ${complaint}= test_complaint_data ${lot} | 232 | ${complaint}= test_complaint_data ${lot} |
| 223 | [Return] ${complaint} | 233 | [Return] ${complaint} |
| 224 | 234 | ||
| 225 | 235 | ||
| 226 | -Підготовка даних для відповіді на скаргу | 236 | +Підготувати дані для відповіді на скаргу |
| 227 | ${reply}= test_complaint_reply_data | 237 | ${reply}= test_complaint_reply_data |
| 228 | [Return] ${reply} | 238 | [Return] ${reply} |
| 229 | 239 | ||
| 230 | 240 | ||
| 231 | -Підготовка даних для запитання | 241 | +Підготувати дані для запитання |
| 232 | ${question}= test_question_data | 242 | ${question}= test_question_data |
| 233 | [Return] ${question} | 243 | [Return] ${question} |
| 234 | 244 | ||
| 235 | 245 | ||
| 236 | -Підготовка даних для відповіді на запитання | 246 | +Підготувати дані для відповіді на запитання |
| 237 | ${answer}= test_question_answer_data | 247 | ${answer}= test_question_answer_data |
| 238 | [Return] ${answer} | 248 | [Return] ${answer} |
| 239 | 249 | ||
| 240 | 250 | ||
| 241 | Підготувати дані для подання пропозиції | 251 | Підготувати дані для подання пропозиції |
| 242 | - [Arguments] ${max_value_amount} | ||
| 243 | - ${bid_data}= test_bid_data ${mode} ${max_value_amount} | ||
| 244 | - [Return] ${bid_data} | 252 | + [Arguments] ${username} |
| 253 | + ${bid}= generate_test_bid_data ${USERS.users['${username}'].tender_data.data} | ||
| 254 | + [Return] ${bid} | ||
| 245 | 255 | ||
| 246 | 256 | ||
| 247 | Підготувати дані про постачальника | 257 | Підготувати дані про постачальника |
| @@ -266,7 +276,7 @@ Get Broker Property By Username | @@ -266,7 +276,7 @@ Get Broker Property By Username | ||
| 266 | [Arguments] ${username} ${tender_data} | 276 | [Arguments] ${username} ${tender_data} |
| 267 | # munchify is used to make deep copy of ${tender_data} | 277 | # munchify is used to make deep copy of ${tender_data} |
| 268 | ${tender_data_copy}= munchify ${tender_data} | 278 | ${tender_data_copy}= munchify ${tender_data} |
| 269 | - ${status} ${adapted_data}= Run Keyword And Ignore Error Викликати для учасника ${username} Підготувати дані для оголошення тендера ${tender_data_copy} | 279 | + ${status} ${adapted_data}= Run Keyword And Ignore Error Run As ${username} Підготувати дані для оголошення тендера ${tender_data_copy} |
| 270 | ${adapted_data}= Set variable if '${status}' == 'FAIL' ${tender_data_copy} ${adapted_data} | 280 | ${adapted_data}= Set variable if '${status}' == 'FAIL' ${tender_data_copy} ${adapted_data} |
| 271 | # munchify is used to make nice log output | 281 | # munchify is used to make nice log output |
| 272 | ${adapted_data}= munchify ${adapted_data} | 282 | ${adapted_data}= munchify ${adapted_data} |
| @@ -356,19 +366,19 @@ Get Broker Property By Username | @@ -356,19 +366,19 @@ Get Broker Property By Username | ||
| 356 | ... ${USERS.users['${username}']['LAST_REFRESH_DATE']} | 366 | ... ${USERS.users['${username}']['LAST_REFRESH_DATE']} |
| 357 | ${LAST_REFRESH_DATE}= Get Current TZdate | 367 | ${LAST_REFRESH_DATE}= Get Current TZdate |
| 358 | Run Keyword If ${time_diff} > 0 Run keywords | 368 | Run Keyword If ${time_diff} > 0 Run keywords |
| 359 | - ... Викликати для учасника ${username} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | 369 | + ... Run As ${username} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} |
| 360 | ... AND | 370 | ... AND |
| 361 | ... Set To Dictionary ${USERS.users['${username}']} LAST_REFRESH_DATE=${LAST_REFRESH_DATE} | 371 | ... Set To Dictionary ${USERS.users['${username}']} LAST_REFRESH_DATE=${LAST_REFRESH_DATE} |
| 362 | 372 | ||
| 363 | 373 | ||
| 364 | Звірити поле тендера | 374 | Звірити поле тендера |
| 365 | [Arguments] ${username} ${tender_uaid} ${tender_data} ${field} | 375 | [Arguments] ${username} ${tender_uaid} ${tender_data} ${field} |
| 366 | - ${left}= Get_From_Object ${tender_data.data} ${field} | 376 | + ${left}= get_from_object ${tender_data.data} ${field} |
| 367 | Звірити поле тендера із значенням ${username} ${tender_uaid} ${left} ${field} | 377 | Звірити поле тендера із значенням ${username} ${tender_uaid} ${left} ${field} |
| 368 | 378 | ||
| 369 | 379 | ||
| 370 | Звірити поле тендера із значенням | 380 | Звірити поле тендера із значенням |
| 371 | - [Arguments] ${username} ${tender_uaid} ${left} ${field} ${object_id}=${None} | 381 | + [Arguments] ${username} ${tender_uaid} ${left} ${field} ${object_id}=${Empty} |
| 372 | ${right}= Отримати дані із тендера ${username} ${tender_uaid} ${field} ${object_id} | 382 | ${right}= Отримати дані із тендера ${username} ${tender_uaid} ${field} ${object_id} |
| 373 | Порівняти об'єкти ${left} ${right} | 383 | Порівняти об'єкти ${left} ${right} |
| 374 | 384 | ||
| @@ -384,12 +394,12 @@ Get Broker Property By Username | @@ -384,12 +394,12 @@ Get Broker Property By Username | ||
| 384 | 394 | ||
| 385 | Звірити дату тендера | 395 | Звірити дату тендера |
| 386 | [Arguments] ${username} ${tender_uaid} ${tender_data} ${field} ${accuracy}=60 ${absolute_delta}=${False} | 396 | [Arguments] ${username} ${tender_uaid} ${tender_data} ${field} ${accuracy}=60 ${absolute_delta}=${False} |
| 387 | - ${left}= Get_From_Object ${tender_data.data} ${field} | 397 | + ${left}= get_from_object ${tender_data.data} ${field} |
| 388 | Звірити дату тендера із значенням ${username} ${tender_uaid} ${left} ${field} accuracy=${accuracy} absolute_delta=${absolute_delta} | 398 | Звірити дату тендера із значенням ${username} ${tender_uaid} ${left} ${field} accuracy=${accuracy} absolute_delta=${absolute_delta} |
| 389 | 399 | ||
| 390 | 400 | ||
| 391 | Звірити дату тендера із значенням | 401 | Звірити дату тендера із значенням |
| 392 | - [Arguments] ${username} ${tender_uaid} ${left} ${field} ${object_id}=${None} ${accuracy}=60 ${absolute_delta}=${False} | 402 | + [Arguments] ${username} ${tender_uaid} ${left} ${field} ${object_id}=${Empty} ${accuracy}=60 ${absolute_delta}=${False} |
| 393 | ${right}= Отримати дані із тендера ${username} ${tender_uaid} ${field} ${object_id} | 403 | ${right}= Отримати дані із тендера ${username} ${tender_uaid} ${field} ${object_id} |
| 394 | Порівняти дати ${left} ${right} accuracy=${accuracy} absolute_delta=${absolute_delta} | 404 | Порівняти дати ${left} ${right} accuracy=${accuracy} absolute_delta=${absolute_delta} |
| 395 | 405 | ||
| @@ -412,9 +422,9 @@ Get Broker Property By Username | @@ -412,9 +422,9 @@ Get Broker Property By Username | ||
| 412 | 422 | ||
| 413 | 423 | ||
| 414 | Звірити координати доставки тендера | 424 | Звірити координати доставки тендера |
| 415 | - [Arguments] ${username} ${tender_uaid} ${tender_data} ${field} ${object_id}=${None} | ||
| 416 | - ${left_lat}= Get_From_Object ${tender_data.data} ${field}.deliveryLocation.latitude | ||
| 417 | - ${left_lon}= Get_From_Object ${tender_data.data} ${field}.deliveryLocation.longitude | 425 | + [Arguments] ${username} ${tender_uaid} ${tender_data} ${field} ${object_id}=${Empty} |
| 426 | + ${left_lat}= get_from_object ${tender_data.data} ${field}.deliveryLocation.latitude | ||
| 427 | + ${left_lon}= get_from_object ${tender_data.data} ${field}.deliveryLocation.longitude | ||
| 418 | ${right_lat}= Отримати дані із тендера ${username} ${tender_uaid} ${field}.deliveryLocation.latitude ${object_id} | 428 | ${right_lat}= Отримати дані із тендера ${username} ${tender_uaid} ${field}.deliveryLocation.latitude ${object_id} |
| 419 | ${right_lon}= Отримати дані із тендера ${username} ${tender_uaid} ${field}.deliveryLocation.longitude ${object_id} | 429 | ${right_lon}= Отримати дані із тендера ${username} ${tender_uaid} ${field}.deliveryLocation.longitude ${object_id} |
| 420 | Порівняти координати ${left_lat} ${left_lon} ${right_lat} ${right_lon} | 430 | Порівняти координати ${left_lat} ${left_lon} ${right_lat} ${right_lon} |
| @@ -439,53 +449,51 @@ Get Broker Property By Username | @@ -439,53 +449,51 @@ Get Broker Property By Username | ||
| 439 | 449 | ||
| 440 | Звірити поля предметів закупівлі багатопредметного тендера | 450 | Звірити поля предметів закупівлі багатопредметного тендера |
| 441 | [Arguments] ${username} ${tender_data} ${field} | 451 | [Arguments] ${username} ${tender_data} ${field} |
| 442 | - @{items}= Get_From_Object ${tender_data.data} items | 452 | + @{items}= get_from_object ${tender_data.data} items |
| 443 | ${len_of_items}= Get Length ${items} | 453 | ${len_of_items}= Get Length ${items} |
| 444 | :FOR ${index} IN RANGE ${len_of_items} | 454 | :FOR ${index} IN RANGE ${len_of_items} |
| 445 | - \ Log ${index} | ||
| 446 | \ Звірити поле тендера ${viewer} ${tender_data} items[${index}].${field} | 455 | \ Звірити поле тендера ${viewer} ${tender_data} items[${index}].${field} |
| 447 | 456 | ||
| 448 | 457 | ||
| 449 | Звірити дату предметів закупівлі багатопредметного тендера | 458 | Звірити дату предметів закупівлі багатопредметного тендера |
| 450 | [Arguments] ${username} ${tender_data} ${field} ${accuracy}=60 ${absolute_delta}=${False} | 459 | [Arguments] ${username} ${tender_data} ${field} ${accuracy}=60 ${absolute_delta}=${False} |
| 451 | - @{items}= Get_From_Object ${tender_data.data} items | 460 | + @{items}= get_from_object ${tender_data.data} items |
| 452 | :FOR ${index} ${_} IN ENUMERATE @{items} | 461 | :FOR ${index} ${_} IN ENUMERATE @{items} |
| 453 | - \ Log ${index} | ||
| 454 | - \ Звірити дату тендера ${viewer} ${tender_data} items[${index}].${field} accuracy=${accuracy} absolute_delta=${absolute_delta} | 462 | + \ Звірити дату тендера ${viewer} ${TENDER['TENDER_UAID']} ${tender_data} items[${index}].${field} accuracy=${accuracy} absolute_delta=${absolute_delta} |
| 455 | 463 | ||
| 456 | 464 | ||
| 457 | Звірити координати доставки предметів закупівлі багатопредметного тендера | 465 | Звірити координати доставки предметів закупівлі багатопредметного тендера |
| 458 | [Arguments] ${username} ${tender_data} | 466 | [Arguments] ${username} ${tender_data} |
| 459 | - @{items}= Get_From_Object ${tender_data.data} items | 467 | + @{items}= get_from_object ${tender_data.data} items |
| 460 | :FOR ${index} ${_} IN ENUMERATE @{items} | 468 | :FOR ${index} ${_} IN ENUMERATE @{items} |
| 461 | - \ Log ${index} | ||
| 462 | \ Звірити координати тендера ${viewer} ${tender_data} items[${index}] | 469 | \ Звірити координати тендера ${viewer} ${tender_data} items[${index}] |
| 463 | 470 | ||
| 464 | 471 | ||
| 465 | Отримати дані із тендера | 472 | Отримати дані із тендера |
| 466 | - [Arguments] ${username} ${tender_uaid} ${field_name} ${object_id}=${None} | ||
| 467 | - Log ${username} | ||
| 468 | - Log ${field_name} | ||
| 469 | - ${field}= Run Keyword If '${object_id}'=='${None}' Set Variable ${field_name} | ||
| 470 | - ... ELSE Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} | 473 | + [Arguments] ${username} ${tender_uaid} ${field_name} ${object_id}=${Empty} |
| 474 | + ${field}= Run Keyword If '${object_id}' Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} | ||
| 475 | + ... ELSE Set Variable ${field_name} | ||
| 471 | ${status} ${field_value}= Run keyword and ignore error | 476 | ${status} ${field_value}= Run keyword and ignore error |
| 472 | - ... Get from object | 477 | + ... get_from_object |
| 473 | ... ${USERS.users['${username}'].tender_data.data} | 478 | ... ${USERS.users['${username}'].tender_data.data} |
| 474 | ... ${field} | 479 | ... ${field} |
| 475 | # If field in cache, return its value | 480 | # If field in cache, return its value |
| 476 | Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value} | 481 | Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value} |
| 477 | # Else call broker to find field | 482 | # Else call broker to find field |
| 478 | - ${field_value}= Run Keyword IF '${object_id}'=='${None}' Run As ${username} Отримати інформацію із тендера ${tender_uaid} ${field} | ||
| 479 | - ... ELSE Отримати дані із об’єкта тендера ${username} ${tender_uaid} ${object_id} ${field_name} | 483 | + ${field_value}= Run Keyword IF '${object_id}' Отримати дані із об’єкта тендера ${username} ${tender_uaid} ${object_id} ${field_name} |
| 484 | + ... ELSE Run As ${username} Отримати інформацію із тендера ${tender_uaid} ${field} | ||
| 480 | # And caching its value before return | 485 | # And caching its value before return |
| 481 | Set_To_Object ${USERS.users['${username}'].tender_data.data} ${field} ${field_value} | 486 | Set_To_Object ${USERS.users['${username}'].tender_data.data} ${field} ${field_value} |
| 487 | + ${data}= munch_dict arg=${USERS.users['${username}'].tender_data.data} | ||
| 488 | + Set To Dictionary ${USERS.users['${username}'].tender_data} data=${data} | ||
| 489 | + Log ${USERS.users['${username}'].tender_data.data} | ||
| 482 | [return] ${field_value} | 490 | [return] ${field_value} |
| 483 | 491 | ||
| 484 | 492 | ||
| 485 | Отримати шлях до поля об’єкта | 493 | Отримати шлях до поля об’єкта |
| 486 | [Arguments] ${username} ${field_name} ${object_id} | 494 | [Arguments] ${username} ${field_name} ${object_id} |
| 487 | ${object_type}= get_object_type_by_id ${object_id} | 495 | ${object_type}= get_object_type_by_id ${object_id} |
| 488 | - ${objects}= Get Variable Value ${USERS.users['${username}'].tender_data.data['${object_type}']} ${empty} | 496 | + ${objects}= Get Variable Value ${USERS.users['${username}'].tender_data.data['${object_type}']} ${None} |
| 489 | ${object_index}= get_object_index_by_id ${objects} ${object_id} | 497 | ${object_index}= get_object_index_by_id ${objects} ${object_id} |
| 490 | [return] ${object_type}[${object_index}].${field_name} | 498 | [return] ${object_type}[${object_index}].${field_name} |
| 491 | 499 | ||
| @@ -497,6 +505,10 @@ Get Broker Property By Username | @@ -497,6 +505,10 @@ Get Broker Property By Username | ||
| 497 | ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із запитання ${tender_uaid} ${object_id} ${field_name} | 505 | ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із запитання ${tender_uaid} ${object_id} ${field_name} |
| 498 | ... ELSE IF '${object_type}'=='lots' | 506 | ... ELSE IF '${object_type}'=='lots' |
| 499 | ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із лоту ${tender_uaid} ${object_id} ${field_name} | 507 | ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із лоту ${tender_uaid} ${object_id} ${field_name} |
| 508 | + ... ELSE IF '${object_type}'=='items' | ||
| 509 | + ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із предмету ${tender_uaid} ${object_id} ${field_name} | ||
| 510 | + ... ELSE IF '${object_type}'=='features' | ||
| 511 | + ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із нецінового показника ${tender_uaid} ${object_id} ${field_name} | ||
| 500 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} | 512 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} |
| 501 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} | 513 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} |
| 502 | ... ELSE Run As ${username} Отримати інформацію із тендера ${tender_uaid} ${field} | 514 | ... ELSE Run As ${username} Отримати інформацію із тендера ${tender_uaid} ${field} |
| @@ -567,12 +579,7 @@ Run As | @@ -567,12 +579,7 @@ Run As | ||
| 567 | Log ${command} | 579 | Log ${command} |
| 568 | Log Many @{arguments} | 580 | Log Many @{arguments} |
| 569 | ${keywords_file}= Get Broker Property By Username ${username} keywords_file | 581 | ${keywords_file}= Get Broker Property By Username ${username} keywords_file |
| 570 | - ${status} ${value}= Run keyword and ignore keyword definitions ${keywords_file}.${command} ${username} @{arguments} | ||
| 571 | - ${unexpected_args}= Get Regexp Matches '${value}' expected [0-9] arguments, got [0-9] | ||
| 572 | - ${status} ${value}= Run Keyword If "${unexpected_args}"=="[]" Set Variable ${status} ${value} | ||
| 573 | - ... ELSE Run keyword and ignore keyword definitions ${keywords_file}.${command} ${username} @{arguments[:-1]} | ||
| 574 | - Run Keyword If '${status}' == 'FAIL' Fail ${value} | ||
| 575 | - [return] ${value} | 582 | + Run Keyword And Return ${keywords_file}.${command} ${username} @{arguments} |
| 576 | 583 | ||
| 577 | 584 | ||
| 578 | Require Failure | 585 | Require Failure |
| @@ -584,7 +591,7 @@ Require Failure | @@ -584,7 +591,7 @@ Require Failure | ||
| 584 | ... if ``command`` with ``arguments`` fails and vice versa. | 591 | ... if ``command`` with ``arguments`` fails and vice versa. |
| 585 | Log ${username} | 592 | Log ${username} |
| 586 | Log ${command} | 593 | Log ${command} |
| 587 | - Log Many ${command} @{arguments} | 594 | + Log Many @{arguments} |
| 588 | ${keywords_file}= Get Broker Property By Username ${username} keywords_file | 595 | ${keywords_file}= Get Broker Property By Username ${username} keywords_file |
| 589 | ${status} ${value}= Run keyword and ignore keyword definitions ${keywords_file}.${command} ${username} @{arguments} | 596 | ${status} ${value}= Run keyword and ignore keyword definitions ${keywords_file}.${command} ${username} @{arguments} |
| 590 | Run keyword if '${status}' == 'PASS' Fail Користувач ${username} зміг виконати "${command}" | 597 | Run keyword if '${status}' == 'PASS' Fail Користувач ${username} зміг виконати "${command}" |
| @@ -599,7 +606,6 @@ Require Failure | @@ -599,7 +606,6 @@ Require Failure | ||
| 599 | 606 | ||
| 600 | Дочекатись дати початку періоду уточнень | 607 | Дочекатись дати початку періоду уточнень |
| 601 | [Arguments] ${username} ${tender_uaid} | 608 | [Arguments] ${username} ${tender_uaid} |
| 602 | - Log ${username} | ||
| 603 | # XXX: HACK: Same as below | 609 | # XXX: HACK: Same as below |
| 604 | ${status} ${date}= Run Keyword And Ignore Error | 610 | ${status} ${date}= Run Keyword And Ignore Error |
| 605 | ... Set Variable | 611 | ... Set Variable |
| @@ -611,13 +617,14 @@ Require Failure | @@ -611,13 +617,14 @@ Require Failure | ||
| 611 | Дочекатись дати ${date} | 617 | Дочекатись дати ${date} |
| 612 | Оновити LAST_MODIFICATION_DATE | 618 | Оновити LAST_MODIFICATION_DATE |
| 613 | Дочекатись синхронізації з майданчиком ${username} | 619 | Дочекатись синхронізації з майданчиком ${username} |
| 620 | + ${next_status}= Set variable if 'open' in '${mode}' active.tendering active.enquiries | ||
| 614 | Wait until keyword succeeds | 621 | Wait until keyword succeeds |
| 615 | ... 5 min 15 sec | 622 | ... 5 min 15 sec |
| 616 | ... 15 sec | 623 | ... 15 sec |
| 617 | ... Звірити статус тендера | 624 | ... Звірити статус тендера |
| 618 | ... ${username} | 625 | ... ${username} |
| 619 | ... ${tender_uaid} | 626 | ... ${tender_uaid} |
| 620 | - ... active.enquiries | 627 | + ... ${next_status} |
| 621 | 628 | ||
| 622 | 629 | ||
| 623 | Звірити статус тендера | 630 | Звірити статус тендера |
| @@ -681,33 +688,8 @@ Require Failure | @@ -681,33 +688,8 @@ Require Failure | ||
| 681 | Run keyword if '${next_status}' == 'active.auction' Sleep 120 # Auction sync | 688 | Run keyword if '${next_status}' == 'active.auction' Sleep 120 # Auction sync |
| 682 | 689 | ||
| 683 | 690 | ||
| 684 | -Дочекатись дати початку аукціону | ||
| 685 | - [Arguments] ${username} | ||
| 686 | - # Can't use that dirty hack here since we don't know | ||
| 687 | - # the date of auction when creating the procurement :) | ||
| 688 | - ${auctionStart}= Отримати дані із тендера ${username} ${tender_uaid} auctionPeriod.startDate ${TENDER['LOT_ID']} | ||
| 689 | - Дочекатись дати ${auctionStart} | ||
| 690 | - Оновити LAST_MODIFICATION_DATE | ||
| 691 | - Дочекатись синхронізації з майданчиком ${username} | ||
| 692 | - | ||
| 693 | - | ||
| 694 | -Відкрити сторінку аукціону для глядача | ||
| 695 | - ${url}= Run as ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} ${TENDER['LOT_ID']} | ||
| 696 | - Open browser ${url} ${USERS.users['${viewer}'].browser} | ||
| 697 | - | ||
| 698 | - | ||
| 699 | -Дочекатись дати закінчення аукціону | ||
| 700 | - [Arguments] ${username} | ||
| 701 | - Log ${username} | ||
| 702 | - ${auctionEnd}= Отримати дані із тендера ${username} ${tender_uaid} auctionPeriod.endDate ${TENDER['LOT_ID']} | ||
| 703 | - Дочекатись дати ${auctionEnd} | ||
| 704 | - Оновити LAST_MODIFICATION_DATE | ||
| 705 | - Дочекатись синхронізації з майданчиком ${username} | ||
| 706 | - | ||
| 707 | - | ||
| 708 | Дочекатись дати закінчення періоду подання скарг | 691 | Дочекатись дати закінчення періоду подання скарг |
| 709 | [Arguments] ${username} | 692 | [Arguments] ${username} |
| 710 | - log ${username} | ||
| 711 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.complaintPeriod.endDate} | 693 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.complaintPeriod.endDate} |
| 712 | Оновити LAST_MODIFICATION_DATE | 694 | Оновити LAST_MODIFICATION_DATE |
| 713 | Дочекатись синхронізації з майданчиком ${username} | 695 | Дочекатись синхронізації з майданчиком ${username} |
| @@ -54,7 +54,7 @@ Resource resource.robot | @@ -54,7 +54,7 @@ Resource resource.robot | ||
| 54 | ############################################################################################## | 54 | ############################################################################################## |
| 55 | 55 | ||
| 56 | Можливість створити закупівлю | 56 | Можливість створити закупівлю |
| 57 | - ${tender_data}= Підготовка даних для створення тендера | 57 | + ${tender_data}= Підготувати дані для створення тендера |
| 58 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | 58 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} |
| 59 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} | 59 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} |
| 60 | ... Створити тендер | 60 | ... Створити тендер |
| 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 Test Suite Setup | ||
| 10 | -Suite Teardown Test Suite Teardown | ||
| 11 | - | ||
| 12 | -*** Variables *** | ||
| 13 | -${mode} meat | ||
| 14 | -@{used_roles} tender_owner provider provider1 viewer | ||
| 15 | - | ||
| 16 | - | ||
| 17 | -*** Test Cases *** | ||
| 18 | -Можливість оголосити однопредметний тендер з неціновим показником | ||
| 19 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер з неціновим показником | ||
| 20 | - ... tender_owner | ||
| 21 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 22 | - ... minimal | ||
| 23 | - [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), | ||
| 24 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 25 | - ${tender_data}= Підготовка даних для створення тендера | ||
| 26 | - ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | ||
| 27 | - ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${adapted_data} | ||
| 28 | - Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | ||
| 29 | - Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
| 30 | - Log ${TENDER} | ||
| 31 | - | ||
| 32 | - | ||
| 33 | -Можливість знайти однопредметний тендер по ідентифікатору | ||
| 34 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість знайти тендер | ||
| 35 | - ... viewer tender_owner provider provider1 | ||
| 36 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 37 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 38 | - ... minimal | ||
| 39 | - :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 40 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 41 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 42 | - | ||
| 43 | - | ||
| 44 | -Неможливість перевищити ліміт для нецінових критеріїв | ||
| 45 | - [Documentation] | ||
| 46 | - ... `Внести зміни в тендер` should not pass in this test case. | ||
| 47 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 48 | - ... tender_owner | ||
| 49 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 50 | - [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 51 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 52 | - ${invalid_features}= test_invalid_features_data | ||
| 53 | - ${fail}= Require Failure ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} features ${invalid_features} | ||
| 54 | - Log ${fail} | ||
| 55 | - | ||
| 56 | -###### | ||
| 57 | -#Подання пропозицій | ||
| 58 | - | ||
| 59 | -Відображення початку періоду прийому пропозицій оголошеного тендера | ||
| 60 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 61 | - ... viewer provider provider1 | ||
| 62 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} | ||
| 63 | - ... ${USERS.users['${provider1}'].broker} | ||
| 64 | - ... minimal | ||
| 65 | - :FOR ${username} IN ${viewer} ${provider} ${provider1} | ||
| 66 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 67 | - \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | ||
| 68 | - | ||
| 69 | -Відображення закінчення періоду прийому пропозицій оголошеного тендера | ||
| 70 | - [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
| 71 | - ... viewer provider provider1 | ||
| 72 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} | ||
| 73 | - ... ${USERS.users['${provider1}'].broker} | ||
| 74 | - ... minimal | ||
| 75 | - :FOR ${username} IN ${viewer} ${provider} ${provider1} | ||
| 76 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 77 | - \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | ||
| 78 | - | ||
| 79 | - | ||
| 80 | -Неможливість подати цінову пропозицію без нецінового показника | ||
| 81 | - [Documentation] | ||
| 82 | - ... `Подати цінову пропозицію` should not pass in this test case. | ||
| 83 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 84 | - ... provider | ||
| 85 | - ... ${USERS.users['${provider}'].broker} | ||
| 86 | - [Setup] Дочекатись дати початку прийому пропозицій ${provider} | ||
| 87 | - ${bid}= test bid data single | ||
| 88 | - Log ${bid} | ||
| 89 | - ${failbid}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 90 | - log ${failbid} | ||
| 91 | - | ||
| 92 | - | ||
| 93 | -Можливість подати цінову пропозицію з неціновим показником | ||
| 94 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 95 | - ... provider | ||
| 96 | - ... ${USERS.users['${provider}'].broker} | ||
| 97 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 98 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 99 | - ${bidresponses}= Create Dictionary bid=${bid} | ||
| 100 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses=${bidresponses} | ||
| 101 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 102 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 103 | - log ${resp} | ||
| 104 | - | ||
| 105 | - | ||
| 106 | -Можливість змінити неціновий показник повторної цінової пропозиції до 0 | ||
| 107 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 108 | - ... provider | ||
| 109 | - ... ${USERS.users['${provider}'].broker} | ||
| 110 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 111 | - ${fixbidparamsto0resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} parameters.0.value 0 | ||
| 112 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidparamsto0resp ${fixbidparamsto0resp} | ||
| 113 | - log ${fixbidparamsto0resp} | ||
| 114 | - | ||
| 115 | - | ||
| 116 | -Можливість змінити неціновий показник повторної цінової пропозиції до 0.15 | ||
| 117 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 118 | - ... provider | ||
| 119 | - ... ${USERS.users['${provider}'].broker} | ||
| 120 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 121 | - ${fixbidparamsto015resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} parameters.0.value 0.15 | ||
| 122 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidparamsto015resp ${fixbidparamsto015resp} | ||
| 123 | - log ${fixbidparamsto015resp} | ||
| 124 | - | ||
| 125 | - | ||
| 126 | -Можливість подати цінову пропозицію з неціновим показником другим учасником | ||
| 127 | - [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 128 | - ... provider1 | ||
| 129 | - ... ${USERS.users['${provider1}'].broker} | ||
| 130 | - [Setup] Дочекатись дати початку прийому пропозицій ${provider1} | ||
| 131 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 132 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 133 | - Log ${bid} | ||
| 134 | - ${bidresponses}= Create Dictionary | ||
| 135 | - Set To Dictionary ${bidresponses} bid ${bid} | ||
| 136 | - Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 137 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 138 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 139 | - log ${resp} | ||
| 140 | - log ${USERS.users['${provider1}'].bidresponses} | ||
| 141 | - | ||
| 142 | -###### | ||
| 143 | -#Аукціон | ||
| 144 | - | ||
| 145 | -Відображення дати початку аукціону | ||
| 146 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 147 | - ... viewer | ||
| 148 | - ... ${USERS.users['${viewer}'].broker} | ||
| 149 | - ... minimal | ||
| 150 | - [Setup] Дочекатись дати закінчення прийому пропозицій ${viewer} | ||
| 151 | - Отримати дані із тендера ${viewer} auctionPeriod.startDate | ||
| 152 | - | ||
| 153 | -Можливість дочекатися початку аукціону | ||
| 154 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися початку аукціону | ||
| 155 | - ... viewer | ||
| 156 | - ... ${USERS.users['${viewer}'].broker} | ||
| 157 | - Дочекатись дати початку аукціону ${viewer} | ||
| 158 | - | ||
| 159 | -Можливість дочекатися завершення аукціону | ||
| 160 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися завершення аукціону | ||
| 161 | - ... viewer | ||
| 162 | - ... ${USERS.users['${viewer}'].broker} | ||
| 163 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 164 | - Відкрити сторінку аукціону для глядача | ||
| 165 | - Wait Until Keyword Succeeds 61 times 30 s Page should contain Аукціон завершився | ||
| 166 | - Wait Until Keyword Succeeds 5 times 30 s Page should not contain очікуємо розкриття учасників | ||
| 167 | - Close browser | ||
| 168 | - | ||
| 169 | -Відображення дати завершення аукціону | ||
| 170 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 171 | - ... viewer | ||
| 172 | - ... ${USERS.users['${viewer}'].broker} | ||
| 173 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 174 | - Отримати дані із тендера ${viewer} auctionPeriod.endDate | ||
| 175 | - | ||
| 176 | -Відображення значення ставки першої пропозиції | ||
| 177 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
| 178 | - ... viewer | ||
| 179 | - ... ${USERS.users['${viewer}'].broker} | ||
| 180 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 181 | - Отримати дані із тендера ${viewer} bids[0].value.amount | ||
| 182 | - | ||
| 183 | -Відображення значення нецінового критерію першої пропозиції | ||
| 184 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
| 185 | - ... viewer | ||
| 186 | - ... ${USERS.users['${viewer}'].broker} | ||
| 187 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 188 | - Отримати дані із тендера ${viewer} bids[0].parameters | ||
| 189 | - | ||
| 190 | -Відображення дати першої пропозиції | ||
| 191 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
| 192 | - ... viewer | ||
| 193 | - ... ${USERS.users['${viewer}'].broker} | ||
| 194 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 195 | - Отримати дані із тендера ${viewer} bids[0].date | ||
| 196 | - | ||
| 197 | -Відображення назви учасника першої пропозиції | ||
| 198 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
| 199 | - ... viewer | ||
| 200 | - ... ${USERS.users['${viewer}'].broker} | ||
| 201 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 202 | - Отримати дані із тендера ${viewer} bids[0].tenderers[0].name | ||
| 203 | - | ||
| 204 | -Відображення значення ставки другої пропозиції | ||
| 205 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
| 206 | - ... viewer | ||
| 207 | - ... ${USERS.users['${viewer}'].broker} | ||
| 208 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 209 | - Отримати дані із тендера ${viewer} bids[1].value.amount | ||
| 210 | - | ||
| 211 | -Відображення значення нецінового критерію другої пропозиції | ||
| 212 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
| 213 | - ... viewer | ||
| 214 | - ... ${USERS.users['${viewer}'].broker} | ||
| 215 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 216 | - Отримати дані із тендера ${viewer} bids[1].parameters | ||
| 217 | - | ||
| 218 | -Відображення дати другої пропозиції | ||
| 219 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
| 220 | - ... viewer | ||
| 221 | - ... ${USERS.users['${viewer}'].broker} | ||
| 222 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 223 | - Отримати дані із тендера ${viewer} bids[1].date | ||
| 224 | - | ||
| 225 | -Відображення назви учасника другої пропозиції | ||
| 226 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення пропозицій | ||
| 227 | - ... viewer | ||
| 228 | - ... ${USERS.users['${viewer}'].broker} | ||
| 229 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 230 | - Отримати дані із тендера ${viewer} bids[1].tenderers[0].name | ||
| 231 | - | ||
| 232 | -Відображення значення ставки пропозиції переможця | ||
| 233 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення даних про постачальника | ||
| 234 | - ... viewer | ||
| 235 | - ... ${USERS.users['${viewer}'].broker} | ||
| 236 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 237 | - Отримати дані із тендера ${viewer} awards[0].value.amount | ||
| 238 | - | ||
| 239 | -Відображення назви переможця | ||
| 240 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення даних про постачальника | ||
| 241 | - ... viewer | ||
| 242 | - ... ${USERS.users['${viewer}'].broker} | ||
| 243 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 244 | - Отримати дані із тендера ${viewer} awards[0].suppliers[0].name | ||
| 245 | - | ||
| 246 | -Можливість отримати результати аукціону | ||
| 247 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Результати аукціону | ||
| 248 | - ... tender_owner | ||
| 249 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 250 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 251 | - ${result}= chef ${USERS.users['${viewer}'].tender_data.data.bids} ${USERS.users['${tender_owner}'].initial_data.data.features} | ||
| 252 | - Log ${result} | ||
| 253 | - Should Be Equal ${result[0].tenderers[0].name} ${USERS.users['${viewer}'].tender_data.data.awards[0].suppliers[0].name} | ||
| 254 | - Should Be Equal ${result[0].value.amount} ${USERS.users['${viewer}'].tender_data.data.awards[0].value.amount} |
| 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 Test Suite Setup | ||
| 10 | -Suite Teardown Test Suite Teardown | ||
| 11 | - | ||
| 12 | -*** Variables *** | ||
| 13 | -${mode} multiItem | ||
| 14 | -@{used_roles} tender_owner provider provider1 viewer | ||
| 15 | - | ||
| 16 | - | ||
| 17 | -*** Test Cases *** | ||
| 18 | -Можливість оголосити багатопредметний тендер | ||
| 19 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 20 | - ... tender_owner | ||
| 21 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 22 | - ... minimal | ||
| 23 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 24 | - ${tender_data}= Підготовка даних для створення тендера | ||
| 25 | - ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | ||
| 26 | - ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data} | ||
| 27 | - Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | ||
| 28 | - Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
| 29 | - log ${TENDER} | ||
| 30 | - | ||
| 31 | -Можливість знайти багатопредметний тендер по ідентифікатору | ||
| 32 | - [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
| 33 | - ... viewer tender_owner | ||
| 34 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 35 | - ... minimal | ||
| 36 | - :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 37 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 38 | - \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 39 | - | ||
| 40 | -Відображення опису позицій закупівлі багатопредметного тендера | ||
| 41 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 42 | - ... viewer tender_owner | ||
| 43 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 44 | - ... minimal | ||
| 45 | - :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 46 | - \ Звірити поля предметів закупівлі багатопредметного тендера ${username} ${USERS.users['${tender_owner}'].initial_data} description | ||
| 47 | - | ||
| 48 | -Відображення дати доставки позицій закупівлі багатопредметного тендера | ||
| 49 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 50 | - ... viewer | ||
| 51 | - ... ${USERS.users['${viewer}'].broker} | ||
| 52 | - ... level3 | ||
| 53 | - Звірити дату предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryDate.endDate day absolute_delta=${True} | ||
| 54 | - | ||
| 55 | -Відображення координат доставки позицій закупівлі багатопредметного тендера | ||
| 56 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 57 | - ... viewer | ||
| 58 | - ... ${USERS.users['${viewer}'].broker} | ||
| 59 | - Звірити координати доставки предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} | ||
| 60 | - | ||
| 61 | -Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера | ||
| 62 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 63 | - ... viewer | ||
| 64 | - ... ${USERS.users['${viewer}'].broker} | ||
| 65 | - ... level3 | ||
| 66 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.countryName | ||
| 67 | - | ||
| 68 | -Відображення пошт. коду доставки позицій закупівлі багатопредметного тендера | ||
| 69 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 70 | - ... viewer | ||
| 71 | - ... ${USERS.users['${viewer}'].broker} | ||
| 72 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.postalCode | ||
| 73 | - | ||
| 74 | -Відображення регіону доставки позицій закупівлі багатопредметного тендера | ||
| 75 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 76 | - ... viewer | ||
| 77 | - ... ${USERS.users['${viewer}'].broker} | ||
| 78 | - ... level3 | ||
| 79 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.region | ||
| 80 | - | ||
| 81 | -Відображення locality адреси доставки позицій закупівлі багатопредметного тендера | ||
| 82 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 83 | - ... viewer | ||
| 84 | - ... ${USERS.users['${viewer}'].broker} | ||
| 85 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.locality | ||
| 86 | - | ||
| 87 | -Відображення вулиці доставки позицій закупівлі багатопредметного тендера | ||
| 88 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 89 | - ... viewer | ||
| 90 | - ... ${USERS.users['${viewer}'].broker} | ||
| 91 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.streetAddress | ||
| 92 | - | ||
| 93 | -Відображення схеми класифікації позицій закупівлі багатопредметного тендера | ||
| 94 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 95 | - ... viewer | ||
| 96 | - ... ${USERS.users['${viewer}'].broker} | ||
| 97 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.scheme | ||
| 98 | - | ||
| 99 | -Відображення ідентифікатора класифікації позицій закупівлі багатопредметного тендера | ||
| 100 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 101 | - ... viewer | ||
| 102 | - ... ${USERS.users['${viewer}'].broker} | ||
| 103 | - ... level3 | ||
| 104 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.id | ||
| 105 | - | ||
| 106 | -Відображення опису класифікації позицій закупівлі багатопредметного тендера | ||
| 107 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 108 | - ... viewer | ||
| 109 | - ... ${USERS.users['${viewer}'].broker} | ||
| 110 | - ... level3 | ||
| 111 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.description | ||
| 112 | - | ||
| 113 | -Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера | ||
| 114 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 115 | - ... viewer | ||
| 116 | - ... ${USERS.users['${viewer}'].broker} | ||
| 117 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].scheme | ||
| 118 | - | ||
| 119 | -Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера | ||
| 120 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 121 | - ... viewer | ||
| 122 | - ... ${USERS.users['${viewer}'].broker} | ||
| 123 | - ... level3 | ||
| 124 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].id | ||
| 125 | - | ||
| 126 | -Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера | ||
| 127 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 128 | - ... viewer | ||
| 129 | - ... ${USERS.users['${viewer}'].broker} | ||
| 130 | - ... level3 | ||
| 131 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].description | ||
| 132 | - | ||
| 133 | -Відображення назви одиниці позицій закупівлі багатопредметного тендера | ||
| 134 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 135 | - ... viewer | ||
| 136 | - ... ${USERS.users['${viewer}'].broker} | ||
| 137 | - ... level3 | ||
| 138 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.name | ||
| 139 | - | ||
| 140 | -Відображення коду одиниці позицій закупівлі багатопредметного тендера | ||
| 141 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 142 | - ... viewer | ||
| 143 | - ... ${USERS.users['${viewer}'].broker} | ||
| 144 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.code | ||
| 145 | - | ||
| 146 | -Відображення кількості позицій закупівлі багатопредметного тендера | ||
| 147 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 148 | - ... viewer | ||
| 149 | - ... ${USERS.users['${viewer}'].broker} | ||
| 150 | - ... level3 | ||
| 151 | - Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} quantity | ||
| 152 | - | ||
| 153 | -Можливість редагувати багатопредметний тендер | ||
| 154 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 155 | - ... tender_owner | ||
| 156 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 157 | - ... level2 | ||
| 158 | - [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 159 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 160 | - Run As ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 161 | - | ||
| 162 | -Можливість додати шосту позицію закупівлі в тендер | ||
| 163 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 164 | - ... tender_owner | ||
| 165 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 166 | - ... level2 | ||
| 167 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 168 | - ${item}= Підготовка даних для створення предмету закупівлі | ||
| 169 | - Run As ${tender_owner} Додати предмет закупівлі ${TENDER['TENDER_UAID']} ${item} | ||
| 170 | - ${item_id}= get_id_from_object ${item} | ||
| 171 | - ${item_data}= Create Dictionary item=${item} item_id=${item_id} | ||
| 172 | - ${item_data}= munch_dict arg=${item_data} | ||
| 173 | - Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data} | ||
| 174 | - | ||
| 175 | -Відображення опису нової шостої позиції закупівлі багатопредметного тендера | ||
| 176 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 177 | - ... viewer tender_owner | ||
| 178 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 179 | - ... level2 | ||
| 180 | - :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 181 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 182 | - \ Звірити поле тендера із значенням ${username} ${USERS.users['${tender_owner}'].item_data.item.description} description ${USERS.users['${tender_owner}'].item_data.item_id} | ||
| 183 | - | ||
| 184 | -Можливість додати сьому позицію закупівлі в тендер | ||
| 185 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 186 | - ... tender_owner | ||
| 187 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 188 | - ... level2 | ||
| 189 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 190 | - ${item}= Підготовка даних для створення предмету закупівлі | ||
| 191 | - Run As ${tender_owner} Додати предмет закупівлі ${TENDER['TENDER_UAID']} ${item} | ||
| 192 | - ${item_id}= get_id_from_object ${item} | ||
| 193 | - ${item_data}= Create Dictionary item=${item} item_id=${item_id} | ||
| 194 | - ${item_data}= munch_dict arg=${item_data} | ||
| 195 | - Set To Dictionary ${USERS.users['${tender_owner}']} item_data=${item_data} | ||
| 196 | - | ||
| 197 | -Відображення опису нової сьомої позиції закупівлі багатопредметного тендера | ||
| 198 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | ||
| 199 | - ... viewer tender_owner | ||
| 200 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 201 | - ... level2 | ||
| 202 | - :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 203 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 204 | - \ Звірити поле тендера із значенням ${username} ${USERS.users['${tender_owner}'].item_data.item.description} description ${USERS.users['${tender_owner}'].item_data.item_id} | ||
| 205 | - | ||
| 206 | -Можливість видалити п’яту позицію закупівлі тендера | ||
| 207 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 208 | - ... tender_owner | ||
| 209 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 210 | - ... level2 | ||
| 211 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 212 | - ${item_id}= get_id_from_object ${USERS.users['${tender_owner}'].tender_data.data['items'][4]} | ||
| 213 | - Run As ${tender_owner} Видалити предмет закупівлі ${TENDER['TENDER_UAID']} ${item_id} |
| 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 Test Suite Setup | ||
| 10 | -Suite Teardown Test Suite Teardown | ||
| 11 | - | ||
| 12 | -*** Variables *** | ||
| 13 | -${mode} multiLot | ||
| 14 | -@{used_roles} tender_owner provider provider1 viewer | ||
| 15 | -${complaint_id} 1 | ||
| 16 | - | ||
| 17 | - | ||
| 18 | -*** Test Cases *** | ||
| 19 | -Можливість оголосити мультилотовий тендер | ||
| 20 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер | ||
| 21 | - ... tender_owner | ||
| 22 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 23 | - ... minimal | ||
| 24 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 25 | - ${tender_data}= Підготовка даних для створення тендера | ||
| 26 | - ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} | ||
| 27 | - ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data} | ||
| 28 | - Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data} | ||
| 29 | - Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | ||
| 30 | - Log ${TENDER} | ||
| 31 | - | ||
| 32 | - | ||
| 33 | -Можливість знайти мультилотовий тендер по ідентифікатору | ||
| 34 | - [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
| 35 | - ... viewer tender_owner provider provider1 | ||
| 36 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 37 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 38 | - ... minimal | ||
| 39 | - :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 40 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 41 | - \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 42 | - | ||
| 43 | -Можливість додати тендерну документацію лоту | ||
| 44 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
| 45 | - ... tender_owner | ||
| 46 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 47 | - [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | ||
| 48 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 49 | - ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
| 50 | - ${filepath}= create_fake_doc | ||
| 51 | - Run As ${tender_owner} Завантажити документ в лот ${filepath} ${TENDER['TENDER_UAID']} ${lot_id} | ||
| 52 | - | ||
| 53 | -Відображення заголовку першого лоту | ||
| 54 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 55 | - ... viewer tender_owner provider provider1 | ||
| 56 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 57 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 58 | - ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
| 59 | - :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 60 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 61 | - \ Звірити поле тендера із значенням ${username} | ||
| 62 | - \ ... ${USERS.users['${tender_owner}'].initial_data.data.lots[0].title} title | ||
| 63 | - \ ... object_id=${lot_id} | ||
| 64 | - | ||
| 65 | -Відображення опису першого лоту | ||
| 66 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 67 | - ... viewer | ||
| 68 | - ... ${USERS.users['${viewer}'].broker} | ||
| 69 | - ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[0]} | ||
| 70 | - Звірити поле тендера із значенням ${viewer} | ||
| 71 | - ... ${USERS.users['${tender_owner}'].initial_data.data.lots[0].description} description | ||
| 72 | - ... object_id=${lot_id} | ||
| 73 | - | ||
| 74 | -####### | ||
| 75 | -#Операції з лотом | ||
| 76 | - | ||
| 77 | -Можливість створення лоту | ||
| 78 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 79 | - ... tender_owner | ||
| 80 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 81 | - [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 82 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 83 | - ${lot}= Підготовка даних для створення лоту ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 84 | - ${lot_resp}= Run As ${tender_owner} Створити лот ${TENDER['TENDER_UAID']} ${lot} | ||
| 85 | - ${lot_id}= get_id_from_object ${lot.data} | ||
| 86 | - ${lot_data}= Create Dictionary lot=${lot} lot_resp=${lot_resp} lot_id=${lot_id} | ||
| 87 | - ${lot_data}= munch_dict arg=${lot_data} | ||
| 88 | - Set To Dictionary ${USERS.users['${tender_owner}']} lot_data=${lot_data} | ||
| 89 | - log ${lot_resp} | ||
| 90 | - | ||
| 91 | -Можливість видалення лоту | ||
| 92 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 93 | - ... tender_owner | ||
| 94 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 95 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 96 | - Run As ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 97 | - | ||
| 98 | -Можливість повторого створення лоту | ||
| 99 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 100 | - ... tender_owner | ||
| 101 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 102 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 103 | - ${lot}= Підготовка даних для створення лоту ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 104 | - ${lot_resp}= Run As ${tender_owner} Створити лот ${TENDER['TENDER_UAID']} ${lot} | ||
| 105 | - ${lot_id}= get_id_from_object ${lot.data} | ||
| 106 | - ${lot_data}= Create Dictionary lot=${lot} lot_resp=${lot_resp} lot_id=${lot_id} | ||
| 107 | - ${lot_data}= munch_dict arg=${lot_data} | ||
| 108 | - Set To Dictionary ${USERS.users['${tender_owner}']} lot_data=${lot_data} | ||
| 109 | - log ${lot_resp} | ||
| 110 | - | ||
| 111 | -Відображення заголовку другого лоту | ||
| 112 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 113 | - ... viewer tender_owner provider provider1 | ||
| 114 | - ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 115 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 116 | - :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 117 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 118 | - \ Звірити поле тендера із значенням ${username} | ||
| 119 | - \ ... ${USERS.users['${tender_owner}'].lot_data.lot.data.title} title | ||
| 120 | - \ ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 121 | - | ||
| 122 | -Відображення опису другого лоту | ||
| 123 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 124 | - ... viewer | ||
| 125 | - ... ${USERS.users['${viewer}'].broker} | ||
| 126 | - Звірити поле тендера із значенням ${viewer} | ||
| 127 | - ... ${USERS.users['${tender_owner}'].lot_data.lot.data.description} description | ||
| 128 | - ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 129 | - | ||
| 130 | -Відображення бюджету другого лоту | ||
| 131 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 132 | - ... viewer | ||
| 133 | - ... ${USERS.users['${viewer}'].broker} | ||
| 134 | - Звірити поле тендера із значенням ${viewer} | ||
| 135 | - ... ${USERS.users['${tender_owner}'].lot_data.lot.data.value.amount} value.amount | ||
| 136 | - ... object_id=${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 137 | - | ||
| 138 | -Можливість змінити бюджет другого лоту до 100 | ||
| 139 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 140 | - ... tender_owner | ||
| 141 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 142 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 143 | - Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} value.amount 100 | ||
| 144 | - | ||
| 145 | - | ||
| 146 | -Можливість змінити бюджет другого лоту до 8000 | ||
| 147 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 148 | - ... tender_owner | ||
| 149 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 150 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 151 | - Run As ${tender_owner} Змінити лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} value.amount 8000 | ||
| 152 | - | ||
| 153 | -##### | ||
| 154 | -#Предмети закупівлі лоту | ||
| 155 | - | ||
| 156 | -Можливість добавити предмет закупівлі до другого лоту | ||
| 157 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 158 | - ... tender_owner | ||
| 159 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 160 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 161 | - ${item}= Підготовка даних для створення предмету закупівлі | ||
| 162 | - Run As ${tender_owner} Додати предмет закупівлі в лот ${TENDER['TENDER_UAID']} ${USERS.users['${tender_owner}'].lot_data.lot_id} ${item} | ||
| 163 | - | ||
| 164 | -Неможливість видалення лоту з прив’язаними предметами закупівлі | ||
| 165 | - [Documentation] | ||
| 166 | - ... `Видалити лот` should not pass in this test case. | ||
| 167 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 168 | - ... tender_owner | ||
| 169 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 170 | - ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 171 | - Require Failure ${tender_owner} Видалити лот ${TENDER['TENDER_UAID']} ${lot_id} | ||
| 172 | - | ||
| 173 | - | ||
| 174 | -####### | ||
| 175 | -#Запитання до лоту | ||
| 176 | - | ||
| 177 | -Можливість задати питання до лоту | ||
| 178 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | ||
| 179 | - ... provider | ||
| 180 | - ... ${USERS.users['${provider}'].broker} | ||
| 181 | - [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 182 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 183 | - ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lot_data.lot_id} | ||
| 184 | - ${question}= Підготовка даних для запитання | ||
| 185 | - ${question_resp}= Run As ${provider} Задати питання до лоту ${TENDER['TENDER_UAID']} ${lot_id} ${question} | ||
| 186 | - ${now}= Get Current TZdate | ||
| 187 | - ${question.data.date}= Set variable ${now} | ||
| 188 | - ${question_id}= get_id_from_object ${question.data} | ||
| 189 | - ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} question_id=${question_id} | ||
| 190 | - ${question_data}= munch_dict arg=${question_data} | ||
| 191 | - Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} | ||
| 192 | - | ||
| 193 | - | ||
| 194 | -Можливість відповісти на запитання до лоту | ||
| 195 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | ||
| 196 | - ... tender_owner | ||
| 197 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 198 | - [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 199 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 200 | - ${answer}= Підготовка даних для відповіді на запитання | ||
| 201 | - ${answer_resp}= Run As ${tender_owner} | ||
| 202 | - ... Відповісти на питання ${TENDER['TENDER_UAID']} | ||
| 203 | - ... ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} | ||
| 204 | - ... question_id=${USERS.users['${provider}'].question_data.question_id} | ||
| 205 | - ${now}= Get Current TZdate | ||
| 206 | - ${answer.data.date}= Set variable ${now} | ||
| 207 | - ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} | ||
| 208 | - Set To Dictionary ${USERS.users['${provider}']} answer_data=${answer_data} | ||
| 209 | - | ||
| 210 | -###### | ||
| 211 | -#Подання пропозицій | ||
| 212 | - | ||
| 213 | -Відображення початку періоду прийому пропозицій оголошеного тендера | ||
| 214 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 215 | - ... viewer provider provider1 | ||
| 216 | - ... ${USERS.users['${viewer}'].broker} | ||
| 217 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 218 | - ... minimal | ||
| 219 | - :FOR ${username} IN ${viewer} ${provider} ${provider1} | ||
| 220 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 221 | - \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | ||
| 222 | - | ||
| 223 | -Відображення закінчення періоду прийому пропозицій оголошеного тендера | ||
| 224 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 225 | - ... viewer provider provider1 | ||
| 226 | - ... ${USERS.users['${viewer}'].broker} | ||
| 227 | - ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 228 | - ... minimal | ||
| 229 | - :FOR ${username} IN ${viewer} ${provider} ${provider1} | ||
| 230 | - \ Дочекатись синхронізації з майданчиком ${username} | ||
| 231 | - \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | ||
| 232 | - | ||
| 233 | -Неможливість подати цінову пропозицію до початку періоду подачі пропозицій | ||
| 234 | - [Documentation] | ||
| 235 | - ... `Подати цінову пропозицію` should not pass in this test case. | ||
| 236 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 237 | - ... provider | ||
| 238 | - ... ${USERS.users['${provider}'].broker} | ||
| 239 | - [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 240 | - @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots | ||
| 241 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 242 | - ${bid_before_bidperiod_resp}= Require Failure ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
| 243 | - log ${bid_before_bidperiod_resp} | ||
| 244 | - | ||
| 245 | -Неможливість подати цінову пропозицію без прив’язки до лоту | ||
| 246 | - [Documentation] | ||
| 247 | - ... `Подати цінову пропозицію` should not pass in this test case. | ||
| 248 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 249 | - ... provider | ||
| 250 | - ... ${USERS.users['${provider}'].broker} | ||
| 251 | - [Setup] Дочекатись дати початку прийому пропозицій ${provider} | ||
| 252 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 253 | - ${no_lot_bid_resp}= Require Failure ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 254 | - log ${no_lot_bid_resp} | ||
| 255 | - | ||
| 256 | -Можливість подати цінову пропозицію першим учасником | ||
| 257 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 258 | - ... provider | ||
| 259 | - ... ${USERS.users['${provider}'].broker} | ||
| 260 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 261 | - @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots | ||
| 262 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 263 | - ${bidresponses}= Create Dictionary bid=${bid} | ||
| 264 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses=${bidresponses} | ||
| 265 | - ${resp}= Run As ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
| 266 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp=${resp} | ||
| 267 | - | ||
| 268 | -Можливість скасувати цінову пропозицію | ||
| 269 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | ||
| 270 | - ... provider | ||
| 271 | - ... ${USERS.users['${provider}'].broker} | ||
| 272 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 273 | - ${canceledbidresp}= Run As ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
| 274 | - Log ${canceledbidresp} | ||
| 275 | - | ||
| 276 | -Можливість подати повторно цінову пропозицію першим учасником | ||
| 277 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 278 | - ... provider | ||
| 279 | - ... ${USERS.users['${provider}'].broker} | ||
| 280 | - [Setup] Дочекатись дати початку прийому пропозицій ${provider} | ||
| 281 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 282 | - Дочекатись дати початку прийому пропозицій ${provider} | ||
| 283 | - @{lots_ids}= Отримати ідентифікатори об’єктів ${provider} lots | ||
| 284 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 285 | - ${bidresponses}= Create Dictionary bid=${bid} | ||
| 286 | - Set To Dictionary ${USERS.users['${provider}']} bidresponses=${bidresponses} | ||
| 287 | - ${resp}= Run As ${provider} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
| 288 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp=${resp} | ||
| 289 | - | ||
| 290 | -Можливість змінити повторну цінову пропозицію до 2000 | ||
| 291 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 292 | - ... provider | ||
| 293 | - ... ${USERS.users['${provider}'].broker} | ||
| 294 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 295 | - ${fixbidto2000resp}= Run As ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | ||
| 296 | - log ${fixbidto2000resp} | ||
| 297 | - | ||
| 298 | -Можливість змінити повторну цінову пропозицію до 10 | ||
| 299 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 300 | - ... provider | ||
| 301 | - ... ${USERS.users['${provider}'].broker} | ||
| 302 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 303 | - ${fixbidto10resp}= Run As ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 | ||
| 304 | - log ${fixbidto10resp} | ||
| 305 | - | ||
| 306 | -Можливість подати цінову пропозицію другим учасником | ||
| 307 | - [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 308 | - ... provider1 | ||
| 309 | - ... ${USERS.users['${provider1}'].broker} | ||
| 310 | - [Setup] Дочекатись дати початку прийому пропозицій ${provider1} | ||
| 311 | - [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 312 | - Дочекатись дати початку прийому пропозицій ${provider1} | ||
| 313 | - @{lots_ids}= Отримати ідентифікатори об’єктів ${provider1} lots | ||
| 314 | - ${bid}= Підготувати дані для подання пропозиції ${USERS.users['${tender_owner}'].initial_data.data.value.amount} | ||
| 315 | - ${bidresponses}= Create Dictionary bid=${bid} | ||
| 316 | - Set To Dictionary ${USERS.users['${provider1}']} bidresponses=${bidresponses} | ||
| 317 | - ${resp}= Run As ${provider1} Подати цінову пропозицію на лоти ${TENDER['TENDER_UAID']} ${bid} ${lots_ids} | ||
| 318 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp=${resp} | ||
| 319 | - | ||
| 320 | -Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | ||
| 321 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | ||
| 322 | - ... viewer | ||
| 323 | - ... ${USERS.users['${viewer}'].broker} | ||
| 324 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 325 | - Require Failure ${viewer} Отримати інформацію із тендера bids | ||
| 326 | - | ||
| 327 | -Неможливість змінити цінову пропозицію до 2000 після закінчення прийому пропозицій | ||
| 328 | - [Documentation] | ||
| 329 | - ... `Змінити цінову пропозицію` should not pass in this test case. | ||
| 330 | - [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 2000 після закінчення прийому пропозицій | ||
| 331 | - ... provider1 | ||
| 332 | - ... ${USERS.users['${provider1}'].broker} | ||
| 333 | - [Setup] Дочекатись дати закінчення прийому пропозицій ${provider1} | ||
| 334 | - ${failfixbidto2000resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | ||
| 335 | - log ${failfixbidto2000resp} | ||
| 336 | - | ||
| 337 | -Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | ||
| 338 | - [Documentation] | ||
| 339 | - ... `Змінити цінову пропозицію` should not pass in this test case. | ||
| 340 | - [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | ||
| 341 | - ... provider1 | ||
| 342 | - ... ${USERS.users['${provider1}'].broker} | ||
| 343 | - ${failfixbidto1resp}= Require Failure ${provider1} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 1 | ||
| 344 | - log ${failfixbidto1resp} | ||
| 345 | - | ||
| 346 | -Неможливість скасувати цінову пропозицію | ||
| 347 | - [Documentation] | ||
| 348 | - ... `Скасувати цінову пропозицію` should not pass in this test case. | ||
| 349 | - [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | ||
| 350 | - ... provider1 | ||
| 351 | - ... ${USERS.users['${provider1}'].broker} | ||
| 352 | - ${biddingresponse}= Require Failure ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
| 353 | - log ${biddingresponse} |
| 1 | # -*- coding: utf-8 -*- | 1 | # -*- coding: utf-8 -*- |
| 2 | from faker.providers import BaseProvider | 2 | from faker.providers import BaseProvider |
| 3 | +from copy import deepcopy | ||
| 3 | from munch import Munch | 4 | from munch import Munch |
| 4 | from json import load | 5 | from json import load |
| 5 | import os | 6 | import os |
| @@ -85,7 +86,7 @@ class OP_Provider(BaseProvider): | @@ -85,7 +86,7 @@ class OP_Provider(BaseProvider): | ||
| 85 | 86 | ||
| 86 | @classmethod | 87 | @classmethod |
| 87 | def procuringEntity(self): | 88 | def procuringEntity(self): |
| 88 | - return self.random_element(self.procuringEntities) | 89 | + return deepcopy(self.random_element(self.procuringEntities)) |
| 89 | 90 | ||
| 90 | @classmethod | 91 | @classmethod |
| 91 | def cpv(self): | 92 | def cpv(self): |
| @@ -123,6 +124,8 @@ class OP_Provider(BaseProvider): | @@ -123,6 +124,8 @@ class OP_Provider(BaseProvider): | ||
| 123 | address = self.random_element(self.addresses) | 124 | address = self.random_element(self.addresses) |
| 124 | item = { | 125 | item = { |
| 125 | "description": item_base_data["description"], | 126 | "description": item_base_data["description"], |
| 127 | + "description_ru": item_base_data["description_ru"], | ||
| 128 | + "description_en": item_base_data["description_en"], | ||
| 126 | "classification": classification["classification"], | 129 | "classification": classification["classification"], |
| 127 | "additionalClassifications": classification["additionalClassifications"], | 130 | "additionalClassifications": classification["additionalClassifications"], |
| 128 | "deliveryAddress": address["deliveryAddress"], | 131 | "deliveryAddress": address["deliveryAddress"], |
| @@ -130,4 +133,4 @@ class OP_Provider(BaseProvider): | @@ -130,4 +133,4 @@ class OP_Provider(BaseProvider): | ||
| 130 | "unit": item_base_data["unit"], | 133 | "unit": item_base_data["unit"], |
| 131 | "quantity": self.randomize_nb_elements(number=item_base_data["quantity"], le=80, ge=120) | 134 | "quantity": self.randomize_nb_elements(number=item_base_data["quantity"], le=80, ge=120) |
| 132 | } | 135 | } |
| 133 | - return item | 136 | + return deepcopy(item) |
| @@ -7901,6 +7901,8 @@ | @@ -7901,6 +7901,8 @@ | ||
| 7901 | { | 7901 | { |
| 7902 | "cpv_id": "30199000-0", | 7902 | "cpv_id": "30199000-0", |
| 7903 | "description": "Папір для офісної техніки А4", | 7903 | "description": "Папір для офісної техніки А4", |
| 7904 | + "description_ru": "Бумага для офисной техники формата А4", | ||
| 7905 | + "description_en": "Paper for office equipment А4", | ||
| 7904 | "quantity": 15, | 7906 | "quantity": 15, |
| 7905 | "unit": { | 7907 | "unit": { |
| 7906 | "code": "PK", | 7908 | "code": "PK", |
| @@ -7910,6 +7912,8 @@ | @@ -7910,6 +7912,8 @@ | ||
| 7910 | { | 7912 | { |
| 7911 | "cpv_id": "24910000-6", | 7913 | "cpv_id": "24910000-6", |
| 7912 | "description": "Клей СМ-11", | 7914 | "description": "Клей СМ-11", |
| 7915 | + "description_ru": "Клей СМ-11", | ||
| 7916 | + "description_en": "Glue SM-11", | ||
| 7913 | "quantity": 50, | 7917 | "quantity": 50, |
| 7914 | "unit": { | 7918 | "unit": { |
| 7915 | "code": "KGM", | 7919 | "code": "KGM", |
| @@ -7919,6 +7923,8 @@ | @@ -7919,6 +7923,8 @@ | ||
| 7919 | { | 7923 | { |
| 7920 | "cpv_id": "22990000-6", | 7924 | "cpv_id": "22990000-6", |
| 7921 | "description": "Вироби канцелярські, паперові", | 7925 | "description": "Вироби канцелярські, паперові", |
| 7926 | + "description_ru": "Изделия канцелярские, бумажные", | ||
| 7927 | + "description_en": "Paper stationery", | ||
| 7922 | "quantity": 116, | 7928 | "quantity": 116, |
| 7923 | "unit": { | 7929 | "unit": { |
| 7924 | "code": "H87", | 7930 | "code": "H87", |
| @@ -7928,6 +7934,8 @@ | @@ -7928,6 +7934,8 @@ | ||
| 7928 | { | 7934 | { |
| 7929 | "cpv_id": "22800000-8", | 7935 | "cpv_id": "22800000-8", |
| 7930 | "description": "Бланки та журнали відповідної форми (наведені в додатку)", | 7936 | "description": "Бланки та журнали відповідної форми (наведені в додатку)", |
| 7937 | + "description_ru": "Бланки и журналы соответствующей формы (приведены в приложении)", | ||
| 7938 | + "description_en": "Form and journals in appropriate form (listed in Annex)", | ||
| 7931 | "quantity": 5, | 7939 | "quantity": 5, |
| 7932 | "unit": { | 7940 | "unit": { |
| 7933 | "code": "LO", | 7941 | "code": "LO", |
| @@ -7936,7 +7944,9 @@ | @@ -7936,7 +7944,9 @@ | ||
| 7936 | }, | 7944 | }, |
| 7937 | { | 7945 | { |
| 7938 | "cpv_id": "30192121-5", | 7946 | "cpv_id": "30192121-5", |
| 7939 | - "description": "ручки кулькові", | 7947 | + "description": "Ручки кулькові", |
| 7948 | + "description_ru": "Ручки шариковые", | ||
| 7949 | + "description_en": "Ballpoint pens", | ||
| 7940 | "quantity": 10, | 7950 | "quantity": 10, |
| 7941 | "unit": { | 7951 | "unit": { |
| 7942 | "code": "PK", | 7952 | "code": "PK", |
| @@ -7945,7 +7955,9 @@ | @@ -7945,7 +7955,9 @@ | ||
| 7945 | }, | 7955 | }, |
| 7946 | { | 7956 | { |
| 7947 | "cpv_id": "30192130-1", | 7957 | "cpv_id": "30192130-1", |
| 7948 | - "description": "олівці прості", | 7958 | + "description": "Олівці прості", |
| 7959 | + "description_ru": "Карандаши простые", | ||
| 7960 | + "description_en": "Plain pencils", | ||
| 7949 | "quantity": 3, | 7961 | "quantity": 3, |
| 7950 | "unit": { | 7962 | "unit": { |
| 7951 | "code": "PK", | 7963 | "code": "PK", |
| @@ -7955,6 +7967,8 @@ | @@ -7955,6 +7967,8 @@ | ||
| 7955 | { | 7967 | { |
| 7956 | "cpv_id": "30197600-2", | 7968 | "cpv_id": "30197600-2", |
| 7957 | "description": "Папір офісний призначений для друку та копіювання на лазерній, струменевій техніці, формат А4 - 210 х 297 мм, щільність 80г/м2.", | 7969 | "description": "Папір офісний призначений для друку та копіювання на лазерній, струменевій техніці, формат А4 - 210 х 297 мм, щільність 80г/м2.", |
| 7970 | + "description_ru": "Бумага офисная предназначен для печати и копирования на лазерной, струйной технике, формат А4 - 210 х 297 мм, плотность 80г м2.", | ||
| 7971 | + "description_en": "Paper for office equipment А4", | ||
| 7958 | "quantity": 20, | 7972 | "quantity": 20, |
| 7959 | "unit": { | 7973 | "unit": { |
| 7960 | "code": "NMP", | 7974 | "code": "NMP", |
| @@ -7964,6 +7978,8 @@ | @@ -7964,6 +7978,8 @@ | ||
| 7964 | { | 7978 | { |
| 7965 | "cpv_id": "22200000-2", | 7979 | "cpv_id": "22200000-2", |
| 7966 | "description": "Періодичні видання оригінальні на 2016 рік (газети України, журнали України, журнали Росії)", | 7980 | "description": "Періодичні видання оригінальні на 2016 рік (газети України, журнали України, журнали Росії)", |
| 7981 | + "description_ru": "Периодические издания оригинала в 2016 году (газет Украина, журналов Украины, журналов России)", | ||
| 7982 | + "description_en": "Periodicals original in 2016 (Ukrainian newspapers, Ukrainian magazines, Russian magazines)", | ||
| 7967 | "quantity": 126, | 7983 | "quantity": 126, |
| 7968 | "unit": { | 7984 | "unit": { |
| 7969 | "code": "H87", | 7985 | "code": "H87", |
| @@ -7973,6 +7989,8 @@ | @@ -7973,6 +7989,8 @@ | ||
| 7973 | { | 7989 | { |
| 7974 | "cpv_id": "22212000-9", | 7990 | "cpv_id": "22212000-9", |
| 7975 | "description": "Додаток № 1 до документації", | 7991 | "description": "Додаток № 1 до документації", |
| 7992 | + "description_ru": "Приложение № 1 к документации", | ||
| 7993 | + "description_en": "Supplement # 1 to documentation", | ||
| 7976 | "quantity": 12, | 7994 | "quantity": 12, |
| 7977 | "unit": { | 7995 | "unit": { |
| 7978 | "code": "SET", | 7996 | "code": "SET", |
| 1 | +*** Settings *** | ||
| 2 | +Resource base_keywords.robot | ||
| 3 | +Resource aboveThreshold_keywords.robot | ||
| 4 | +Suite Setup Test Suite Setup | ||
| 5 | +Suite Teardown Test Suite Teardown | ||
| 6 | + | ||
| 7 | + | ||
| 8 | +*** Variables *** | ||
| 9 | +${mode} openeu | ||
| 10 | +@{used_roles} tender_owner provider provider1 viewer | ||
| 11 | + | ||
| 12 | +${number_of_items} ${1} | ||
| 13 | +${number_of_lots} ${1} | ||
| 14 | +${tender_meat} ${True} | ||
| 15 | +${lot_meat} ${True} | ||
| 16 | +${item_meat} ${True} | ||
| 17 | + | ||
| 18 | + | ||
| 19 | +*** Test Cases *** | ||
| 20 | +Можливість оголосити тендер | ||
| 21 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | ||
| 22 | + ... tender_owner | ||
| 23 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 24 | + ... create_tender | ||
| 25 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 26 | + Можливість оголосити тендер | ||
| 27 | + | ||
| 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 | + ... search_tender | ||
| 35 | + Можливість знайти тендер по ідентифікатору для усіх користувачів | ||
| 36 | + | ||
| 37 | +############################################################################################## | ||
| 38 | +# Відображення основних даних тендера | ||
| 39 | +############################################################################################## | ||
| 40 | + | ||
| 41 | +Відображення заголовку тендера | ||
| 42 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 43 | + ... viewer | ||
| 44 | + ... ${USERS.users['${viewer}'].broker} | ||
| 45 | + ... tender_view | ||
| 46 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 47 | + Звірити відображення поля title тендера для користувача ${viewer} | ||
| 48 | + | ||
| 49 | + | ||
| 50 | +Відображення опису тендера | ||
| 51 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 52 | + ... viewer | ||
| 53 | + ... ${USERS.users['${viewer}'].broker} | ||
| 54 | + ... tender_view | ||
| 55 | + Звірити відображення поля description тендера для користувача ${viewer} | ||
| 56 | + | ||
| 57 | + | ||
| 58 | +Відображення бюджету тендера | ||
| 59 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 60 | + ... viewer | ||
| 61 | + ... ${USERS.users['${viewer}'].broker} | ||
| 62 | + ... tender_view | ||
| 63 | + Звірити відображення поля value.amount тендера для усіх користувачів | ||
| 64 | + | ||
| 65 | + | ||
| 66 | +Відображення валюти тендера | ||
| 67 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 68 | + ... viewer | ||
| 69 | + ... ${USERS.users['${viewer}'].broker} | ||
| 70 | + ... tender_view | ||
| 71 | + Звірити відображення поля value.currency тендера для користувача ${viewer} | ||
| 72 | + | ||
| 73 | + | ||
| 74 | +Відображення ПДВ в бюджеті тендера | ||
| 75 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 76 | + ... viewer | ||
| 77 | + ... ${USERS.users['${viewer}'].broker} | ||
| 78 | + ... tender_view | ||
| 79 | + Звірити відображення поля value.valueAddedTaxIncluded тендера для користувача ${viewer} | ||
| 80 | + | ||
| 81 | + | ||
| 82 | +Відображення ідентифікатора тендера | ||
| 83 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 84 | + ... viewer | ||
| 85 | + ... ${USERS.users['${viewer}'].broker} | ||
| 86 | + ... tender_view | ||
| 87 | + Звірити відображення поля tenderID тендера із ${TENDER['TENDER_UAID']} для користувача ${viewer} | ||
| 88 | + | ||
| 89 | + | ||
| 90 | +Відображення імені замовника тендера | ||
| 91 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 92 | + ... viewer | ||
| 93 | + ... ${USERS.users['${viewer}'].broker} | ||
| 94 | + ... tender_view | ||
| 95 | + Звірити відображення поля procuringEntity.name тендера для користувача ${viewer} | ||
| 96 | + | ||
| 97 | + | ||
| 98 | +Відображення початку періоду уточнення тендера | ||
| 99 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 100 | + ... viewer | ||
| 101 | + ... ${USERS.users['${viewer}'].broker} | ||
| 102 | + ... tender_view | ||
| 103 | + Run Keyword IF 'open' in '${mode}' | ||
| 104 | + ... Отримати дані із поля enquiryPeriod.startDate тендера для усіх користувачів | ||
| 105 | + ... ELSE | ||
| 106 | + ... Звірити відображення дати enquiryPeriod.startDate тендера для усіх користувачів | ||
| 107 | + | ||
| 108 | + | ||
| 109 | +Відображення закінчення періоду уточнення тендера | ||
| 110 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 111 | + ... viewer | ||
| 112 | + ... ${USERS.users['${viewer}'].broker} | ||
| 113 | + ... tender_view | ||
| 114 | + Run Keyword IF 'open' in '${mode}' | ||
| 115 | + ... Отримати дані із поля enquiryPeriod.endDate тендера для усіх користувачів | ||
| 116 | + ... ELSE | ||
| 117 | + ... Звірити відображення дати enquiryPeriod.endDate тендера для усіх користувачів | ||
| 118 | + | ||
| 119 | + | ||
| 120 | +Відображення початку періоду прийому пропозицій тендера | ||
| 121 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 122 | + ... viewer | ||
| 123 | + ... ${USERS.users['${viewer}'].broker} | ||
| 124 | + ... tender_view | ||
| 125 | + Звірити відображення дати tenderPeriod.startDate тендера для усіх користувачів | ||
| 126 | + | ||
| 127 | + | ||
| 128 | +Відображення закінчення періоду прийому пропозицій тендера | ||
| 129 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 130 | + ... viewer | ||
| 131 | + ... ${USERS.users['${viewer}'].broker} | ||
| 132 | + ... tender_view | ||
| 133 | + Звірити відображення дати tenderPeriod.endDate тендера для усіх користувачів | ||
| 134 | + | ||
| 135 | + | ||
| 136 | +Відображення мінімального кроку тендера | ||
| 137 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 138 | + ... viewer | ||
| 139 | + ... ${USERS.users['${viewer}'].broker} | ||
| 140 | + ... tender_view | ||
| 141 | + Звірити відображення поля minimalStep.amount тендера для користувача ${viewer} | ||
| 142 | + | ||
| 143 | + | ||
| 144 | +Відображення типу оголошеного тендера | ||
| 145 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 146 | + ... viewer | ||
| 147 | + ... ${USERS.users['${viewer}'].broker} | ||
| 148 | + ... open_tender_view | ||
| 149 | + Звірити відображення поля procurementMethodType тендера для усіх користувачів | ||
| 150 | + | ||
| 151 | + | ||
| 152 | +Відображення закінчення періоду подання скарг на оголошений тендер | ||
| 153 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 154 | + ... viewer | ||
| 155 | + ... ${USERS.users['${viewer}'].broker} | ||
| 156 | + ... open_tender_view | ||
| 157 | + Отримати дані із поля complaintPeriod.endDate тендера для усіх користувачів | ||
| 158 | + | ||
| 159 | +############################################################################################## | ||
| 160 | +# Відображення основних даних предмету | ||
| 161 | +############################################################################################## | ||
| 162 | + | ||
| 163 | +Відображення опису номенклатур тендера | ||
| 164 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 165 | + ... viewer | ||
| 166 | + ... ${USERS.users['${viewer}'].broker} | ||
| 167 | + ... item_view | ||
| 168 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 169 | + Звірити відображення поля description усіх предметів для користувача ${viewer} | ||
| 170 | + | ||
| 171 | + | ||
| 172 | +Відображення дати доставки номенклатур тендера | ||
| 173 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 174 | + ... viewer | ||
| 175 | + ... ${USERS.users['${viewer}'].broker} | ||
| 176 | + ... item_view | ||
| 177 | + Звірити відображення дати deliveryDate.endDate усіх предметів для користувача ${viewer} | ||
| 178 | + | ||
| 179 | + | ||
| 180 | +Відображення координати доставки номенклатур тендера | ||
| 181 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 182 | + ... viewer | ||
| 183 | + ... ${USERS.users['${viewer}'].broker} | ||
| 184 | + ... item_view | ||
| 185 | + Звірити відображення координат усіх предметів для користувача ${viewer} | ||
| 186 | + | ||
| 187 | + | ||
| 188 | +Відображення назви нас. пункту доставки номенклатур тендера | ||
| 189 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 190 | + ... viewer | ||
| 191 | + ... ${USERS.users['${viewer}'].broker} | ||
| 192 | + ... item_view | ||
| 193 | + Звірити відображення поля deliveryAddress.countryName усіх предметів для користувача ${viewer} | ||
| 194 | + | ||
| 195 | + | ||
| 196 | +Відображення пошт. коду доставки номенклатур тендера | ||
| 197 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 198 | + ... viewer | ||
| 199 | + ... ${USERS.users['${viewer}'].broker} | ||
| 200 | + ... item_view | ||
| 201 | + Звірити відображення поля deliveryAddress.postalCode усіх предметів для користувача ${viewer} | ||
| 202 | + | ||
| 203 | + | ||
| 204 | +Відображення регіону доставки номенклатур тендера | ||
| 205 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 206 | + ... viewer | ||
| 207 | + ... ${USERS.users['${viewer}'].broker} | ||
| 208 | + ... item_view | ||
| 209 | + Звірити відображення поля deliveryAddress.region усіх предметів для користувача ${viewer} | ||
| 210 | + | ||
| 211 | + | ||
| 212 | +Відображення locality адреси доставки номенклатур тендера | ||
| 213 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 214 | + ... viewer | ||
| 215 | + ... ${USERS.users['${viewer}'].broker} | ||
| 216 | + ... item_view | ||
| 217 | + Звірити відображення поля deliveryAddress.locality усіх предметів для користувача ${viewer} | ||
| 218 | + | ||
| 219 | + | ||
| 220 | +Відображення вулиці доставки номенклатур тендера | ||
| 221 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 222 | + ... viewer | ||
| 223 | + ... ${USERS.users['${viewer}'].broker} | ||
| 224 | + ... item_view | ||
| 225 | + Звірити відображення поля deliveryAddress.streetAddress усіх предметів для користувача ${viewer} | ||
| 226 | + | ||
| 227 | + | ||
| 228 | +Відображення схеми класифікації номенклатур тендера | ||
| 229 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 230 | + ... viewer | ||
| 231 | + ... ${USERS.users['${viewer}'].broker} | ||
| 232 | + ... item_view | ||
| 233 | + Звірити відображення поля classification.scheme усіх предметів для користувача ${viewer} | ||
| 234 | + | ||
| 235 | + | ||
| 236 | +Відображення ідентифікатора класифікації номенклатур тендера | ||
| 237 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 238 | + ... viewer | ||
| 239 | + ... ${USERS.users['${viewer}'].broker} | ||
| 240 | + ... item_view | ||
| 241 | + Звірити відображення поля classification.id усіх предметів для користувача ${viewer} | ||
| 242 | + | ||
| 243 | + | ||
| 244 | +Відображення опису класифікації номенклатур тендера | ||
| 245 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 246 | + ... viewer | ||
| 247 | + ... ${USERS.users['${viewer}'].broker} | ||
| 248 | + ... item_view | ||
| 249 | + Звірити відображення поля classification.description усіх предметів для користувача ${viewer} | ||
| 250 | + | ||
| 251 | + | ||
| 252 | +Відображення схеми додаткової класифікації номенклатур тендера | ||
| 253 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 254 | + ... viewer | ||
| 255 | + ... ${USERS.users['${viewer}'].broker} | ||
| 256 | + ... item_view | ||
| 257 | + Звірити відображення поля additionalClassifications[0].scheme усіх предметів для користувача ${viewer} | ||
| 258 | + | ||
| 259 | + | ||
| 260 | +Відображення ідентифікатора додаткової класифікації номенклатур тендера | ||
| 261 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 262 | + ... viewer | ||
| 263 | + ... ${USERS.users['${viewer}'].broker} | ||
| 264 | + ... item_view | ||
| 265 | + Звірити відображення поля additionalClassifications[0].id усіх предметів для користувача ${viewer} | ||
| 266 | + | ||
| 267 | + | ||
| 268 | +Відображення опису додаткової класифікації номенклатур тендера | ||
| 269 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 270 | + ... viewer | ||
| 271 | + ... ${USERS.users['${viewer}'].broker} | ||
| 272 | + ... item_view | ||
| 273 | + Звірити відображення поля additionalClassifications[0].description усіх предметів для користувача ${viewer} | ||
| 274 | + | ||
| 275 | + | ||
| 276 | +Відображення назви одиниці номенклатур тендера | ||
| 277 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 278 | + ... viewer | ||
| 279 | + ... ${USERS.users['${viewer}'].broker} | ||
| 280 | + ... item_view | ||
| 281 | + Звірити відображення поля unit.name усіх предметів для користувача ${viewer} | ||
| 282 | + | ||
| 283 | + | ||
| 284 | +Відображення коду одиниці номенклатур тендера | ||
| 285 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 286 | + ... viewer | ||
| 287 | + ... ${USERS.users['${viewer}'].broker} | ||
| 288 | + ... item_view | ||
| 289 | + Звірити відображення поля unit.code усіх предметів для користувача ${viewer} | ||
| 290 | + | ||
| 291 | + | ||
| 292 | +Відображення кількості номенклатур тендера | ||
| 293 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення номенклатури тендера | ||
| 294 | + ... viewer | ||
| 295 | + ... ${USERS.users['${viewer}'].broker} | ||
| 296 | + ... item_view | ||
| 297 | + Звірити відображення поля quantity усіх предметів для користувача ${viewer} | ||
| 298 | + | ||
| 299 | +############################################################################################## | ||
| 300 | +# Відображення основних даних лоту | ||
| 301 | +############################################################################################## | ||
| 302 | + | ||
| 303 | +Відображення заголовку лотів | ||
| 304 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера | ||
| 305 | + ... viewer tender_owner provider provider1 | ||
| 306 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 307 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 308 | + ... lot_view | ||
| 309 | + Звірити відображення поля title усіх лотів для усіх користувачів | ||
| 310 | + | ||
| 311 | + | ||
| 312 | +Відображення опису лотів | ||
| 313 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера | ||
| 314 | + ... viewer | ||
| 315 | + ... ${USERS.users['${viewer}'].broker} | ||
| 316 | + ... lot_view | ||
| 317 | + Звірити відображення поля description усіх лотів для користувача ${viewer} | ||
| 318 | + | ||
| 319 | + | ||
| 320 | +Відображення бюджету лотів | ||
| 321 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера | ||
| 322 | + ... viewer | ||
| 323 | + ... ${USERS.users['${viewer}'].broker} | ||
| 324 | + ... lot_view | ||
| 325 | + Звірити відображення поля value.amount усіх лотів для усіх користувачів | ||
| 326 | + | ||
| 327 | + | ||
| 328 | +Відображення валюти лотів | ||
| 329 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера | ||
| 330 | + ... viewer | ||
| 331 | + ... ${USERS.users['${viewer}'].broker} | ||
| 332 | + ... lot_view | ||
| 333 | + Звірити відображення поля value.currency усіх лотів для користувача ${viewer} | ||
| 334 | + | ||
| 335 | + | ||
| 336 | +Відображення ПДВ в бюджеті лотів | ||
| 337 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера | ||
| 338 | + ... viewer | ||
| 339 | + ... ${USERS.users['${viewer}'].broker} | ||
| 340 | + ... lot_view | ||
| 341 | + Звірити відображення поля value.valueAddedTaxIncluded усіх лотів для користувача ${viewer} | ||
| 342 | + | ||
| 343 | +############################################################################################## | ||
| 344 | +# Відображення основних даних предмету | ||
| 345 | +############################################################################################## | ||
| 346 | + | ||
| 347 | +Відображення заголовку нецінових показників | ||
| 348 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 349 | + ... viewer tender_owner provider provider1 | ||
| 350 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 351 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 352 | + ... meat_view | ||
| 353 | + Звірити відображення поля title усіх нецінових показників для усіх користувачів | ||
| 354 | + | ||
| 355 | + | ||
| 356 | +Відображення опису нецінових показників | ||
| 357 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 358 | + ... viewer | ||
| 359 | + ... ${USERS.users['${viewer}'].broker} | ||
| 360 | + ... meat_view | ||
| 361 | + Звірити відображення поля description усіх нецінових показників для користувача ${viewer} | ||
| 362 | + | ||
| 363 | + | ||
| 364 | +Відображення відношення нецінових показників | ||
| 365 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 366 | + ... viewer | ||
| 367 | + ... ${USERS.users['${viewer}'].broker} | ||
| 368 | + ... meat_view | ||
| 369 | + Звірити відображення поля featureOf усіх нецінових показників для користувача ${viewer} | ||
| 370 | + | ||
| 371 | +############################################################################################## | ||
| 372 | +# Редагування тендера | ||
| 373 | +############################################################################################## | ||
| 374 | + | ||
| 375 | +Можливість додати документацію до тендера | ||
| 376 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації | ||
| 377 | + ... tender_owner | ||
| 378 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 379 | + ... add_tender_doc | ||
| 380 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 381 | + Можливість додати документацію до тендера | ||
| 382 | + | ||
| 383 | + | ||
| 384 | +Можливість додати документацію до першого лоту | ||
| 385 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації | ||
| 386 | + ... tender_owner | ||
| 387 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 388 | + ... add_lot_doc | ||
| 389 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 390 | + Можливість додати документацію до 0 лоту | ||
| 391 | + | ||
| 392 | + | ||
| 393 | +Можливість зменшити бюджет першого лоту | ||
| 394 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 395 | + ... tender_owner | ||
| 396 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 397 | + ... lot_modify | ||
| 398 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 399 | + Можливість змінити на 99 відсотки бюджет 0 лоту | ||
| 400 | + | ||
| 401 | + | ||
| 402 | +Можливість збільшити бюджет першого лоту | ||
| 403 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 404 | + ... tender_owner | ||
| 405 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 406 | + ... lot_modify | ||
| 407 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 408 | + Можливість змінити на 101 відсотки бюджет 0 лоту | ||
| 409 | + | ||
| 410 | + | ||
| 411 | +Можливість створення лоту | ||
| 412 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 413 | + ... tender_owner | ||
| 414 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 415 | + ... add_lot | ||
| 416 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 417 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 418 | + Можливість створення лоту | ||
| 419 | + | ||
| 420 | + | ||
| 421 | +Відображення заголовку нового лоту | ||
| 422 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера | ||
| 423 | + ... viewer tender_owner provider provider1 | ||
| 424 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 425 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 426 | + ... add_lot | ||
| 427 | + Звірити відображення поля title у новоствореному лоті для усіх користувачів | ||
| 428 | + | ||
| 429 | + | ||
| 430 | +Можливість додати предмет закупівлі | ||
| 431 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 432 | + ... tender_owner | ||
| 433 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 434 | + ... add_item | ||
| 435 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 436 | + Run Keyword IF ${number_of_lots} == 0 | ||
| 437 | + ... Можливість додати предмет закупівлі в тендер | ||
| 438 | + ... ELSE | ||
| 439 | + ... Можливість додати предмет закупівлі в -1 лот | ||
| 440 | + | ||
| 441 | + | ||
| 442 | +Можливість видалити предмет закупівлі | ||
| 443 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 444 | + ... tender_owner | ||
| 445 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 446 | + ... delete_item | ||
| 447 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 448 | + Run Keyword IF ${number_of_lots} == 0 | ||
| 449 | + ... Можливість видалити предмет закупівлі з тендера | ||
| 450 | + ... ELSE | ||
| 451 | + ... Можливість видалити предмет закупівлі з -1 лоту | ||
| 452 | + | ||
| 453 | + | ||
| 454 | +Можливість видалення лоту | ||
| 455 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 456 | + ... tender_owner | ||
| 457 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 458 | + ... delete_lot | ||
| 459 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 460 | + Можливість видалення -1 лоту | ||
| 461 | + | ||
| 462 | + | ||
| 463 | +Можливість додати неціновий показник на тендер | ||
| 464 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 465 | + ... tender_owner | ||
| 466 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 467 | + ... add_tender_meat | ||
| 468 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 469 | + Можливість добавити неціновий показник на тендер | ||
| 470 | + | ||
| 471 | + | ||
| 472 | +Відображення заголовку нецінового показника на тендер | ||
| 473 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 474 | + ... viewer tender_owner provider provider1 | ||
| 475 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 476 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 477 | + ... add_tender_meat | ||
| 478 | + Звірити відображення поля title у новоствореному неціновому показнику для усіх користувачів | ||
| 479 | + | ||
| 480 | + | ||
| 481 | +Відображення опису нецінових показників на тендер | ||
| 482 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 483 | + ... viewer | ||
| 484 | + ... ${USERS.users['${viewer}'].broker} | ||
| 485 | + ... add_tender_meat | ||
| 486 | + Звірити відображення поля description у новоствореному неціновому показнику для користувача ${viewer} | ||
| 487 | + | ||
| 488 | + | ||
| 489 | +Відображення відношення нецінових показників на тендер | ||
| 490 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 491 | + ... viewer | ||
| 492 | + ... ${USERS.users['${viewer}'].broker} | ||
| 493 | + ... add_tender_meat | ||
| 494 | + Звірити відображення поля featureOf у новоствореному неціновому показнику для користувача ${viewer} | ||
| 495 | + | ||
| 496 | +Можливість видалити неціновий показник на тендер | ||
| 497 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 498 | + ... tender_owner | ||
| 499 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 500 | + ... delete_tender_meat | ||
| 501 | + Можливість видалити -1 неціновий показник | ||
| 502 | + | ||
| 503 | +Можливість додати неціновий показник на перший лот | ||
| 504 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 505 | + ... tender_owner | ||
| 506 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 507 | + ... add_lot_meat | ||
| 508 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 509 | + Можливість добавити неціновий показник на 0 лот | ||
| 510 | + | ||
| 511 | + | ||
| 512 | +Відображення заголовку нецінового показника на лот | ||
| 513 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 514 | + ... viewer tender_owner provider provider1 | ||
| 515 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 516 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 517 | + ... add_lot_meat | ||
| 518 | + Звірити відображення поля title у новоствореному неціновому показнику для усіх користувачів | ||
| 519 | + | ||
| 520 | + | ||
| 521 | +Відображення опису нецінових показників на лот | ||
| 522 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 523 | + ... viewer | ||
| 524 | + ... ${USERS.users['${viewer}'].broker} | ||
| 525 | + ... add_lot_meat | ||
| 526 | + Звірити відображення поля description у новоствореному неціновому показнику для користувача ${viewer} | ||
| 527 | + | ||
| 528 | + | ||
| 529 | +Відображення відношення нецінових показників на лот | ||
| 530 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 531 | + ... viewer | ||
| 532 | + ... ${USERS.users['${viewer}'].broker} | ||
| 533 | + ... add_lot_meat | ||
| 534 | + Звірити відображення поля featureOf у новоствореному неціновому показнику для користувача ${viewer} | ||
| 535 | + | ||
| 536 | + | ||
| 537 | +Можливість видалити неціновий показник на лот | ||
| 538 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 539 | + ... tender_owner | ||
| 540 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 541 | + ... delete_tender_meat | ||
| 542 | + Можливість видалити -1 неціновий показник | ||
| 543 | + | ||
| 544 | + | ||
| 545 | +Можливість додати неціновий показник на перший предмет | ||
| 546 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 547 | + ... tender_owner | ||
| 548 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 549 | + ... add_item_meat | ||
| 550 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 551 | + Можливість добавити неціновий показник на 0 предмет | ||
| 552 | + | ||
| 553 | + | ||
| 554 | +Відображення заголовку нецінового показника на предмет | ||
| 555 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 556 | + ... viewer tender_owner provider provider1 | ||
| 557 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 558 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 559 | + ... add_item_meat | ||
| 560 | + Звірити відображення поля title у новоствореному неціновому показнику для усіх користувачів | ||
| 561 | + | ||
| 562 | + | ||
| 563 | +Відображення опису нецінових показників на предмет | ||
| 564 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 565 | + ... viewer | ||
| 566 | + ... ${USERS.users['${viewer}'].broker} | ||
| 567 | + ... add_item_meat | ||
| 568 | + Звірити відображення поля description у новоствореному неціновому показнику для користувача ${viewer} | ||
| 569 | + | ||
| 570 | + | ||
| 571 | +Відображення відношення нецінових показників на предмет | ||
| 572 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення нецінових показників | ||
| 573 | + ... viewer | ||
| 574 | + ... ${USERS.users['${viewer}'].broker} | ||
| 575 | + ... add_item_meat | ||
| 576 | + Звірити відображення поля featureOf у новоствореному неціновому показнику для користувача ${viewer} | ||
| 577 | + | ||
| 578 | + | ||
| 579 | +Можливість видалити неціновий показник на предмет | ||
| 580 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування тендера | ||
| 581 | + ... tender_owner | ||
| 582 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 583 | + ... delete_tender_meat | ||
| 584 | + Можливість видалити -1 неціновий показник | ||
| 585 | + | ||
| 586 | +############################################################################################## | ||
| 587 | +# QUESTIONS | ||
| 588 | +############################################################################################## | ||
| 589 | + | ||
| 590 | +Можливість задати запитання на тендер | ||
| 591 | + [Tags] ${USERS.users['${provider}'].broker}: Задання запитання | ||
| 592 | + ... provider | ||
| 593 | + ... ${USERS.users['${provider}'].broker} | ||
| 594 | + ... question_to_tender | ||
| 595 | + [Setup] Дочекатись дати початку періоду уточнень ${provider} ${TENDER['TENDER_UAID']} | ||
| 596 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 597 | + Можливість задати запитання на тендер користувачем ${provider} | ||
| 598 | + | ||
| 599 | + | ||
| 600 | +Відображення заголовку анонімного питання на тендер без відповіді | ||
| 601 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення запитання | ||
| 602 | + ... viewer | ||
| 603 | + ... ${USERS.users['${viewer}'].broker} | ||
| 604 | + ... question_to_tender | ||
| 605 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 606 | + Звірити відображення поля title запитання для усіх користувачів | ||
| 607 | + | ||
| 608 | + | ||
| 609 | +Відображення опису анонімного питання на тендер без відповіді | ||
| 610 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення запитання | ||
| 611 | + ... viewer | ||
| 612 | + ... ${USERS.users['${viewer}'].broker} | ||
| 613 | + ... question_to_tender | ||
| 614 | + Звірити відображення поля description запитання для користувача ${viewer} | ||
| 615 | + | ||
| 616 | + | ||
| 617 | +Можливість відповісти на запитання на тендер | ||
| 618 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Відповідь на запитання | ||
| 619 | + ... tender_owner | ||
| 620 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 621 | + ... answer_question_to_tender | ||
| 622 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 623 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 624 | + Можливість відповісти на запитання | ||
| 625 | + | ||
| 626 | + | ||
| 627 | +Відображення відповіді на запитання на тендер | ||
| 628 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання | ||
| 629 | + ... viewer | ||
| 630 | + ... ${USERS.users['${viewer}'].broker} | ||
| 631 | + ... answer_question_to_tender | ||
| 632 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 633 | + Звірити відображення поля answer запитання для користувача ${viewer} | ||
| 634 | + | ||
| 635 | + | ||
| 636 | +Можливість задати запитання на перший предмет | ||
| 637 | + [Tags] ${USERS.users['${provider}'].broker}: Задання запитання | ||
| 638 | + ... provider | ||
| 639 | + ... ${USERS.users['${provider}'].broker} | ||
| 640 | + ... question_to_item | ||
| 641 | + [Setup] Дочекатись дати початку періоду уточнень ${provider} ${TENDER['TENDER_UAID']} | ||
| 642 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 643 | + Можливість задати запитання на 0 предмет користувачем ${provider} | ||
| 644 | + | ||
| 645 | + | ||
| 646 | +Відображення заголовку анонімного питання на перший предмет без відповіді | ||
| 647 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення запитання | ||
| 648 | + ... viewer | ||
| 649 | + ... ${USERS.users['${viewer}'].broker} | ||
| 650 | + ... question_to_item | ||
| 651 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 652 | + Звірити відображення поля title запитання для усіх користувачів | ||
| 653 | + | ||
| 654 | + | ||
| 655 | +Відображення опису анонімного питання на перший предмет без відповіді | ||
| 656 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення запитання | ||
| 657 | + ... viewer | ||
| 658 | + ... ${USERS.users['${viewer}'].broker} | ||
| 659 | + ... question_to_item | ||
| 660 | + Звірити відображення поля description запитання для користувача ${viewer} | ||
| 661 | + | ||
| 662 | + | ||
| 663 | +Можливість відповісти на запитання на перший предмет | ||
| 664 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Відповідь на запитання | ||
| 665 | + ... tender_owner | ||
| 666 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 667 | + ... answer_question_to_item | ||
| 668 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 669 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 670 | + Можливість відповісти на запитання | ||
| 671 | + | ||
| 672 | + | ||
| 673 | +Відображення відповіді на запитання на перший предмет | ||
| 674 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання | ||
| 675 | + ... viewer | ||
| 676 | + ... ${USERS.users['${viewer}'].broker} | ||
| 677 | + ... answer_question_to_item | ||
| 678 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 679 | + Звірити відображення поля answer запитання для користувача ${viewer} | ||
| 680 | + | ||
| 681 | + | ||
| 682 | +Можливість задати запитання на перший лот | ||
| 683 | + [Tags] ${USERS.users['${provider}'].broker}: Задання запитання | ||
| 684 | + ... provider | ||
| 685 | + ... ${USERS.users['${provider}'].broker} | ||
| 686 | + ... question_to_lot | ||
| 687 | + [Setup] Дочекатись дати початку періоду уточнень ${provider} ${TENDER['TENDER_UAID']} | ||
| 688 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 689 | + Можливість задати запитання на 0 лот користувачем ${provider} | ||
| 690 | + | ||
| 691 | + | ||
| 692 | +Відображення заголовку анонімного питання на перший лот без відповіді | ||
| 693 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення запитання | ||
| 694 | + ... viewer | ||
| 695 | + ... ${USERS.users['${viewer}'].broker} | ||
| 696 | + ... question_to_lot | ||
| 697 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 698 | + Звірити відображення поля title запитання для усіх користувачів | ||
| 699 | + | ||
| 700 | + | ||
| 701 | +Відображення опису анонімного питання на перший лот без відповіді | ||
| 702 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення запитання | ||
| 703 | + ... viewer | ||
| 704 | + ... ${USERS.users['${viewer}'].broker} | ||
| 705 | + ... question_to_lot | ||
| 706 | + Звірити відображення поля description запитання для користувача ${viewer} | ||
| 707 | + | ||
| 708 | + | ||
| 709 | +Можливість відповісти на запитання на перший лот | ||
| 710 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Відповідь на запитання | ||
| 711 | + ... tender_owner | ||
| 712 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 713 | + ... answer_question_to_lot | ||
| 714 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 715 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 716 | + Можливість відповісти на запитання | ||
| 717 | + | ||
| 718 | + | ||
| 719 | +Відображення відповіді на запитання на перший лот | ||
| 720 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання | ||
| 721 | + ... viewer | ||
| 722 | + ... ${USERS.users['${viewer}'].broker} | ||
| 723 | + ... answer_question_to_lot | ||
| 724 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 725 | + Звірити відображення поля answer запитання для користувача ${viewer} | ||
| 726 | + | ||
| 727 | +############################################################################################## | ||
| 728 | +# BIDDING | ||
| 729 | +############################################################################################## | ||
| 730 | + | ||
| 731 | +Неможливість подати пропозицію до початку періоду подачі пропозицій першим учасником | ||
| 732 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 733 | + ... provider | ||
| 734 | + ... ${USERS.users['${provider}'].broker} | ||
| 735 | + ... bid_before_bid_period | ||
| 736 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 737 | + Run Keyword And Expect Error * Можливість подати цінову пропозицію користувачем ${provider} | ||
| 738 | + | ||
| 739 | + | ||
| 740 | +Неможливість подати цінову пропозицію без прив’язки до лоту | ||
| 741 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 742 | + ... provider | ||
| 743 | + ... ${USERS.users['${provider}'].broker} | ||
| 744 | + ... bid_without_related_lot | ||
| 745 | + [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} | ||
| 746 | + Неможливість подати цінову пропозицію без прив’язки до лоту користувачем ${provider} | ||
| 747 | + | ||
| 748 | + | ||
| 749 | +Неможливість подати цінову пропозицію без нецінових показників | ||
| 750 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 751 | + ... provider | ||
| 752 | + ... ${USERS.users['${provider}'].broker} | ||
| 753 | + ... bid_without_parameters | ||
| 754 | + [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} | ||
| 755 | + Неможливість подати цінову пропозицію без нецінових показників користувачем ${provider} | ||
| 756 | + | ||
| 757 | + | ||
| 758 | +Можливість подати пропозицію першим учасником | ||
| 759 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 760 | + ... provider | ||
| 761 | + ... ${USERS.users['${provider}'].broker} | ||
| 762 | + ... provider_bid | ||
| 763 | + [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} | ||
| 764 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 765 | + Можливість подати цінову пропозицію користувачем ${provider} | ||
| 766 | + | ||
| 767 | +Можливість змінити пропозицію до 50000 першим учасником | ||
| 768 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 769 | + ... provider | ||
| 770 | + ... ${USERS.users['${provider}'].broker} | ||
| 771 | + ... provider_bid_modify | ||
| 772 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 773 | + Можливість змінити пропозицію до 50000 користувачем ${provider} | ||
| 774 | + | ||
| 775 | + | ||
| 776 | +Можливість змінити пропозицію до 10 першим учасником | ||
| 777 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 778 | + ... provider | ||
| 779 | + ... ${USERS.users['${provider}'].broker} | ||
| 780 | + ... provider_bid_modify | ||
| 781 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 782 | + Можливість змінити пропозицію до 10 користувачем ${provider} | ||
| 783 | + | ||
| 784 | + | ||
| 785 | +Можливість завантажити документ в пропозицію першим учасником | ||
| 786 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 787 | + ... provider | ||
| 788 | + ... ${USERS.users['${provider}'].broker} | ||
| 789 | + ... provider_bid_modify | ||
| 790 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 791 | + Можливість завантажити документ в пропозицію користувачем ${provider} | ||
| 792 | + | ||
| 793 | + | ||
| 794 | +Можливість змінити документацію цінової пропозиції першим учасником | ||
| 795 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 796 | + ... provider | ||
| 797 | + ... ${USERS.users['${provider}'].broker} | ||
| 798 | + ... add_bid_doc | ||
| 799 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 800 | + Можливість змінити документацію цінової пропозиції користувачем ${provider} | ||
| 801 | + | ||
| 802 | + | ||
| 803 | +Можливість подати пропозицію другим учасником | ||
| 804 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 805 | + ... provider1 | ||
| 806 | + ... ${USERS.users['${provider1}'].broker} | ||
| 807 | + ... provider1_bid | ||
| 808 | + [Setup] Дочекатись дати початку прийому пропозицій ${provider1} ${TENDER['TENDER_UAID']} | ||
| 809 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 810 | + Можливість подати цінову пропозицію користувачем ${provider1} | ||
| 811 | + | ||
| 812 | +############################################################################################## | ||
| 813 | +# ABOVETRHESHOLD BIDDING | ||
| 814 | +############################################################################################## | ||
| 815 | + | ||
| 816 | +Можливість змінити документацію цінової пропозиції з публічної на приватну | ||
| 817 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 818 | + ... provider | ||
| 819 | + ... ${USERS.users['${provider}'].broker} | ||
| 820 | + ... openeu_provider_bid_private_doc | ||
| 821 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 822 | + Можливість змінити документацію цінової пропозиції з публічної на приватну учасником ${provider} | ||
| 823 | + | ||
| 824 | + | ||
| 825 | +Можливість завантажити фінансовий документ до пропозиції першим учасником | ||
| 826 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 827 | + ... provider | ||
| 828 | + ... ${USERS.users['${provider}'].broker} | ||
| 829 | + ... openeu_provider_bid_financial_doc | ||
| 830 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 831 | + Можливість завантажити financial_documents документ до пропозиції учасником ${provider} | ||
| 832 | + | ||
| 833 | + | ||
| 834 | +Можливість завантажити кваліфікаційний документ до пропозиції першим учасником | ||
| 835 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 836 | + ... provider | ||
| 837 | + ... ${USERS.users['${provider}'].broker} | ||
| 838 | + ... openeu_provider_bid_qualification_doc | ||
| 839 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 840 | + Можливість завантажити qualification_documents документ до пропозиції учасником ${provider} | ||
| 841 | + | ||
| 842 | + | ||
| 843 | +Можливість завантажити документ для критеріїв прийнятності до пропозиції першим учасником | ||
| 844 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 845 | + ... provider | ||
| 846 | + ... ${USERS.users['${provider}'].broker} | ||
| 847 | + ... openeu_provider_bid_eligibility_doc | ||
| 848 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 849 | + Можливість завантажити eligibility_documents документ до пропозиції учасником ${provider} | ||
| 850 | + | ||
| 851 | + | ||
| 852 | +Можливість редагувати однопредметний тендер більше ніж за 7 днів до завершення періоду подання пропозицій | ||
| 853 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати тендер | ||
| 854 | + ... tender_owner | ||
| 855 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 856 | + ... open_modify_tender_in_tendering_perion | ||
| 857 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 858 | + Можливість змінити поле description тендера на description | ||
| 859 | + | ||
| 860 | + | ||
| 861 | +Відображення зміни статусу першої пропозицій після редагування інформації про тендер | ||
| 862 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 863 | + ... provider | ||
| 864 | + ... ${USERS.users['${provider}'].broker} | ||
| 865 | + ... open_confirm_first_bid | ||
| 866 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 867 | + Відображення зміни статусу пропозицій на invalid для учасника ${provider} | ||
| 868 | + | ||
| 869 | + | ||
| 870 | +Відображення зміни статусу другої пропозицій після редагування інформації про тендер | ||
| 871 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 872 | + ... provider1 | ||
| 873 | + ... ${USERS.users['${provider1}'].broker} | ||
| 874 | + ... open_confirm_second_bid | ||
| 875 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
| 876 | + Відображення зміни статусу пропозицій на invalid для учасника ${provider1} | ||
| 877 | + | ||
| 878 | + | ||
| 879 | +Можливість оновити статус цінової пропозиції першим учасником | ||
| 880 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 881 | + ... provider | ||
| 882 | + ... ${USERS.users['${provider}'].broker} | ||
| 883 | + ... open_confirm_first_bid | ||
| 884 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 885 | + Можливість оновити статус цінової пропозиції учасником ${provider} | ||
| 886 | + | ||
| 887 | + | ||
| 888 | +Можливість оновити статус цінової пропозиції другим учасником | ||
| 889 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 890 | + ... provider1 | ||
| 891 | + ... ${USERS.users['${provider1}'].broker} | ||
| 892 | + ... open_confirm_second_bid | ||
| 893 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 894 | + Можливість оновити статус цінової пропозиції учасником ${provider1} | ||
| 895 | + | ||
| 896 | +############################################################################################## | ||
| 897 | + | ||
| 898 | +Можливість скасувати пропозицію | ||
| 899 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 900 | + ... provider | ||
| 901 | + ... ${USERS.users['${provider}'].broker} | ||
| 902 | + ... provider_bid_canceled | ||
| 903 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 904 | + Можливість скасувати цінову пропозицію користувачем ${provider} | ||
| 905 | + | ||
| 906 | + | ||
| 907 | +Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | ||
| 908 | + [Tags] ${USERS.users['${viewer}'].broker}: Подання пропозиції | ||
| 909 | + ... viewer | ||
| 910 | + ... ${USERS.users['${viewer}'].broker} | ||
| 911 | + ... provider_bid provider1_bid | ||
| 912 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 913 | + Require Failure ${viewer} Отримати інформацію із тендера ${TENDER['TENDER_UAID']} bids | ||
| 914 | + | ||
| 915 | +############################################################################################## | ||
| 916 | +# AUCTION PERIOD | ||
| 917 | +############################################################################################## | ||
| 918 | + | ||
| 919 | +Неможливість завантажити документ першим учасником після закінчення прийому пропозицій | ||
| 920 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 921 | + ... provider1 | ||
| 922 | + ... ${USERS.users['${provider1}'].broker} | ||
| 923 | + ... provider1_bid | ||
| 924 | + [Setup] Дочекатись дати закінчення прийому пропозицій ${viewer} ${TENDER['TENDER_UAID']} | ||
| 925 | + Run Keyword And Expect Error * Можливість завантажити документ в пропозицію користувачем ${provider} | ||
| 926 | + | ||
| 927 | +Неможливість змінити існуючу документацію пропозиції першим учасником після закінчення прийому пропозицій | ||
| 928 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 929 | + ... provider1 | ||
| 930 | + ... ${USERS.users['${provider1}'].broker} | ||
| 931 | + ... provider1_bid | ||
| 932 | + Run Keyword And Expect Error * Можливість змінити документацію цінової пропозиції користувачем ${provider} | ||
| 933 | + | ||
| 934 | + | ||
| 935 | +Неможливість задати запитання на тендер після закінчення періоду уточнень | ||
| 936 | + [Tags] ${USERS.users['${provider}'].broker}: Задання запитання | ||
| 937 | + ... provider | ||
| 938 | + ... ${USERS.users['${provider}'].broker} | ||
| 939 | + ... question_to_tender_after_bid_period | ||
| 940 | + [Setup] Дочекатись дати закінчення прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} | ||
| 941 | + Run Keyword And Expect Error * Можливість задати запитання на тендер користувачем ${provider} | ||
| 942 | + | ||
| 943 | +Неможливість задати запитання на перший предмет після закінчення періоду уточнень | ||
| 944 | + [Tags] ${USERS.users['${provider}'].broker}: Задання запитання | ||
| 945 | + ... provider | ||
| 946 | + ... ${USERS.users['${provider}'].broker} | ||
| 947 | + ... question_to_item_after_bid_period | ||
| 948 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 949 | + Run Keyword And Expect Error * Можливість задати запитання на 0 предмет користувачем ${provider} | ||
| 950 | + | ||
| 951 | +Неможливість задати запитання на перший лот після закінчення періоду уточнень | ||
| 952 | + [Tags] ${USERS.users['${provider}'].broker}: Задання запитання | ||
| 953 | + ... provider | ||
| 954 | + ... ${USERS.users['${provider}'].broker} | ||
| 955 | + ... question_to_lot_after_bid_period | ||
| 956 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 957 | + Run Keyword And Expect Error * Можливість задати запитання на 0 лот користувачем ${provider} | ||
| 958 | + | ||
| 959 | + | ||
| 960 | +Неможливість змінити цінову пропозицію до 50000 другим учасником після закінчення прийому пропозицій | ||
| 961 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 962 | + ... provider1 | ||
| 963 | + ... ${USERS.users['${provider1}'].broker} | ||
| 964 | + ... provider1_bid | ||
| 965 | + [Setup] Дочекатись дати закінчення прийому пропозицій ${provider1} ${TENDER['TENDER_UAID']} | ||
| 966 | + Run Keyword And Expect Error * Можливість змінити пропозицію до 50000 користувачем ${provider1} | ||
| 967 | + | ||
| 968 | + | ||
| 969 | +Неможливість змінити цінову пропозицію до 1 другим учасником після закінчення прийому пропозицій | ||
| 970 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 971 | + ... provider1 | ||
| 972 | + ... ${USERS.users['${provider1}'].broker} | ||
| 973 | + ... provider1_bid | ||
| 974 | + Run Keyword And Expect Error * Можливість змінити пропозицію до 1 користувачем ${provider1} | ||
| 975 | + | ||
| 976 | +Неможливість скасувати пропозицію другим учасником після закінчення прийому пропозицій | ||
| 977 | + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції | ||
| 978 | + ... provider1 | ||
| 979 | + ... ${USERS.users['${provider1}'].broker} | ||
| 980 | + ... provider1_bid | ||
| 981 | + Run Keyword And Expect Error * Можливість скасувати цінову пропозицію користувачем ${provider1} | ||
| 982 | + | ||
| 983 | + | ||
| 984 | +############################################################################################## | ||
| 985 | +# OPENEU Pre-Qualification | ||
| 986 | +############################################################################################## | ||
| 987 | + | ||
| 988 | +Неможливість додати документацію до тендера під час кваліфікації | ||
| 989 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації | ||
| 990 | + ... tender_owner | ||
| 991 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 992 | + ... pre-qualification_add_doc_to_tender | ||
| 993 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 994 | + Run Keyword And Expect Error * Можливість додати документацію до тендера | ||
| 995 | + | ||
| 996 | + | ||
| 997 | +Неможливість додати документацію до першого лоту під час кваліфікації | ||
| 998 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації | ||
| 999 | + ... tender_owner | ||
| 1000 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1001 | + ... pre-qualification_add_doc_to_lot | ||
| 1002 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1003 | + Run Keyword And Expect Error * Можливість додати документацію до 0 лоту | ||
| 1004 | + | ||
| 1005 | + | ||
| 1006 | +Відображення статусу першої пропозиції кваліфікації | ||
| 1007 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1008 | + ... tender_owner | ||
| 1009 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1010 | + ... pre-qualification_view | ||
| 1011 | + [Setup] Дочекатись дати закінчення прийому пропозицій ${tender_owner} ${TENDER['TENDER_UAID']} | ||
| 1012 | + Звірити відображення поля qualifications[0].status тендера із pending для користувача ${tender_owner} | ||
| 1013 | + | ||
| 1014 | + | ||
| 1015 | +Відображення статусу другої пропозиції кваліфікації | ||
| 1016 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1017 | + ... tender_owner | ||
| 1018 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1019 | + ... pre-qualification_view | ||
| 1020 | + [Setup] Дочекатись дати закінчення прийому пропозицій ${tender_owner} ${TENDER['TENDER_UAID']} | ||
| 1021 | + Звірити відображення поля qualifications[1].status тендера із pending для користувача ${tender_owner} | ||
| 1022 | + | ||
| 1023 | + | ||
| 1024 | +Можливість завантажити документ у кваліфікацію пропозиції першого учасника | ||
| 1025 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1026 | + ... tender_owner | ||
| 1027 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1028 | + ... pre-qualification_fist_bid_doc | ||
| 1029 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1030 | + Можливість завантажити документ у кваліфікацію 0 пропозиції | ||
| 1031 | + | ||
| 1032 | + | ||
| 1033 | +Можливість підтвердити першу пропозицію кваліфікації | ||
| 1034 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1035 | + ... tender_owner | ||
| 1036 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1037 | + ... pre-qualification_approve_first_bid | ||
| 1038 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1039 | + Можливість підтвердити 0 пропозицію кваліфікації | ||
| 1040 | + | ||
| 1041 | + | ||
| 1042 | +Можливість завантажити документ у кваліфікацію пропозиції другого учасника | ||
| 1043 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1044 | + ... tender_owner | ||
| 1045 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1046 | + ... pre-qualification_second_bid_doc | ||
| 1047 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1048 | + Можливість завантажити документ у кваліфікацію 1 пропозиції | ||
| 1049 | + | ||
| 1050 | + | ||
| 1051 | +Можливість відхилити другу пропозицію кваліфікації | ||
| 1052 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1053 | + ... tender_owner | ||
| 1054 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1055 | + ... pre-qualification_reject_second_bid | ||
| 1056 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1057 | + Можливість відхилити 1 пропозиції кваліфікації | ||
| 1058 | + | ||
| 1059 | + | ||
| 1060 | +Можливість скасувати рішення кваліфікації для другої пропопозиції | ||
| 1061 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1062 | + ... tender_owner | ||
| 1063 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1064 | + ... pre-qualification_cancel_second_bid_qualification | ||
| 1065 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1066 | + Можливість скасувати рішення кваліфікації для 1 пропопозиції | ||
| 1067 | + | ||
| 1068 | + | ||
| 1069 | +Можливість підтвердити другу пропозицію кваліфікації | ||
| 1070 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1071 | + ... tender_owner | ||
| 1072 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1073 | + ... pre-qualification_approve_second_bid | ||
| 1074 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1075 | + Можливість підтвердити 2 пропозицію кваліфікації | ||
| 1076 | + | ||
| 1077 | + | ||
| 1078 | +Можливість затвердити остаточне рішення кваліфікації | ||
| 1079 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Кваліфікація | ||
| 1080 | + ... tender_owner | ||
| 1081 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 1082 | + ... pre-qualification_approve_qualifications | ||
| 1083 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1084 | + Можливість затвердити остаточне рішення кваліфікації |
| @@ -16,8 +16,7 @@ Suite Teardown Test Suite Teardown | @@ -16,8 +16,7 @@ Suite Teardown Test Suite Teardown | ||
| 16 | ... minimal | 16 | ... minimal |
| 17 | Завантажити дані про тендер | 17 | Завантажити дані про тендер |
| 18 | :FOR ${username} IN ${viewer} ${tender_owner} | 18 | :FOR ${username} IN ${viewer} ${tender_owner} |
| 19 | - \ ${resp}= Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 20 | - Log ${resp} | 19 | + \ ${resp}= Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 21 | 20 | ||
| 22 | ############################################################################################## | 21 | ############################################################################################## |
| 23 | # AWARDS | 22 | # AWARDS |
| @@ -28,31 +27,33 @@ Suite Teardown Test Suite Teardown | @@ -28,31 +27,33 @@ Suite Teardown Test Suite Teardown | ||
| 28 | ... tender_owner | 27 | ... tender_owner |
| 29 | ... ${USERS.users['${tender_owner}'].broker} | 28 | ... ${USERS.users['${tender_owner}'].broker} |
| 30 | :FOR ${username} IN ${viewer} ${tender_owner} | 29 | :FOR ${username} IN ${viewer} ${tender_owner} |
| 31 | - \ ${qualification_status}= Отримати дані із тендера ${tender_owner} status ${TENDER['LOT_ID']} | 30 | + \ ${qualification_status}= Отримати дані із тендера ${tender_owner} ${TENDER['TENDER_UAID']} status ${TENDER['LOT_ID']} |
| 32 | \ Run Keyword IF '${TENDER['LOT_ID']}' Should Be Equal ${qualification_status} active | 31 | \ Run Keyword IF '${TENDER['LOT_ID']}' Should Be Equal ${qualification_status} active |
| 33 | \ ... ELSE Should Be Equal ${qualification_status} active.qualification | 32 | \ ... ELSE Should Be Equal ${qualification_status} active.qualification |
| 34 | 33 | ||
| 34 | + | ||
| 35 | Відображення вартості номенклатури постачальника | 35 | Відображення вартості номенклатури постачальника |
| 36 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера | 36 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера |
| 37 | ... tender_owner | 37 | ... tender_owner |
| 38 | ... ${USERS.users['${tender_owner}'].broker} | 38 | ... ${USERS.users['${tender_owner}'].broker} |
| 39 | :FOR ${username} IN ${viewer} ${tender_owner} | 39 | :FOR ${username} IN ${viewer} ${tender_owner} |
| 40 | - \ Отримати дані із тендера ${username} awards[0].value.amount | 40 | + \ Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} awards[0].value.amount |
| 41 | + | ||
| 41 | 42 | ||
| 42 | Відображення імені постачальника | 43 | Відображення імені постачальника |
| 43 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера | 44 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера |
| 44 | ... tender_owner | 45 | ... tender_owner |
| 45 | ... ${USERS.users['${tender_owner}'].broker} | 46 | ... ${USERS.users['${tender_owner}'].broker} |
| 46 | :FOR ${username} IN ${viewer} ${tender_owner} | 47 | :FOR ${username} IN ${viewer} ${tender_owner} |
| 47 | - \ Отримати дані із тендера ${username} awards[0].suppliers[0].name | 48 | + \ Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} awards[0].suppliers[0].name |
| 49 | + | ||
| 48 | 50 | ||
| 49 | Відображення ідентифікатора постачальника | 51 | Відображення ідентифікатора постачальника |
| 50 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера | 52 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера |
| 51 | ... tender_owner | 53 | ... tender_owner |
| 52 | ... ${USERS.users['${tender_owner}'].broker} | 54 | ... ${USERS.users['${tender_owner}'].broker} |
| 53 | :FOR ${username} IN ${viewer} ${tender_owner} | 55 | :FOR ${username} IN ${viewer} ${tender_owner} |
| 54 | - \ Отримати дані із тендера ${username} awards[0].suppliers[0].identifier.id | ||
| 55 | - | 56 | + \ Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} awards[0].suppliers[0].identifier.id |
| 56 | 57 | ||
| 57 | ############################################################################################## | 58 | ############################################################################################## |
| 58 | # QUALIFICATION | 59 | # QUALIFICATION |
| @@ -63,31 +64,36 @@ Suite Teardown Test Suite Teardown | @@ -63,31 +64,36 @@ Suite Teardown Test Suite Teardown | ||
| 63 | ... tender_owner | 64 | ... tender_owner |
| 64 | ... ${USERS.users['${tender_owner}'].broker} | 65 | ... ${USERS.users['${tender_owner}'].broker} |
| 65 | ${filepath}= create_fake_doc | 66 | ${filepath}= create_fake_doc |
| 66 | - Викликати для учасника ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${filepath} ${TENDER['TENDER_UAID']} 0 ${TENDER['LOT_ID']} | 67 | + Run As ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${filepath} ${TENDER['TENDER_UAID']} 0 |
| 68 | + | ||
| 67 | 69 | ||
| 68 | Можливість підтвердити постачальника | 70 | Можливість підтвердити постачальника |
| 69 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі | 71 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі |
| 70 | ... tender_owner | 72 | ... tender_owner |
| 71 | ... ${USERS.users['${tender_owner}'].broker} | 73 | ... ${USERS.users['${tender_owner}'].broker} |
| 72 | ... minimal | 74 | ... minimal |
| 73 | - Викликати для учасника ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 0 | 75 | + Run As ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 0 |
| 76 | + | ||
| 77 | + | ||
| 74 | Можливість скасувати рішення кваліфікації | 78 | Можливість скасувати рішення кваліфікації |
| 75 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі | 79 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі |
| 76 | ... tender_owner | 80 | ... tender_owner |
| 77 | ... ${USERS.users['${tender_owner}'].broker} | 81 | ... ${USERS.users['${tender_owner}'].broker} |
| 78 | ... minimal | 82 | ... minimal |
| 79 | - Викликати для учасника ${tender_owner} Скасування рішення кваліфікаційної комісії ${TENDER['TENDER_UAID']} 0 | 83 | + Run As ${tender_owner} Скасування рішення кваліфікаційної комісії ${TENDER['TENDER_UAID']} 0 |
| 84 | + | ||
| 80 | 85 | ||
| 81 | Можливість завантажити документ рішення кваліфікаційної комісії для підтвердження нового постачальника | 86 | Можливість завантажити документ рішення кваліфікаційної комісії для підтвердження нового постачальника |
| 82 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для прямої закупівлі | 87 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для прямої закупівлі |
| 83 | ... tender_owner | 88 | ... tender_owner |
| 84 | ... ${USERS.users['${tender_owner}'].broker} | 89 | ... ${USERS.users['${tender_owner}'].broker} |
| 85 | ${filepath}= create_fake_doc | 90 | ${filepath}= create_fake_doc |
| 86 | - Викликати для учасника ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${filepath} ${TENDER['TENDER_UAID']} 1 ${TENDER['LOT_ID']} | 91 | + Run As ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${filepath} ${TENDER['TENDER_UAID']} 1 |
| 92 | + | ||
| 87 | 93 | ||
| 88 | Можливість підтвердити нового постачальника | 94 | Можливість підтвердити нового постачальника |
| 89 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі | 95 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі |
| 90 | ... tender_owner | 96 | ... tender_owner |
| 91 | ... ${USERS.users['${tender_owner}'].broker} | 97 | ... ${USERS.users['${tender_owner}'].broker} |
| 92 | ... minimal | 98 | ... minimal |
| 93 | - Викликати для учасника ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 1 | 99 | + Run As ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 1 |
| @@ -19,28 +19,28 @@ from robot.output.loggerhelper import Message | @@ -19,28 +19,28 @@ from robot.output.loggerhelper import Message | ||
| 19 | from .initial_data import ( | 19 | from .initial_data import ( |
| 20 | create_fake_doc, | 20 | create_fake_doc, |
| 21 | create_fake_sentence, | 21 | create_fake_sentence, |
| 22 | + fake, | ||
| 22 | test_bid_data, | 23 | test_bid_data, |
| 24 | + test_bid_value, | ||
| 23 | test_claim_answer_data, | 25 | test_claim_answer_data, |
| 24 | test_claim_data, | 26 | test_claim_data, |
| 25 | test_complaint_data, | 27 | test_complaint_data, |
| 26 | test_complaint_reply_data, | 28 | test_complaint_reply_data, |
| 27 | test_confirm_data, | 29 | test_confirm_data, |
| 30 | + test_feature_data, | ||
| 28 | test_invalid_features_data, | 31 | test_invalid_features_data, |
| 29 | test_item_data, | 32 | test_item_data, |
| 30 | test_lot_complaint_data, | 33 | test_lot_complaint_data, |
| 31 | test_lot_data, | 34 | test_lot_data, |
| 32 | test_lot_document_data, | 35 | test_lot_document_data, |
| 33 | - test_lot_question_data, | 36 | + test_related_question, |
| 34 | test_question_answer_data, | 37 | test_question_answer_data, |
| 35 | test_question_data, | 38 | test_question_data, |
| 36 | test_supplier_data, | 39 | test_supplier_data, |
| 37 | test_tender_data, | 40 | test_tender_data, |
| 38 | test_tender_data_limited, | 41 | test_tender_data_limited, |
| 39 | - test_tender_data_meat, | ||
| 40 | - test_tender_data_multiple_items, | ||
| 41 | - test_tender_data_multiple_lots, | ||
| 42 | test_tender_data_openeu, | 42 | test_tender_data_openeu, |
| 43 | - test_tender_data_openua | 43 | + test_tender_data_openua, |
| 44 | ) | 44 | ) |
| 45 | from barbecue import chef | 45 | from barbecue import chef |
| 46 | from restkit import request | 46 | from restkit import request |
| @@ -117,10 +117,7 @@ def compare_date(left, right, accuracy="minute", absolute_delta=True): | @@ -117,10 +117,7 @@ def compare_date(left, right, accuracy="minute", absolute_delta=True): | ||
| 117 | 117 | ||
| 118 | 118 | ||
| 119 | def compare_coordinates(left_lat, left_lon, right_lat, right_lon, accuracy=0.1): | 119 | def compare_coordinates(left_lat, left_lon, right_lat, right_lon, accuracy=0.1): |
| 120 | - '''Compares dates with specified accuracy | ||
| 121 | - | ||
| 122 | - Before comparison dates are parsed into datetime.datetime format | ||
| 123 | - and localized. | 120 | + '''Compares coordinates with specified accuracy |
| 124 | 121 | ||
| 125 | :param left_lat: First coordinate latitude | 122 | :param left_lat: First coordinate latitude |
| 126 | :param left_lon: First coordinate longitude | 123 | :param left_lon: First coordinate longitude |
| @@ -135,7 +132,6 @@ def compare_coordinates(left_lat, left_lon, right_lat, right_lon, accuracy=0.1): | @@ -135,7 +132,6 @@ def compare_coordinates(left_lat, left_lon, right_lat, right_lon, accuracy=0.1): | ||
| 135 | :error: ValueError when there is problem with converting accuracy | 132 | :error: ValueError when there is problem with converting accuracy |
| 136 | into float value. When it will be catched warning will be | 133 | into float value. When it will be catched warning will be |
| 137 | given and accuracy will be set to 0.1. | 134 | given and accuracy will be set to 0.1. |
| 138 | - | ||
| 139 | ''' | 135 | ''' |
| 140 | for key, value in {'left_lat': left_lat, 'left_lon': left_lon, 'right_lat': right_lat, 'right_lon': right_lon}.iteritems(): | 136 | for key, value in {'left_lat': left_lat, 'left_lon': left_lon, 'right_lat': right_lat, 'right_lon': right_lon}.iteritems(): |
| 141 | if not isinstance(value, NUM_TYPES): | 137 | if not isinstance(value, NUM_TYPES): |
| @@ -263,13 +259,15 @@ def compute_intrs(brokers_data, used_brokers): | @@ -263,13 +259,15 @@ def compute_intrs(brokers_data, used_brokers): | ||
| 263 | return result | 259 | return result |
| 264 | 260 | ||
| 265 | 261 | ||
| 266 | -def prepare_test_tender_data(procedure_intervals, mode): | 262 | +def prepare_test_tender_data(procedure_intervals, tender_parameters): |
| 267 | # Get actual intervals by mode name | 263 | # Get actual intervals by mode name |
| 264 | + mode = tender_parameters['mode'] | ||
| 268 | if mode in procedure_intervals: | 265 | if mode in procedure_intervals: |
| 269 | intervals = procedure_intervals[mode] | 266 | intervals = procedure_intervals[mode] |
| 270 | else: | 267 | else: |
| 271 | intervals = procedure_intervals['default'] | 268 | intervals = procedure_intervals['default'] |
| 272 | LOGGER.log_message(Message(intervals)) | 269 | LOGGER.log_message(Message(intervals)) |
| 270 | + tender_parameters['intervals'] = intervals | ||
| 273 | 271 | ||
| 274 | # Set acceleration value for certain modes | 272 | # Set acceleration value for certain modes |
| 275 | if mode in ['openua', 'openeu']: | 273 | if mode in ['openua', 'openeu']: |
| @@ -282,24 +280,18 @@ def prepare_test_tender_data(procedure_intervals, mode): | @@ -282,24 +280,18 @@ def prepare_test_tender_data(procedure_intervals, mode): | ||
| 282 | assert 'accelerator' not in intervals.keys(), \ | 280 | assert 'accelerator' not in intervals.keys(), \ |
| 283 | "Accelerator is not available for mode '{0}'".format(mode) | 281 | "Accelerator is not available for mode '{0}'".format(mode) |
| 284 | 282 | ||
| 285 | - if mode == 'meat': | ||
| 286 | - return munchify({'data': test_tender_data_meat(intervals)}) | ||
| 287 | - elif mode == 'multiItem': | ||
| 288 | - return munchify({'data': test_tender_data_multiple_items(intervals)}) | ||
| 289 | - elif mode == 'multiLot': | ||
| 290 | - return munchify({'data': test_tender_data_multiple_lots(intervals)}) | ||
| 291 | - elif mode == 'negotiation': | ||
| 292 | - return munchify({'data': test_tender_data_limited(intervals, 'negotiation')}) | 283 | + if mode == 'negotiation': |
| 284 | + return munchify({'data': test_tender_data_limited(tender_parameters)}) | ||
| 293 | elif mode == 'negotiation.quick': | 285 | elif mode == 'negotiation.quick': |
| 294 | - return munchify({'data': test_tender_data_limited(intervals, 'negotiation.quick')}) | 286 | + return munchify({'data': test_tender_data_limited(tender_parameters)}) |
| 295 | elif mode == 'openeu': | 287 | elif mode == 'openeu': |
| 296 | - return munchify({'data': test_tender_data_openeu(intervals)}) | 288 | + return munchify({'data': test_tender_data_openeu(tender_parameters)}) |
| 297 | elif mode == 'openua': | 289 | elif mode == 'openua': |
| 298 | - return munchify({'data': test_tender_data_openua(intervals)}) | 290 | + return munchify({'data': test_tender_data_openua(tender_parameters)}) |
| 299 | elif mode == 'reporting': | 291 | elif mode == 'reporting': |
| 300 | - return munchify({'data': test_tender_data_limited(intervals, 'reporting')}) | ||
| 301 | - elif mode == 'single': | ||
| 302 | - return munchify({'data': test_tender_data(intervals)}) | 292 | + return munchify({'data': test_tender_data_limited(tender_parameters)}) |
| 293 | + elif mode == 'belowThreshold': | ||
| 294 | + return munchify({'data': test_tender_data(tender_parameters)}) | ||
| 303 | raise ValueError("Invalid mode for prepare_test_tender_data") | 295 | raise ValueError("Invalid mode for prepare_test_tender_data") |
| 304 | 296 | ||
| 305 | 297 | ||
| @@ -327,11 +319,6 @@ def set_access_key(tender, access_token): | @@ -327,11 +319,6 @@ def set_access_key(tender, access_token): | ||
| 327 | return tender | 319 | return tender |
| 328 | 320 | ||
| 329 | 321 | ||
| 330 | -def set_to_object(obj, attribute, value): | ||
| 331 | - xpathnew(obj, attribute, value, separator='.') | ||
| 332 | - return obj | ||
| 333 | - | ||
| 334 | - | ||
| 335 | def get_from_object(obj, attribute): | 322 | def get_from_object(obj, attribute): |
| 336 | """Gets data from a dictionary using a dotted accessor-string""" | 323 | """Gets data from a dictionary using a dotted accessor-string""" |
| 337 | jsonpath_expr = parse_path(attribute) | 324 | jsonpath_expr = parse_path(attribute) |
| @@ -342,6 +329,31 @@ def get_from_object(obj, attribute): | @@ -342,6 +329,31 @@ def get_from_object(obj, attribute): | ||
| 342 | raise AttributeError('Attribute not found: {0}'.format(attribute)) | 329 | raise AttributeError('Attribute not found: {0}'.format(attribute)) |
| 343 | 330 | ||
| 344 | 331 | ||
| 332 | +def set_to_object(obj, attribute, value): | ||
| 333 | + # Search the list index in path to value | ||
| 334 | + list_index = re.search('\d+', attribute) | ||
| 335 | + if list_index: | ||
| 336 | + list_index = list_index.group(0) | ||
| 337 | + parent, child = attribute.split('[' + list_index + '].')[:2] | ||
| 338 | + # Split attribute to path to lits (parent) and path to value in list element (child) | ||
| 339 | + try: | ||
| 340 | + # Get list from parent | ||
| 341 | + listing = get_from_object(obj, parent) | ||
| 342 | + # Create object with list_index if he don`t exist | ||
| 343 | + if len(listing) < int(list_index) + 1: | ||
| 344 | + listing.append({}) | ||
| 345 | + except AttributeError: | ||
| 346 | + # Create list if he don`t exist | ||
| 347 | + listing = [{}] | ||
| 348 | + # Update list in parent | ||
| 349 | + xpathnew(obj, parent, listing, separator='.') | ||
| 350 | + # Set value in obj | ||
| 351 | + xpathnew(obj, '.'.join([parent, list_index, child]), value, separator='.') | ||
| 352 | + else: | ||
| 353 | + xpathnew(obj, attribute, value, separator='.') | ||
| 354 | + return munchify(obj) | ||
| 355 | + | ||
| 356 | + | ||
| 345 | def wait_to_date(date_stamp): | 357 | def wait_to_date(date_stamp): |
| 346 | date = parse(date_stamp) | 358 | date = parse(date_stamp) |
| 347 | LOGGER.log_message(Message("date: {}".format(date.isoformat()), "INFO")) | 359 | LOGGER.log_message(Message("date: {}".format(date.isoformat()), "INFO")) |
| @@ -432,6 +444,26 @@ def get_document_index_by_id(data, document_id): | @@ -432,6 +444,26 @@ def get_document_index_by_id(data, document_id): | ||
| 432 | raise IndexError | 444 | raise IndexError |
| 433 | 445 | ||
| 434 | 446 | ||
| 447 | +def generate_test_bid_data(tender_data): | ||
| 448 | + bid = test_bid_data() | ||
| 449 | + if 'aboveThreshold' in tender_data['procurementMethodType']: | ||
| 450 | + bid.data.selfEligible = True | ||
| 451 | + bid.data.selfQualified = True | ||
| 452 | + if 'lots' in tender_data: | ||
| 453 | + bid.data.lotValues = [] | ||
| 454 | + for lot in tender_data['lots']: | ||
| 455 | + value = test_bid_value(lot['value']['amount']) | ||
| 456 | + value['relatedLot'] = lot.get('id', '') | ||
| 457 | + bid.data.lotValues.append(value) | ||
| 458 | + else: | ||
| 459 | + bid.data.update(test_bid_value(tender_data['value']['amount'])) | ||
| 460 | + if 'features' in tender_data: | ||
| 461 | + bid.data.parameters = [] | ||
| 462 | + for feature in tender_data['features']: | ||
| 463 | + parameter = {"value": fake.random_element(elements=(0.05, 0.01, 0)), "code": feature.get('code', '')} | ||
| 464 | + bid.data.parameters.append(parameter) | ||
| 465 | + return bid | ||
| 466 | + | ||
| 435 | 467 | ||
| 436 | # GUI Frontends common | 468 | # GUI Frontends common |
| 437 | def add_data_for_gui_frontends(tender_data): | 469 | def add_data_for_gui_frontends(tender_data): |
Please
register
or
login
to post a comment