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 | 8 | *** Variables *** |
| 9 | 9 | @{used_roles} viewer |
| 10 | 10 | |
| 11 | + | |
| 11 | 12 | *** Test Cases *** |
| 12 | 13 | Можливість знайти закупівлю по ідентифікатору |
| 13 | 14 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 14 | 15 | ... ${USERS.users['${viewer}'].broker} |
| 15 | 16 | Завантажити дані про тендер |
| 16 | - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | |
| 17 | + Run As ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | |
| 17 | 18 | |
| 18 | 19 | ############################################################################################## |
| 19 | 20 | # AUCTION |
| ... | ... | @@ -24,7 +25,7 @@ Suite Teardown Test Suite Teardown |
| 24 | 25 | ... viewer |
| 25 | 26 | ... ${USERS.users['${viewer}'].broker} |
| 26 | 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 | 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 | 46 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість дочекатися завершення аукціону |
| 39 | 47 | ... viewer |
| 40 | 48 | ... ${USERS.users['${viewer}'].broker} |
| 41 | 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 | 55 | ... viewer |
| 51 | 56 | ... ${USERS.users['${viewer}'].broker} |
| 52 | 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']} | |
| \ No newline at end of file | ... | ... |
| ... | ... | @@ -10,7 +10,8 @@ Library openprocurement_client_helper.py |
| 10 | 10 | Log Many ${USERS.users['${username}'].id_map} |
| 11 | 11 | ${status}= Run Keyword And Return Status Dictionary Should Contain Key ${USERS.users['${username}'].id_map} ${tender_uaid} |
| 12 | 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 | 15 | Set To Dictionary ${USERS.users['${username}'].id_map} ${tender_uaid} ${tender_id} |
| 15 | 16 | [return] ${tender_id} |
| 16 | 17 | |
| ... | ... | @@ -28,6 +29,37 @@ Library openprocurement_client_helper.py |
| 28 | 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 | 64 | [Documentation] Це слово використовується в майданчиків, тому потрібно, щоб воно було і тут |
| 33 | 65 | [Arguments] ${username} ${tender_data} |
| ... | ... | @@ -41,8 +73,6 @@ Library openprocurement_client_helper.py |
| 41 | 73 | ${access_token}= Get Variable Value ${tender.access.token} |
| 42 | 74 | Set To Dictionary ${USERS.users['${username}']} access_token=${access_token} |
| 43 | 75 | Set To Dictionary ${USERS.users['${username}']} tender_data=${tender} |
| 44 | - Log ${access_token} | |
| 45 | - Log ${tender.data.id} | |
| 46 | 76 | Log ${USERS.users['${username}'].tender_data} |
| 47 | 77 | [return] ${tender.data.tenderID} |
| 48 | 78 | |
| ... | ... | @@ -50,14 +80,17 @@ Library openprocurement_client_helper.py |
| 50 | 80 | Пошук тендера по ідентифікатору |
| 51 | 81 | [Arguments] ${username} ${tender_uaid} |
| 52 | 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 | 88 | [return] ${tender} |
| 55 | 89 | |
| 56 | 90 | |
| 57 | 91 | Оновити сторінку з тендером |
| 58 | 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 | 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 | 112 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
| 86 | 113 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| ... | ... | @@ -92,17 +119,9 @@ Library openprocurement_client_helper.py |
| 92 | 119 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
| 93 | 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 | 127 | [Arguments] ${username} ${tender_uaid} ${item} |
| ... | ... | @@ -111,163 +130,19 @@ Library openprocurement_client_helper.py |
| 111 | 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 | 141 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 117 | 142 | ${item_index}= get_object_index_by_id ${tender.data['items']} ${item_id} |
| 118 | 143 | Remove From List ${tender.data['items']} ${item_index} |
| 119 | 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 | 147 | # Lot operations |
| 273 | 148 | ############################################################################## |
| ... | ... | @@ -305,16 +180,6 @@ Library openprocurement_client_helper.py |
| 305 | 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 | 184 | [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} |
| 320 | 185 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| ... | ... | @@ -335,14 +200,111 @@ Library openprocurement_client_helper.py |
| 335 | 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 | 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 | 308 | [return] ${reply} |
| 347 | 309 | |
| 348 | 310 | ############################################################################## |
| ... | ... | @@ -465,6 +427,92 @@ Library openprocurement_client_helper.py |
| 465 | 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 | 516 | # Qualification operations |
| 469 | 517 | ############################################################################## |
| 470 | 518 | |
| ... | ... | @@ -473,14 +521,9 @@ Library openprocurement_client_helper.py |
| 473 | 521 | ... [Arguments] Username, tender uaid, qualification number and document to upload |
| 474 | 522 | ... [Description] Find tender using uaid, and call upload_qualification_document |
| 475 | 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 | 525 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 478 | 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 | 527 | Log ${doc} |
| 485 | 528 | [Return] ${doc} |
| 486 | 529 | |
| ... | ... | @@ -494,6 +537,10 @@ Library openprocurement_client_helper.py |
| 494 | 537 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 495 | 538 | ${award}= create_data_dict data.status active |
| 496 | 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 | 544 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} |
| 498 | 545 | Log ${reply} |
| 499 | 546 | |
| ... | ... | @@ -503,8 +550,8 @@ Library openprocurement_client_helper.py |
| 503 | 550 | ... [Arguments] Username, tender uaid and award number |
| 504 | 551 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_award |
| 505 | 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 | 555 | ${award}= create_data_dict data.status unsuccessful |
| 509 | 556 | Set To Dictionary ${award.data} id=${tender.data.awards[${award_num}].id} |
| 510 | 557 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} |
| ... | ... | @@ -517,8 +564,8 @@ Library openprocurement_client_helper.py |
| 517 | 564 | ... [Arguments] Username, tender uaid and award number |
| 518 | 565 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_award |
| 519 | 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 | 569 | ${award}= create_data_dict data.status cancelled |
| 523 | 570 | Set To Dictionary ${award.data} id=${tender.data.awards[${award_num}].id} |
| 524 | 571 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_award ${tender} ${award} |
| ... | ... | @@ -640,8 +687,8 @@ Library openprocurement_client_helper.py |
| 640 | 687 | ... [Arguments] Username, tender uaid and qualification number |
| 641 | 688 | ... [Description] Find tender using uaid, create data dict with active status and call patch_qualification |
| 642 | 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 | 692 | ${qualification}= create_data_dict data.status active |
| 646 | 693 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} eligible=${True} qualified=${True} |
| 647 | 694 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} |
| ... | ... | @@ -654,8 +701,8 @@ Library openprocurement_client_helper.py |
| 654 | 701 | ... [Arguments] Username, tender uaid and qualification number |
| 655 | 702 | ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_qualification |
| 656 | 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 | 706 | ${qualification}= create_data_dict data.status unsuccessful |
| 660 | 707 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} |
| 661 | 708 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} |
| ... | ... | @@ -680,8 +727,8 @@ Library openprocurement_client_helper.py |
| 680 | 727 | ... [Arguments] Username, tender uaid and qualification number |
| 681 | 728 | ... [Description] Find tender using uaid, create data dict with cancelled status and call patch_qualification |
| 682 | 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 | 732 | ${qualification}= create_data_dict data.status cancelled |
| 686 | 733 | Set To Dictionary ${qualification.data} id=${tender.data.qualifications[${qualification_num}].id} |
| 687 | 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 | 16 | ... minimal |
| 17 | 17 | Завантажити дані про тендер |
| 18 | 18 | :FOR ${username} IN ${viewer} ${tender_owner} |
| 19 | - \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | |
| 19 | + \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | |
| 20 | 20 | |
| 21 | 21 | ############################################################################################## |
| 22 | 22 | # CONTRACT |
| ... | ... | @@ -27,23 +27,26 @@ Suite Teardown Test Suite Teardown |
| 27 | 27 | ... tender_owner |
| 28 | 28 | ... ${USERS.users['${tender_owner}'].broker} |
| 29 | 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 | 33 | Дочекатися закічення stand still періоду |
| 33 | 34 | ${standstillEnd}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data.awards[1].complaintPeriod.endDate} |
| 34 | 35 | Дочекатись дати ${standstillEnd} |
| 35 | 36 | |
| 37 | + | |
| 36 | 38 | Можливість укласти угоду для закупівлі |
| 37 | 39 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для прямої закупівлі |
| 38 | 40 | ... tender_owner |
| 39 | 41 | ... ${USERS.users['${tender_owner}'].broker} |
| 40 | 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 | 47 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення статусу підписаної угоди з постачальником прямої закупівлі |
| 45 | 48 | ... viewer |
| 46 | 49 | ... ${USERS.users['${viewer}'].broker} |
| 47 | 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 | 2 | from datetime import timedelta |
| 3 | 3 | from faker import Factory |
| 4 | 4 | from munch import munchify |
| 5 | +from uuid import uuid4 | |
| 5 | 6 | from tempfile import NamedTemporaryFile |
| 6 | 7 | from .local_time import get_now |
| 7 | 8 | from op_faker import OP_Provider |
| ... | ... | @@ -46,7 +47,7 @@ def create_fake_doc(): |
| 46 | 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 | 51 | now = get_now() |
| 51 | 52 | value_amount = round(random.uniform(3000, 99999999999.99), 2) # max value equals to budget of Ukraine in hryvnias |
| 52 | 53 | data = { |
| ... | ... | @@ -68,11 +69,10 @@ def test_tender_data(intervals, periods=("enquiry", "tender")): |
| 68 | 69 | "amount": round(random.uniform(0.005, 0.03) * value_amount, 2), |
| 69 | 70 | "currency": u"UAH" |
| 70 | 71 | }, |
| 71 | - "items": [] | |
| 72 | + "items": [], | |
| 73 | + "features": [] | |
| 72 | 74 | } |
| 73 | 75 | data["procuringEntity"]["kind"] = "other" |
| 74 | - new_item = test_item_data() | |
| 75 | - data["items"].append(new_item) | |
| 76 | 76 | if data.get("mode") == "test": |
| 77 | 77 | data["title"] = u"[ТЕСТУВАННЯ] {}".format(data["title"]) |
| 78 | 78 | data["title_en"] = u"[TESTING] {}".format(data["title_en"]) |
| ... | ... | @@ -82,21 +82,57 @@ def test_tender_data(intervals, periods=("enquiry", "tender")): |
| 82 | 82 | for period_name in periods: |
| 83 | 83 | period_dict[period_name + "Period"] = {} |
| 84 | 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 | 86 | period_dict[period_name + "Period"][j + "Date"] = inc_dt.isoformat() |
| 87 | 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 | 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 | 129 | del data["submissionMethodDetails"] |
| 94 | 130 | del data["minimalStep"] |
| 95 | 131 | del data["enquiryPeriod"] |
| 96 | 132 | del data["tenderPeriod"] |
| 97 | 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 | 136 | cause_variants = ( |
| 101 | 137 | "artContestIP", |
| 102 | 138 | "noCompetition", |
| ... | ... | @@ -107,11 +143,11 @@ def test_tender_data_limited(intervals, procurement_method_type): |
| 107 | 143 | ) |
| 108 | 144 | cause = fake.random_element(cause_variants) |
| 109 | 145 | data.update({"cause": cause}) |
| 110 | - if procurement_method_type == "negotiation.quick": | |
| 146 | + if params['mode'] == "negotiation.quick": | |
| 111 | 147 | cause_variants = ('quick',) |
| 112 | 148 | cause = fake.random_element(cause_variants) |
| 113 | 149 | data.update({"cause": cause}) |
| 114 | - if procurement_method_type in ("negotiation", "negotiation.quick"): | |
| 150 | + if params['mode'] in ("negotiation", "negotiation.quick"): | |
| 115 | 151 | data.update({ |
| 116 | 152 | "procurementMethodDetails": "quick, accelerator=1440", |
| 117 | 153 | "causeDescription": fake.description() |
| ... | ... | @@ -119,77 +155,26 @@ def test_tender_data_limited(intervals, procurement_method_type): |
| 119 | 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 | 180 | 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 | 195 | def test_question_answer_data(): |
| 206 | 196 | return munchify({ |
| 207 | 197 | "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 | 257 | bid = munchify({ |
| 268 | 258 | "data": { |
| 269 | 259 | "tenderers": [ |
| ... | ... | @@ -273,35 +263,9 @@ def test_bid_data(mode, max_value_amount): |
| 273 | 263 | }) |
| 274 | 264 | bid.data.tenderers[0].address.countryName_en = translate_country_en(bid.data.tenderers[0].address.countryName) |
| 275 | 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 | 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 | 269 | def test_bid_value(max_value_amount): |
| 306 | 270 | return munchify({ |
| 307 | 271 | "value": { |
| ... | ... | @@ -354,23 +318,6 @@ def test_invalid_features_data(): |
| 354 | 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 | 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 | 350 | def test_lot_complaint_data(complaint, lot_id): |
| 409 | 351 | complaint.data.update({"complaintOf": "lot", "relatedItem": lot_id}) |
| 410 | 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 | 357 | # Since `accelerator` field is not really a list containing timings |
| 416 | 358 | # for a period called `acceleratorPeriod`, let's remove it :) |
| 417 | - del intervals['accelerator'] | |
| 359 | + del params['intervals']['accelerator'] | |
| 418 | 360 | # We should not provide any values for `enquiryPeriod` when creating |
| 419 | 361 | # an openUA or openEU procedure. That field should not be present at all. |
| 420 | 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 | 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 | 373 | # Since `accelerator` field is not really a list containing timings |
| 432 | 374 | # for a period called `acceleratorPeriod`, let's remove it :) |
| 433 | - del intervals['accelerator'] | |
| 375 | + del params['intervals']['accelerator'] | |
| 434 | 376 | # We should not provide any values for `enquiryPeriod` when creating |
| 435 | 377 | # an openUA or openEU procedure. That field should not be present at all. |
| 436 | 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 | 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 | 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 | 169 | ... tender_owner=${USERS.users['${tender_owner}'].broker} |
| 170 | 170 | ... access_token=${USERS.users['${tender_owner}'].access_token} |
| 171 | 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 | 175 | ${status} ${lots_ids}= Run Keyword And Ignore Error Отримати ідентифікатори об’єктів ${viewer} lots |
| 173 | - Run Keyword If ${status}'=='PASS' | |
| 176 | + Run Keyword If '${status}'=='PASS' | |
| 174 | 177 | ... Set To Dictionary ${artifact} lots=${lots_ids} |
| 175 | 178 | Log ${artifact} |
| 176 | 179 | log_object_data ${artifact} artifact update=${True} |
| ... | ... | @@ -184,64 +187,71 @@ Get Broker Property By Username |
| 184 | 187 | ${lot_index}= Get Variable Value ${lot_index} 0 |
| 185 | 188 | Run Keyword And Ignore Error Set To Dictionary ${TENDER} LOT_ID=${ARTIFACT.lots[${lot_index}]} |
| 186 | 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 | 193 | Set Suite Variable ${mode} |
| 188 | 194 | Set Suite Variable ${lot_index} |
| 189 | 195 | Set Suite Variable ${TENDER} |
| 190 | 196 | log_object_data ${ARTIFACT} artifact |
| 191 | 197 | |
| 192 | 198 | |
| 193 | -Підготовка даних для створення тендера | |
| 199 | +Підготувати дані для створення тендера | |
| 200 | + [Arguments] ${tender_parameters} | |
| 194 | 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 | 203 | ${TENDER}= Create Dictionary |
| 197 | 204 | Set Global Variable ${TENDER} |
| 198 | - Log ${TENDER} | |
| 199 | 205 | Log ${tender_data} |
| 200 | 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 | 212 | [Return] ${item} |
| 206 | 213 | |
| 207 | 214 | |
| 208 | -Підготовка даних для створення лоту | |
| 215 | +Підготувати дані для створення лоту | |
| 209 | 216 | [Arguments] ${max_lot_value_amount} |
| 210 | 217 | ${lot}= test_lot_data ${max_lot_value_amount} |
| 211 | 218 | ${reply}= Create Dictionary data=${lot} |
| 212 | 219 | [Return] ${reply} |
| 213 | 220 | |
| 221 | +Підготувати дані для створення нецінового показника | |
| 222 | + ${reply}= test_feature_data | |
| 223 | + [Return] ${reply} | |
| 214 | 224 | |
| 215 | -Підготовка даних для подання вимоги | |
| 225 | +Підготувати дані для подання вимоги | |
| 216 | 226 | ${claim}= test_claim_data |
| 217 | 227 | [Return] ${claim} |
| 218 | 228 | |
| 219 | 229 | |
| 220 | -Підготовка даних для подання скарги | |
| 230 | +Підготувати дані для подання скарги | |
| 221 | 231 | [Arguments] ${lot}=${False} |
| 222 | 232 | ${complaint}= test_complaint_data ${lot} |
| 223 | 233 | [Return] ${complaint} |
| 224 | 234 | |
| 225 | 235 | |
| 226 | -Підготовка даних для відповіді на скаргу | |
| 236 | +Підготувати дані для відповіді на скаргу | |
| 227 | 237 | ${reply}= test_complaint_reply_data |
| 228 | 238 | [Return] ${reply} |
| 229 | 239 | |
| 230 | 240 | |
| 231 | -Підготовка даних для запитання | |
| 241 | +Підготувати дані для запитання | |
| 232 | 242 | ${question}= test_question_data |
| 233 | 243 | [Return] ${question} |
| 234 | 244 | |
| 235 | 245 | |
| 236 | -Підготовка даних для відповіді на запитання | |
| 246 | +Підготувати дані для відповіді на запитання | |
| 237 | 247 | ${answer}= test_question_answer_data |
| 238 | 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 | 276 | [Arguments] ${username} ${tender_data} |
| 267 | 277 | # munchify is used to make deep copy of ${tender_data} |
| 268 | 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 | 280 | ${adapted_data}= Set variable if '${status}' == 'FAIL' ${tender_data_copy} ${adapted_data} |
| 271 | 281 | # munchify is used to make nice log output |
| 272 | 282 | ${adapted_data}= munchify ${adapted_data} |
| ... | ... | @@ -356,19 +366,19 @@ Get Broker Property By Username |
| 356 | 366 | ... ${USERS.users['${username}']['LAST_REFRESH_DATE']} |
| 357 | 367 | ${LAST_REFRESH_DATE}= Get Current TZdate |
| 358 | 368 | Run Keyword If ${time_diff} > 0 Run keywords |
| 359 | - ... Викликати для учасника ${username} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | |
| 369 | + ... Run As ${username} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | |
| 360 | 370 | ... AND |
| 361 | 371 | ... Set To Dictionary ${USERS.users['${username}']} LAST_REFRESH_DATE=${LAST_REFRESH_DATE} |
| 362 | 372 | |
| 363 | 373 | |
| 364 | 374 | Звірити поле тендера |
| 365 | 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 | 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 | 382 | ${right}= Отримати дані із тендера ${username} ${tender_uaid} ${field} ${object_id} |
| 373 | 383 | Порівняти об'єкти ${left} ${right} |
| 374 | 384 | |
| ... | ... | @@ -384,12 +394,12 @@ Get Broker Property By Username |
| 384 | 394 | |
| 385 | 395 | Звірити дату тендера |
| 386 | 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 | 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 | 403 | ${right}= Отримати дані із тендера ${username} ${tender_uaid} ${field} ${object_id} |
| 394 | 404 | Порівняти дати ${left} ${right} accuracy=${accuracy} absolute_delta=${absolute_delta} |
| 395 | 405 | |
| ... | ... | @@ -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 | 428 | ${right_lat}= Отримати дані із тендера ${username} ${tender_uaid} ${field}.deliveryLocation.latitude ${object_id} |
| 419 | 429 | ${right_lon}= Отримати дані із тендера ${username} ${tender_uaid} ${field}.deliveryLocation.longitude ${object_id} |
| 420 | 430 | Порівняти координати ${left_lat} ${left_lon} ${right_lat} ${right_lon} |
| ... | ... | @@ -439,53 +449,51 @@ Get Broker Property By Username |
| 439 | 449 | |
| 440 | 450 | Звірити поля предметів закупівлі багатопредметного тендера |
| 441 | 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 | 453 | ${len_of_items}= Get Length ${items} |
| 444 | 454 | :FOR ${index} IN RANGE ${len_of_items} |
| 445 | - \ Log ${index} | |
| 446 | 455 | \ Звірити поле тендера ${viewer} ${tender_data} items[${index}].${field} |
| 447 | 456 | |
| 448 | 457 | |
| 449 | 458 | Звірити дату предметів закупівлі багатопредметного тендера |
| 450 | 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 | 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 | 466 | [Arguments] ${username} ${tender_data} |
| 459 | - @{items}= Get_From_Object ${tender_data.data} items | |
| 467 | + @{items}= get_from_object ${tender_data.data} items | |
| 460 | 468 | :FOR ${index} ${_} IN ENUMERATE @{items} |
| 461 | - \ Log ${index} | |
| 462 | 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 | 476 | ${status} ${field_value}= Run keyword and ignore error |
| 472 | - ... Get from object | |
| 477 | + ... get_from_object | |
| 473 | 478 | ... ${USERS.users['${username}'].tender_data.data} |
| 474 | 479 | ... ${field} |
| 475 | 480 | # If field in cache, return its value |
| 476 | 481 | Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value} |
| 477 | 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 | 485 | # And caching its value before return |
| 481 | 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 | 490 | [return] ${field_value} |
| 483 | 491 | |
| 484 | 492 | |
| 485 | 493 | Отримати шлях до поля об’єкта |
| 486 | 494 | [Arguments] ${username} ${field_name} ${object_id} |
| 487 | 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 | 497 | ${object_index}= get_object_index_by_id ${objects} ${object_id} |
| 490 | 498 | [return] ${object_type}[${object_index}].${field_name} |
| 491 | 499 | |
| ... | ... | @@ -497,6 +505,10 @@ Get Broker Property By Username |
| 497 | 505 | ... Run Keyword And Ignore Error Run As ${username} Отримати інформацію із запитання ${tender_uaid} ${object_id} ${field_name} |
| 498 | 506 | ... ELSE IF '${object_type}'=='lots' |
| 499 | 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 | 512 | ${field}= Отримати шлях до поля об’єкта ${username} ${field_name} ${object_id} |
| 501 | 513 | ${field_value}= Run Keyword IF '${status}'=='PASS' Set Variable ${value} |
| 502 | 514 | ... ELSE Run As ${username} Отримати інформацію із тендера ${tender_uaid} ${field} |
| ... | ... | @@ -567,12 +579,7 @@ Run As |
| 567 | 579 | Log ${command} |
| 568 | 580 | Log Many @{arguments} |
| 569 | 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 | 585 | Require Failure |
| ... | ... | @@ -584,7 +591,7 @@ Require Failure |
| 584 | 591 | ... if ``command`` with ``arguments`` fails and vice versa. |
| 585 | 592 | Log ${username} |
| 586 | 593 | Log ${command} |
| 587 | - Log Many ${command} @{arguments} | |
| 594 | + Log Many @{arguments} | |
| 588 | 595 | ${keywords_file}= Get Broker Property By Username ${username} keywords_file |
| 589 | 596 | ${status} ${value}= Run keyword and ignore keyword definitions ${keywords_file}.${command} ${username} @{arguments} |
| 590 | 597 | Run keyword if '${status}' == 'PASS' Fail Користувач ${username} зміг виконати "${command}" |
| ... | ... | @@ -599,7 +606,6 @@ Require Failure |
| 599 | 606 | |
| 600 | 607 | Дочекатись дати початку періоду уточнень |
| 601 | 608 | [Arguments] ${username} ${tender_uaid} |
| 602 | - Log ${username} | |
| 603 | 609 | # XXX: HACK: Same as below |
| 604 | 610 | ${status} ${date}= Run Keyword And Ignore Error |
| 605 | 611 | ... Set Variable |
| ... | ... | @@ -611,13 +617,14 @@ Require Failure |
| 611 | 617 | Дочекатись дати ${date} |
| 612 | 618 | Оновити LAST_MODIFICATION_DATE |
| 613 | 619 | Дочекатись синхронізації з майданчиком ${username} |
| 620 | + ${next_status}= Set variable if 'open' in '${mode}' active.tendering active.enquiries | |
| 614 | 621 | Wait until keyword succeeds |
| 615 | 622 | ... 5 min 15 sec |
| 616 | 623 | ... 15 sec |
| 617 | 624 | ... Звірити статус тендера |
| 618 | 625 | ... ${username} |
| 619 | 626 | ... ${tender_uaid} |
| 620 | - ... active.enquiries | |
| 627 | + ... ${next_status} | |
| 621 | 628 | |
| 622 | 629 | |
| 623 | 630 | Звірити статус тендера |
| ... | ... | @@ -681,33 +688,8 @@ Require Failure |
| 681 | 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 | 692 | [Arguments] ${username} |
| 710 | - log ${username} | |
| 711 | 693 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.complaintPeriod.endDate} |
| 712 | 694 | Оновити LAST_MODIFICATION_DATE |
| 713 | 695 | Дочекатись синхронізації з майданчиком ${username} | ... | ... |
| ... | ... | @@ -54,7 +54,7 @@ Resource resource.robot |
| 54 | 54 | ############################################################################################## |
| 55 | 55 | |
| 56 | 56 | Можливість створити закупівлю |
| 57 | - ${tender_data}= Підготовка даних для створення тендера | |
| 57 | + ${tender_data}= Підготувати дані для створення тендера | |
| 58 | 58 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_owner} ${tender_data} |
| 59 | 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 | 1 | # -*- coding: utf-8 -*- |
| 2 | 2 | from faker.providers import BaseProvider |
| 3 | +from copy import deepcopy | |
| 3 | 4 | from munch import Munch |
| 4 | 5 | from json import load |
| 5 | 6 | import os |
| ... | ... | @@ -85,7 +86,7 @@ class OP_Provider(BaseProvider): |
| 85 | 86 | |
| 86 | 87 | @classmethod |
| 87 | 88 | def procuringEntity(self): |
| 88 | - return self.random_element(self.procuringEntities) | |
| 89 | + return deepcopy(self.random_element(self.procuringEntities)) | |
| 89 | 90 | |
| 90 | 91 | @classmethod |
| 91 | 92 | def cpv(self): |
| ... | ... | @@ -123,6 +124,8 @@ class OP_Provider(BaseProvider): |
| 123 | 124 | address = self.random_element(self.addresses) |
| 124 | 125 | item = { |
| 125 | 126 | "description": item_base_data["description"], |
| 127 | + "description_ru": item_base_data["description_ru"], | |
| 128 | + "description_en": item_base_data["description_en"], | |
| 126 | 129 | "classification": classification["classification"], |
| 127 | 130 | "additionalClassifications": classification["additionalClassifications"], |
| 128 | 131 | "deliveryAddress": address["deliveryAddress"], |
| ... | ... | @@ -130,4 +133,4 @@ class OP_Provider(BaseProvider): |
| 130 | 133 | "unit": item_base_data["unit"], |
| 131 | 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 | 7901 | { |
| 7902 | 7902 | "cpv_id": "30199000-0", |
| 7903 | 7903 | "description": "Папір для офісної техніки А4", |
| 7904 | + "description_ru": "Бумага для офисной техники формата А4", | |
| 7905 | + "description_en": "Paper for office equipment А4", | |
| 7904 | 7906 | "quantity": 15, |
| 7905 | 7907 | "unit": { |
| 7906 | 7908 | "code": "PK", |
| ... | ... | @@ -7910,6 +7912,8 @@ |
| 7910 | 7912 | { |
| 7911 | 7913 | "cpv_id": "24910000-6", |
| 7912 | 7914 | "description": "Клей СМ-11", |
| 7915 | + "description_ru": "Клей СМ-11", | |
| 7916 | + "description_en": "Glue SM-11", | |
| 7913 | 7917 | "quantity": 50, |
| 7914 | 7918 | "unit": { |
| 7915 | 7919 | "code": "KGM", |
| ... | ... | @@ -7919,6 +7923,8 @@ |
| 7919 | 7923 | { |
| 7920 | 7924 | "cpv_id": "22990000-6", |
| 7921 | 7925 | "description": "Вироби канцелярські, паперові", |
| 7926 | + "description_ru": "Изделия канцелярские, бумажные", | |
| 7927 | + "description_en": "Paper stationery", | |
| 7922 | 7928 | "quantity": 116, |
| 7923 | 7929 | "unit": { |
| 7924 | 7930 | "code": "H87", |
| ... | ... | @@ -7928,6 +7934,8 @@ |
| 7928 | 7934 | { |
| 7929 | 7935 | "cpv_id": "22800000-8", |
| 7930 | 7936 | "description": "Бланки та журнали відповідної форми (наведені в додатку)", |
| 7937 | + "description_ru": "Бланки и журналы соответствующей формы (приведены в приложении)", | |
| 7938 | + "description_en": "Form and journals in appropriate form (listed in Annex)", | |
| 7931 | 7939 | "quantity": 5, |
| 7932 | 7940 | "unit": { |
| 7933 | 7941 | "code": "LO", |
| ... | ... | @@ -7936,7 +7944,9 @@ |
| 7936 | 7944 | }, |
| 7937 | 7945 | { |
| 7938 | 7946 | "cpv_id": "30192121-5", |
| 7939 | - "description": "ручки кулькові", | |
| 7947 | + "description": "Ручки кулькові", | |
| 7948 | + "description_ru": "Ручки шариковые", | |
| 7949 | + "description_en": "Ballpoint pens", | |
| 7940 | 7950 | "quantity": 10, |
| 7941 | 7951 | "unit": { |
| 7942 | 7952 | "code": "PK", |
| ... | ... | @@ -7945,7 +7955,9 @@ |
| 7945 | 7955 | }, |
| 7946 | 7956 | { |
| 7947 | 7957 | "cpv_id": "30192130-1", |
| 7948 | - "description": "олівці прості", | |
| 7958 | + "description": "Олівці прості", | |
| 7959 | + "description_ru": "Карандаши простые", | |
| 7960 | + "description_en": "Plain pencils", | |
| 7949 | 7961 | "quantity": 3, |
| 7950 | 7962 | "unit": { |
| 7951 | 7963 | "code": "PK", |
| ... | ... | @@ -7955,6 +7967,8 @@ |
| 7955 | 7967 | { |
| 7956 | 7968 | "cpv_id": "30197600-2", |
| 7957 | 7969 | "description": "Папір офісний призначений для друку та копіювання на лазерній, струменевій техніці, формат А4 - 210 х 297 мм, щільність 80г/м2.", |
| 7970 | + "description_ru": "Бумага офисная предназначен для печати и копирования на лазерной, струйной технике, формат А4 - 210 х 297 мм, плотность 80г м2.", | |
| 7971 | + "description_en": "Paper for office equipment А4", | |
| 7958 | 7972 | "quantity": 20, |
| 7959 | 7973 | "unit": { |
| 7960 | 7974 | "code": "NMP", |
| ... | ... | @@ -7964,6 +7978,8 @@ |
| 7964 | 7978 | { |
| 7965 | 7979 | "cpv_id": "22200000-2", |
| 7966 | 7980 | "description": "Періодичні видання оригінальні на 2016 рік (газети України, журнали України, журнали Росії)", |
| 7981 | + "description_ru": "Периодические издания оригинала в 2016 году (газет Украина, журналов Украины, журналов России)", | |
| 7982 | + "description_en": "Periodicals original in 2016 (Ukrainian newspapers, Ukrainian magazines, Russian magazines)", | |
| 7967 | 7983 | "quantity": 126, |
| 7968 | 7984 | "unit": { |
| 7969 | 7985 | "code": "H87", |
| ... | ... | @@ -7973,6 +7989,8 @@ |
| 7973 | 7989 | { |
| 7974 | 7990 | "cpv_id": "22212000-9", |
| 7975 | 7991 | "description": "Додаток № 1 до документації", |
| 7992 | + "description_ru": "Приложение № 1 к документации", | |
| 7993 | + "description_en": "Supplement # 1 to documentation", | |
| 7976 | 7994 | "quantity": 12, |
| 7977 | 7995 | "unit": { |
| 7978 | 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 | + Можливість затвердити остаточне рішення кваліфікації | |
| \ No newline at end of file | ... | ... |
| ... | ... | @@ -16,8 +16,7 @@ Suite Teardown Test Suite Teardown |
| 16 | 16 | ... minimal |
| 17 | 17 | Завантажити дані про тендер |
| 18 | 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 | 22 | # AWARDS |
| ... | ... | @@ -28,31 +27,33 @@ Suite Teardown Test Suite Teardown |
| 28 | 27 | ... tender_owner |
| 29 | 28 | ... ${USERS.users['${tender_owner}'].broker} |
| 30 | 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 | 31 | \ Run Keyword IF '${TENDER['LOT_ID']}' Should Be Equal ${qualification_status} active |
| 33 | 32 | \ ... ELSE Should Be Equal ${qualification_status} active.qualification |
| 34 | 33 | |
| 34 | + | |
| 35 | 35 | Відображення вартості номенклатури постачальника |
| 36 | 36 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера |
| 37 | 37 | ... tender_owner |
| 38 | 38 | ... ${USERS.users['${tender_owner}'].broker} |
| 39 | 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 | 44 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера |
| 44 | 45 | ... tender_owner |
| 45 | 46 | ... ${USERS.users['${tender_owner}'].broker} |
| 46 | 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 | 52 | [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера |
| 51 | 53 | ... tender_owner |
| 52 | 54 | ... ${USERS.users['${tender_owner}'].broker} |
| 53 | 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 | 59 | # QUALIFICATION |
| ... | ... | @@ -63,31 +64,36 @@ Suite Teardown Test Suite Teardown |
| 63 | 64 | ... tender_owner |
| 64 | 65 | ... ${USERS.users['${tender_owner}'].broker} |
| 65 | 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 | 71 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі |
| 70 | 72 | ... tender_owner |
| 71 | 73 | ... ${USERS.users['${tender_owner}'].broker} |
| 72 | 74 | ... minimal |
| 73 | - Викликати для учасника ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 0 | |
| 75 | + Run As ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 0 | |
| 76 | + | |
| 77 | + | |
| 74 | 78 | Можливість скасувати рішення кваліфікації |
| 75 | 79 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі |
| 76 | 80 | ... tender_owner |
| 77 | 81 | ... ${USERS.users['${tender_owner}'].broker} |
| 78 | 82 | ... minimal |
| 79 | - Викликати для учасника ${tender_owner} Скасування рішення кваліфікаційної комісії ${TENDER['TENDER_UAID']} 0 | |
| 83 | + Run As ${tender_owner} Скасування рішення кваліфікаційної комісії ${TENDER['TENDER_UAID']} 0 | |
| 84 | + | |
| 80 | 85 | |
| 81 | 86 | Можливість завантажити документ рішення кваліфікаційної комісії для підтвердження нового постачальника |
| 82 | 87 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для прямої закупівлі |
| 83 | 88 | ... tender_owner |
| 84 | 89 | ... ${USERS.users['${tender_owner}'].broker} |
| 85 | 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 | 95 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість зареєструвати і підтвердити постачальника до прямої закупівлі |
| 90 | 96 | ... tender_owner |
| 91 | 97 | ... ${USERS.users['${tender_owner}'].broker} |
| 92 | 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 | 19 | from .initial_data import ( |
| 20 | 20 | create_fake_doc, |
| 21 | 21 | create_fake_sentence, |
| 22 | + fake, | |
| 22 | 23 | test_bid_data, |
| 24 | + test_bid_value, | |
| 23 | 25 | test_claim_answer_data, |
| 24 | 26 | test_claim_data, |
| 25 | 27 | test_complaint_data, |
| 26 | 28 | test_complaint_reply_data, |
| 27 | 29 | test_confirm_data, |
| 30 | + test_feature_data, | |
| 28 | 31 | test_invalid_features_data, |
| 29 | 32 | test_item_data, |
| 30 | 33 | test_lot_complaint_data, |
| 31 | 34 | test_lot_data, |
| 32 | 35 | test_lot_document_data, |
| 33 | - test_lot_question_data, | |
| 36 | + test_related_question, | |
| 34 | 37 | test_question_answer_data, |
| 35 | 38 | test_question_data, |
| 36 | 39 | test_supplier_data, |
| 37 | 40 | test_tender_data, |
| 38 | 41 | test_tender_data_limited, |
| 39 | - test_tender_data_meat, | |
| 40 | - test_tender_data_multiple_items, | |
| 41 | - test_tender_data_multiple_lots, | |
| 42 | 42 | test_tender_data_openeu, |
| 43 | - test_tender_data_openua | |
| 43 | + test_tender_data_openua, | |
| 44 | 44 | ) |
| 45 | 45 | from barbecue import chef |
| 46 | 46 | from restkit import request |
| ... | ... | @@ -117,10 +117,7 @@ def compare_date(left, right, accuracy="minute", absolute_delta=True): |
| 117 | 117 | |
| 118 | 118 | |
| 119 | 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 | 122 | :param left_lat: First coordinate latitude |
| 126 | 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 | 132 | :error: ValueError when there is problem with converting accuracy |
| 136 | 133 | into float value. When it will be catched warning will be |
| 137 | 134 | given and accuracy will be set to 0.1. |
| 138 | - | |
| 139 | 135 | ''' |
| 140 | 136 | for key, value in {'left_lat': left_lat, 'left_lon': left_lon, 'right_lat': right_lat, 'right_lon': right_lon}.iteritems(): |
| 141 | 137 | if not isinstance(value, NUM_TYPES): |
| ... | ... | @@ -263,13 +259,15 @@ def compute_intrs(brokers_data, used_brokers): |
| 263 | 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 | 263 | # Get actual intervals by mode name |
| 264 | + mode = tender_parameters['mode'] | |
| 268 | 265 | if mode in procedure_intervals: |
| 269 | 266 | intervals = procedure_intervals[mode] |
| 270 | 267 | else: |
| 271 | 268 | intervals = procedure_intervals['default'] |
| 272 | 269 | LOGGER.log_message(Message(intervals)) |
| 270 | + tender_parameters['intervals'] = intervals | |
| 273 | 271 | |
| 274 | 272 | # Set acceleration value for certain modes |
| 275 | 273 | if mode in ['openua', 'openeu']: |
| ... | ... | @@ -282,24 +280,18 @@ def prepare_test_tender_data(procedure_intervals, mode): |
| 282 | 280 | assert 'accelerator' not in intervals.keys(), \ |
| 283 | 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 | 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 | 287 | elif mode == 'openeu': |
| 296 | - return munchify({'data': test_tender_data_openeu(intervals)}) | |
| 288 | + return munchify({'data': test_tender_data_openeu(tender_parameters)}) | |
| 297 | 289 | elif mode == 'openua': |
| 298 | - return munchify({'data': test_tender_data_openua(intervals)}) | |
| 290 | + return munchify({'data': test_tender_data_openua(tender_parameters)}) | |
| 299 | 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 | 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 | 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 | 322 | def get_from_object(obj, attribute): |
| 336 | 323 | """Gets data from a dictionary using a dotted accessor-string""" |
| 337 | 324 | jsonpath_expr = parse_path(attribute) |
| ... | ... | @@ -342,6 +329,31 @@ def get_from_object(obj, attribute): |
| 342 | 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 | 357 | def wait_to_date(date_stamp): |
| 346 | 358 | date = parse(date_stamp) |
| 347 | 359 | LOGGER.log_message(Message("date: {}".format(date.isoformat()), "INFO")) |
| ... | ... | @@ -432,6 +444,26 @@ def get_document_index_by_id(data, document_id): |
| 432 | 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 | 468 | # GUI Frontends common |
| 437 | 469 | def add_data_for_gui_frontends(tender_data): | ... | ... |
Please
register
or
login
to post a comment