Commit 2d8fee520cb9954e656a6cd97bbe845ab9b52867
Committed by
GitHub
Merge pull request #55 from openprocurement/master
Agreement
Showing
10 changed files
with
804 additions
and
7 deletions
| @@ -48,9 +48,10 @@ Resource base_keywords.robot | @@ -48,9 +48,10 @@ Resource base_keywords.robot | ||
| 48 | Run As ${username} Змінити документацію в ставці ${TENDER['TENDER_UAID']} ${privat_doc} ${USERS.users['${username}']['bid_document']['doc_id']} | 48 | Run As ${username} Змінити документацію в ставці ${TENDER['TENDER_UAID']} ${privat_doc} ${USERS.users['${username}']['bid_document']['doc_id']} |
| 49 | 49 | ||
| 50 | 50 | ||
| 51 | -Можливість завантажити ${doc_type} документ до пропозиції учасником ${username} | 51 | +Можливість завантажити документ до пропозиції учасником |
| 52 | + [Arguments] ${username} ${doc_name} ${doc_type}=${NONE} | ||
| 52 | ${file_path} ${file_name} ${file_content}= create_fake_doc | 53 | ${file_path} ${file_name} ${file_content}= create_fake_doc |
| 53 | - ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${file_path} ${TENDER['TENDER_UAID']} ${doc_type} | 54 | + ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку ${file_path} ${TENDER['TENDER_UAID']} ${doc_name} ${doc_type} |
| 54 | Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} | 55 | Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} |
| 55 | Remove File ${file_path} | 56 | Remove File ${file_path} |
| 56 | 57 |
op_robot_tests/tests_files/agreement.robot
0 → 100644
| 1 | +*** Settings *** | ||
| 2 | +Resource base_keywords.robot | ||
| 3 | +Suite Setup Test Suite Setup | ||
| 4 | +Suite Teardown Test Suite Teardown | ||
| 5 | + | ||
| 6 | +*** Variables *** | ||
| 7 | +@{USED_ROLES} tender_owner viewer | ||
| 8 | + | ||
| 9 | +*** Test Cases *** | ||
| 10 | +Можливість знайти закупівлю по ідентифікатору | ||
| 11 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера | ||
| 12 | + ... viewer tender_owner | ||
| 13 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 14 | + ... find_tender | ||
| 15 | + ... critical | ||
| 16 | + Завантажити дані про тендер | ||
| 17 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 18 | + \ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 19 | + | ||
| 20 | + | ||
| 21 | +Відображення ідентифікатора угоди | ||
| 22 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних тендера | ||
| 23 | + ... viewer tender_owner | ||
| 24 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 25 | + ... tender_view | ||
| 26 | + ... critical | ||
| 27 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 28 | + \ Отримати дані із поля agreements[0].agreementID тендера для користувача ${username} | ||
| 29 | + ${AGREEMENT_UAID}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data.agreements[0].agreementID} | ||
| 30 | + Set Suite Variable ${AGREEMENT_UAID} | ||
| 31 | + | ||
| 32 | + | ||
| 33 | +Можливість знайти угоду по ідентифікатору | ||
| 34 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук угоди | ||
| 35 | + ... viewer tender_owner | ||
| 36 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 37 | + ... find_agreement | ||
| 38 | + ... critical | ||
| 39 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 40 | + \ Run As ${username} Пошук угоди по ідентифікатору ${AGREEMENT_UAID} | ||
| 41 | + | ||
| 42 | + | ||
| 43 | +Відображення ідентифікатора контракту в угоді | ||
| 44 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди | ||
| 45 | + ... viewer tender_owner | ||
| 46 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 47 | + ... agreement_view | ||
| 48 | + ... critical | ||
| 49 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 50 | + \ Отримати дані із угоди ${username} ${AGREEMENT_UAID} contracts[0].id | ||
| 51 | + | ||
| 52 | + | ||
| 53 | +Відображення ідентифікатора предмету в угоді | ||
| 54 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди | ||
| 55 | + ... viewer tender_owner | ||
| 56 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 57 | + ... agreement_view | ||
| 58 | + ... critical | ||
| 59 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 60 | + \ Отримати дані із угоди ${username} ${AGREEMENT_UAID} items[0].id | ||
| 61 | + | ||
| 62 | + | ||
| 63 | +Можливість отримати доступ до угоди | ||
| 64 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Отримання прав доступу до угоди | ||
| 65 | + ... tender_owner | ||
| 66 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 67 | + ... find_agreement | ||
| 68 | + ... critical | ||
| 69 | + Run As ${tender_owner} Отримати доступ до угоди ${AGREEMENT_UAID} | ||
| 70 | + | ||
| 71 | + | ||
| 72 | +Можливість завантажити документацію в угоду | ||
| 73 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Завантаження документації в угоду | ||
| 74 | + ... tender_owner | ||
| 75 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 76 | + ... add_agreement_doc | ||
| 77 | + ... non-critical | ||
| 78 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 79 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 80 | + Можливість завантажити документ для рамкової угоди користувачем ${tender_owner} | ||
| 81 | + | ||
| 82 | + | ||
| 83 | +Можливість внести зміну до угоди taxRate | ||
| 84 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 85 | + ... tender_owner | ||
| 86 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 87 | + ... submit_change | ||
| 88 | + ... critical | ||
| 89 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 90 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 91 | + ${change_data}= Підготувати дані про зміну до угоди ${tender_owner} taxRate | ||
| 92 | + Run As ${tender_owner} Внести зміну в угоду ${AGREEMENT_UAID} ${change_data} | ||
| 93 | + | ||
| 94 | + | ||
| 95 | +Відображення типу зміни taxRate | ||
| 96 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 97 | + ... viewer | ||
| 98 | + ... ${USERS.users['${viewer}'].broker} | ||
| 99 | + ... change_view | ||
| 100 | + ... non-critical | ||
| 101 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 102 | + Звірити поле угоди із значенням | ||
| 103 | + ... ${viewer} | ||
| 104 | + ... ${AGREEMENT_UAID} | ||
| 105 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationaleType} | ||
| 106 | + ... changes[0].rationaleType | ||
| 107 | + | ||
| 108 | + | ||
| 109 | +Відображення обгрунтування зміни taxRate | ||
| 110 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 111 | + ... viewer | ||
| 112 | + ... ${USERS.users['${viewer}'].broker} | ||
| 113 | + ... change_view | ||
| 114 | + ... non-critical | ||
| 115 | + Звірити поле угоди із значенням | ||
| 116 | + ... ${viewer} | ||
| 117 | + ... ${AGREEMENT_UAID} | ||
| 118 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationale} | ||
| 119 | + ... changes[0].rationale | ||
| 120 | + | ||
| 121 | + | ||
| 122 | +Можливість оновити властивості угоди для внесених змін taxRate | ||
| 123 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 124 | + ... tender_owner | ||
| 125 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 126 | + ... modification | ||
| 127 | + ... critical | ||
| 128 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 129 | + ${change_data}= Підготувати дані для оновлення властивості угоди ${tender_owner} addend ${0.9} | ||
| 130 | + Run As ${tender_owner} Оновити властивості угоди ${AGREEMENT_UAID} ${change_data} | ||
| 131 | + | ||
| 132 | + | ||
| 133 | +Відображення ідентифікатора предмету у властивостях taxRate | ||
| 134 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 135 | + ... viewer | ||
| 136 | + ... ${USERS.users['${viewer}'].broker} | ||
| 137 | + ... modification_view | ||
| 138 | + ... non-critical | ||
| 139 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 140 | + Звірити поле угоди із значенням | ||
| 141 | + ... ${viewer} | ||
| 142 | + ... ${AGREEMENT_UAID} | ||
| 143 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['itemId']} | ||
| 144 | + ... changes[0].modifications[0].itemId | ||
| 145 | + | ||
| 146 | + | ||
| 147 | +Відображення addend у властивостях taxRate | ||
| 148 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 149 | + ... viewer | ||
| 150 | + ... ${USERS.users['${viewer}'].broker} | ||
| 151 | + ... modification_view | ||
| 152 | + ... non-critical | ||
| 153 | + Звірити поле угоди із значенням | ||
| 154 | + ... ${viewer} | ||
| 155 | + ... ${AGREEMENT_UAID} | ||
| 156 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['addend']} | ||
| 157 | + ... changes[0].modifications[0].addend | ||
| 158 | + | ||
| 159 | + | ||
| 160 | +Можливість завантажити документацію в зміну | ||
| 161 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Завантаження документації в угоду | ||
| 162 | + ... tender_owner | ||
| 163 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 164 | + ... add_agreement_doc | ||
| 165 | + ... non-critical | ||
| 166 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 167 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 168 | + Можливість завантажити документ для зміни у рамковій угоді користувачем ${tender_owner} | ||
| 169 | + | ||
| 170 | + | ||
| 171 | +Можливість застосувати зміну договору taxRate | ||
| 172 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 173 | + ... tender_owner | ||
| 174 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 175 | + ... apply_change | ||
| 176 | + ... critical | ||
| 177 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 178 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 179 | + ${dateSigned}= create_fake_date | ||
| 180 | + Run As ${tender_owner} Застосувати зміну для угоди ${AGREEMENT_UAID} ${dateSigned} active | ||
| 181 | + | ||
| 182 | + | ||
| 183 | +Відображення статусу active зміни taxRate | ||
| 184 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 185 | + ... viewer | ||
| 186 | + ... ${USERS.users['${viewer}'].broker} | ||
| 187 | + ... change_view | ||
| 188 | + ... critical | ||
| 189 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 190 | + Звірити поле угоди із значенням | ||
| 191 | + ... ${viewer} | ||
| 192 | + ... ${AGREEMENT_UAID} | ||
| 193 | + ... active | ||
| 194 | + ... changes[0].status | ||
| 195 | + | ||
| 196 | + | ||
| 197 | +Можливість внести зміну до угоди itemPriceVariation | ||
| 198 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 199 | + ... tender_owner | ||
| 200 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 201 | + ... submit_change | ||
| 202 | + ... critical | ||
| 203 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 204 | + ${change_data}= Підготувати дані про зміну до угоди ${tender_owner} itemPriceVariation | ||
| 205 | + Run As ${tender_owner} Внести зміну в угоду ${AGREEMENT_UAID} ${change_data} | ||
| 206 | + | ||
| 207 | + | ||
| 208 | +Відображення типу зміни itemPriceVariation | ||
| 209 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 210 | + ... viewer | ||
| 211 | + ... ${USERS.users['${viewer}'].broker} | ||
| 212 | + ... change_view | ||
| 213 | + ... non-critical | ||
| 214 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 215 | + Звірити поле угоди із значенням | ||
| 216 | + ... ${viewer} | ||
| 217 | + ... ${AGREEMENT_UAID} | ||
| 218 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationaleType} | ||
| 219 | + ... changes[1].rationaleType | ||
| 220 | + | ||
| 221 | + | ||
| 222 | +Відображення обгрунтування зміни itemPriceVariation | ||
| 223 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 224 | + ... viewer | ||
| 225 | + ... ${USERS.users['${viewer}'].broker} | ||
| 226 | + ... change_view | ||
| 227 | + ... non-critical | ||
| 228 | + Звірити поле угоди із значенням | ||
| 229 | + ... ${viewer} | ||
| 230 | + ... ${AGREEMENT_UAID} | ||
| 231 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationale} | ||
| 232 | + ... changes[1].rationale | ||
| 233 | + | ||
| 234 | + | ||
| 235 | +Можливість оновити властивості угоди для внесених змін itemPriceVariation | ||
| 236 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 237 | + ... tender_owner | ||
| 238 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 239 | + ... modification | ||
| 240 | + ... critical | ||
| 241 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 242 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 243 | + ${change_data}= Підготувати дані для оновлення властивості угоди ${tender_owner} factor ${1.1} | ||
| 244 | + Run As ${tender_owner} Оновити властивості угоди ${AGREEMENT_UAID} ${change_data} | ||
| 245 | + | ||
| 246 | + | ||
| 247 | +Відображення ідентифікатора предмету у властивостях itemPriceVariation | ||
| 248 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 249 | + ... viewer | ||
| 250 | + ... ${USERS.users['${viewer}'].broker} | ||
| 251 | + ... modification_view | ||
| 252 | + ... non-critical | ||
| 253 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 254 | + Звірити поле угоди із значенням | ||
| 255 | + ... ${viewer} | ||
| 256 | + ... ${AGREEMENT_UAID} | ||
| 257 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['itemId']} | ||
| 258 | + ... changes[1].modifications[0].itemId | ||
| 259 | + | ||
| 260 | + | ||
| 261 | +Відображення factor у властивостях itemPriceVariation | ||
| 262 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 263 | + ... viewer | ||
| 264 | + ... ${USERS.users['${viewer}'].broker} | ||
| 265 | + ... modification_view | ||
| 266 | + ... non-critical | ||
| 267 | + Звірити поле угоди із значенням | ||
| 268 | + ... ${viewer} | ||
| 269 | + ... ${AGREEMENT_UAID} | ||
| 270 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['factor']} | ||
| 271 | + ... changes[1].modifications[0].factor | ||
| 272 | + | ||
| 273 | + | ||
| 274 | +Можливість скасувати зміну договору itemPriceVariation | ||
| 275 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 276 | + ... tender_owner | ||
| 277 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 278 | + ... apply_change | ||
| 279 | + ... critical | ||
| 280 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 281 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 282 | + ${dateSigned}= create_fake_date | ||
| 283 | + Run As ${tender_owner} Застосувати зміну для угоди ${AGREEMENT_UAID} ${dateSigned} cancelled | ||
| 284 | + | ||
| 285 | + | ||
| 286 | +Відображення статусу cancelled зміни itemPriceVariation | ||
| 287 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 288 | + ... viewer | ||
| 289 | + ... ${USERS.users['${viewer}'].broker} | ||
| 290 | + ... change_view | ||
| 291 | + ... critical | ||
| 292 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 293 | + Звірити поле угоди із значенням | ||
| 294 | + ... ${viewer} | ||
| 295 | + ... ${AGREEMENT_UAID} | ||
| 296 | + ... cancelled | ||
| 297 | + ... changes[1].status | ||
| 298 | + | ||
| 299 | + | ||
| 300 | +Можливість внести зміну до угоди thirdParty | ||
| 301 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 302 | + ... tender_owner | ||
| 303 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 304 | + ... submit_change | ||
| 305 | + ... critical | ||
| 306 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 307 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 308 | + ${change_data}= Підготувати дані про зміну до угоди ${tender_owner} thirdParty | ||
| 309 | + Run As ${tender_owner} Внести зміну в угоду ${AGREEMENT_UAID} ${change_data} | ||
| 310 | + | ||
| 311 | + | ||
| 312 | +Відображення типу зміни thirdParty | ||
| 313 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 314 | + ... viewer | ||
| 315 | + ... ${USERS.users['${viewer}'].broker} | ||
| 316 | + ... change_view | ||
| 317 | + ... non-critical | ||
| 318 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 319 | + Звірити поле угоди із значенням | ||
| 320 | + ... ${viewer} | ||
| 321 | + ... ${AGREEMENT_UAID} | ||
| 322 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationaleType} | ||
| 323 | + ... changes[2].rationaleType | ||
| 324 | + | ||
| 325 | + | ||
| 326 | +Відображення обгрунтування зміни thirdParty | ||
| 327 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 328 | + ... viewer | ||
| 329 | + ... ${USERS.users['${viewer}'].broker} | ||
| 330 | + ... change_view | ||
| 331 | + ... non-critical | ||
| 332 | + Звірити поле угоди із значенням | ||
| 333 | + ... ${viewer} | ||
| 334 | + ... ${AGREEMENT_UAID} | ||
| 335 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationale} | ||
| 336 | + ... changes[2].rationale | ||
| 337 | + | ||
| 338 | + | ||
| 339 | +Можливість оновити властивості угоди для внесених змін thirdParty | ||
| 340 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 341 | + ... tender_owner | ||
| 342 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 343 | + ... modification | ||
| 344 | + ... critical | ||
| 345 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 346 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 347 | + Log ${USERS.users['${tender_owner}'].agreement_data} | ||
| 348 | + ${change_data}= Підготувати дані для оновлення властивості угоди ${tender_owner} factor ${0.97} | ||
| 349 | + Run As ${tender_owner} Оновити властивості угоди ${AGREEMENT_UAID} ${change_data} | ||
| 350 | + | ||
| 351 | + | ||
| 352 | +Відображення ідентифікатора предмету у властивостях thirdParty | ||
| 353 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 354 | + ... viewer | ||
| 355 | + ... ${USERS.users['${viewer}'].broker} | ||
| 356 | + ... modification_view | ||
| 357 | + ... non-critical | ||
| 358 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 359 | + Звірити поле угоди із значенням | ||
| 360 | + ... ${viewer} | ||
| 361 | + ... ${AGREEMENT_UAID} | ||
| 362 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['itemId']} | ||
| 363 | + ... changes[2].modifications[0].itemId | ||
| 364 | + | ||
| 365 | + | ||
| 366 | +Відображення factor у властивостях thirdParty | ||
| 367 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 368 | + ... viewer | ||
| 369 | + ... ${USERS.users['${viewer}'].broker} | ||
| 370 | + ... modification_view | ||
| 371 | + ... non-critical | ||
| 372 | + Звірити поле угоди із значенням | ||
| 373 | + ... ${viewer} | ||
| 374 | + ... ${AGREEMENT_UAID} | ||
| 375 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['factor']} | ||
| 376 | + ... changes[2].modifications[0].factor | ||
| 377 | + | ||
| 378 | + | ||
| 379 | +Можливість застосувати зміну договору thirdParty | ||
| 380 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 381 | + ... tender_owner | ||
| 382 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 383 | + ... apply_change | ||
| 384 | + ... critical | ||
| 385 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 386 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 387 | + ${dateSigned}= create_fake_date | ||
| 388 | + Run As ${tender_owner} Застосувати зміну для угоди ${AGREEMENT_UAID} ${dateSigned} active | ||
| 389 | + | ||
| 390 | + | ||
| 391 | +Відображення статусу active зміни thirdParty | ||
| 392 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 393 | + ... viewer | ||
| 394 | + ... ${USERS.users['${viewer}'].broker} | ||
| 395 | + ... change_view | ||
| 396 | + ... critical | ||
| 397 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 398 | + Звірити поле угоди із значенням | ||
| 399 | + ... ${viewer} | ||
| 400 | + ... ${AGREEMENT_UAID} | ||
| 401 | + ... active | ||
| 402 | + ... changes[2].status | ||
| 403 | + | ||
| 404 | + | ||
| 405 | +Можливість внести зміну до угоди partyWithdrawal | ||
| 406 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 407 | + ... tender_owner | ||
| 408 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 409 | + ... submit_change | ||
| 410 | + ... critical | ||
| 411 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 412 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 413 | + ${change_data}= Підготувати дані про зміну до угоди ${tender_owner} partyWithdrawal | ||
| 414 | + Run As ${tender_owner} Внести зміну в угоду ${AGREEMENT_UAID} ${change_data} | ||
| 415 | + | ||
| 416 | + | ||
| 417 | +Відображення типу зміни partyWithdrawal | ||
| 418 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 419 | + ... viewer | ||
| 420 | + ... ${USERS.users['${viewer}'].broker} | ||
| 421 | + ... change_view | ||
| 422 | + ... non-critical | ||
| 423 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 424 | + Звірити поле угоди із значенням | ||
| 425 | + ... ${viewer} | ||
| 426 | + ... ${AGREEMENT_UAID} | ||
| 427 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationaleType} | ||
| 428 | + ... changes[3].rationaleType | ||
| 429 | + | ||
| 430 | + | ||
| 431 | +Відображення обгрунтування зміни partyWithdrawal | ||
| 432 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 433 | + ... viewer | ||
| 434 | + ... ${USERS.users['${viewer}'].broker} | ||
| 435 | + ... change_view | ||
| 436 | + ... non-critical | ||
| 437 | + Звірити поле угоди із значенням | ||
| 438 | + ... ${viewer} | ||
| 439 | + ... ${AGREEMENT_UAID} | ||
| 440 | + ... ${USERS.users['${tender_owner}'].change_data.data.rationale} | ||
| 441 | + ... changes[3].rationale | ||
| 442 | + | ||
| 443 | + | ||
| 444 | +Можливість оновити властивості угоди для внесених змін partyWithdrawal | ||
| 445 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 446 | + ... tender_owner | ||
| 447 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 448 | + ... modification | ||
| 449 | + ... critical | ||
| 450 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 451 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 452 | + ${change_data}= Підготувати дані для оновлення властивості угоди | ||
| 453 | + ... ${tender_owner} | ||
| 454 | + ... contractId | ||
| 455 | + ... ${USERS.users['${tender_owner}'].agreement_data.data['contracts'][0]['id']} | ||
| 456 | + Run As ${tender_owner} Оновити властивості угоди ${AGREEMENT_UAID} ${change_data} | ||
| 457 | + | ||
| 458 | + | ||
| 459 | +Відображення ідентифікатора предмету у властивостях partyWithdrawal | ||
| 460 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 461 | + ... viewer | ||
| 462 | + ... ${USERS.users['${viewer}'].broker} | ||
| 463 | + ... modification_view | ||
| 464 | + ... non-critical | ||
| 465 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 466 | + Звірити поле угоди із значенням | ||
| 467 | + ... ${viewer} | ||
| 468 | + ... ${AGREEMENT_UAID} | ||
| 469 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['itemId']} | ||
| 470 | + ... changes[3].modifications[0].itemId | ||
| 471 | + | ||
| 472 | + | ||
| 473 | +Відображення contractId у властивостях partyWithdrawal | ||
| 474 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 475 | + ... viewer | ||
| 476 | + ... ${USERS.users['${viewer}'].broker} | ||
| 477 | + ... modification_view | ||
| 478 | + ... non-critical | ||
| 479 | + Звірити поле угоди із значенням | ||
| 480 | + ... ${viewer} | ||
| 481 | + ... ${AGREEMENT_UAID} | ||
| 482 | + ... ${USERS.users['${tender_owner}'].modification_data.data.modifications[0]['contractId']} | ||
| 483 | + ... changes[3].modifications[0].contractId | ||
| 484 | + | ||
| 485 | + | ||
| 486 | +Можливість скасувати зміну договору partyWithdrawal | ||
| 487 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Внесення зміни | ||
| 488 | + ... tender_owner | ||
| 489 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 490 | + ... apply_change | ||
| 491 | + ... critical | ||
| 492 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 493 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 494 | + ${dateSigned}= create_fake_date | ||
| 495 | + Run As ${tender_owner} Застосувати зміну для угоди ${AGREEMENT_UAID} ${dateSigned} cancelled | ||
| 496 | + | ||
| 497 | + | ||
| 498 | +Відображення статусу cancelled зміни partyWithdrawal | ||
| 499 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення зміни | ||
| 500 | + ... viewer | ||
| 501 | + ... ${USERS.users['${viewer}'].broker} | ||
| 502 | + ... change_view | ||
| 503 | + ... critical | ||
| 504 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 505 | + Звірити поле угоди із значенням | ||
| 506 | + ... ${viewer} | ||
| 507 | + ... ${AGREEMENT_UAID} | ||
| 508 | + ... cancelled | ||
| 509 | + ... changes[3].status | ||
| 510 | + | ||
| 511 | + | ||
| 512 | +Можливість завершити угоду | ||
| 513 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Завершення угоди | ||
| 514 | + ... tender_owner | ||
| 515 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 516 | + ... agreement_termination | ||
| 517 | + ... critical | ||
| 518 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 519 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 520 | + Run As ${tender_owner} Завершити угоду ${AGREEMENT_UAID} | ||
| 521 | + | ||
| 522 | + | ||
| 523 | +Звірити статус завершеної угоди | ||
| 524 | + [Tags] ${USERS.users['${viewer}'].broker}: Завершення угоди | ||
| 525 | + ... viewer | ||
| 526 | + ... ${USERS.users['${viewer}'].broker} | ||
| 527 | + ... agreement_termination | ||
| 528 | + ... critical | ||
| 529 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 530 | + Remove From Dictionary ${USERS.users['${viewer}'].agreement_data.data} status | ||
| 531 | + Звірити поле угоди із значенням | ||
| 532 | + ... ${viewer} | ||
| 533 | + ... ${AGREEMENT_UAID} | ||
| 534 | + ... terminated | ||
| 535 | + ... status |
| @@ -1365,6 +1365,33 @@ Resource resource.robot | @@ -1365,6 +1365,33 @@ Resource resource.robot | ||
| 1365 | Remove File ${file_path} | 1365 | Remove File ${file_path} |
| 1366 | 1366 | ||
| 1367 | 1367 | ||
| 1368 | +Можливість завантажити документ для рамкової угоди користувачем ${username} | ||
| 1369 | + ${file_path} ${file_name} ${file_content}= create_fake_doc | ||
| 1370 | + ${doc_id}= get_id_from_string ${file_name} | ||
| 1371 | + ${doc}= Create Dictionary | ||
| 1372 | + ... id=${doc_id} | ||
| 1373 | + ... name=${file_name} | ||
| 1374 | + ... content=${file_content} | ||
| 1375 | + Set to dictionary ${USERS.users['${username}']} contract_doc=${doc} | ||
| 1376 | + Run As ${username} Завантажити документ в рамкову угоду ${file_path} ${USERS.users['${username}'].tender_data.data.agreements[0].agreementID} | ||
| 1377 | + Remove File ${file_path} | ||
| 1378 | + | ||
| 1379 | + | ||
| 1380 | +Можливість завантажити документ для зміни у рамковій угоді користувачем ${username} | ||
| 1381 | + ${file_path} ${file_name} ${file_content}= create_fake_doc | ||
| 1382 | + ${doc_id}= get_id_from_string ${file_name} | ||
| 1383 | + ${doc}= Create Dictionary | ||
| 1384 | + ... id=${doc_id} | ||
| 1385 | + ... name=${file_name} | ||
| 1386 | + ... content=${file_content} | ||
| 1387 | + Set to dictionary ${USERS.users['${username}']} contract_doc=${doc} | ||
| 1388 | + Run As ${username} Завантажити документ для зміни у рамковій угоді | ||
| 1389 | + ... ${file_path} | ||
| 1390 | + ... ${USERS.users['${username}'].tender_data.data.agreements[0].agreementID} | ||
| 1391 | + ... ${USERS.users['${username}'].agreement_data.data['items'][0]['id']} | ||
| 1392 | + Remove File ${file_path} | ||
| 1393 | + | ||
| 1394 | + | ||
| 1368 | Можливість укласти угоду для закупівлі | 1395 | Можливість укласти угоду для закупівлі |
| 1369 | Run as ${tender_owner} | 1396 | Run as ${tender_owner} |
| 1370 | ... Підтвердити підписання контракту | 1397 | ... Підтвердити підписання контракту |
| @@ -43,6 +43,19 @@ Library openprocurement_client.utils | @@ -43,6 +43,19 @@ Library openprocurement_client.utils | ||
| 43 | [return] ${monitoring_id} | 43 | [return] ${monitoring_id} |
| 44 | 44 | ||
| 45 | 45 | ||
| 46 | +Отримати internal id угоди по UAid | ||
| 47 | + [Arguments] ${username} ${agreement_uaid} | ||
| 48 | + Log ${username} | ||
| 49 | + Log ${agreement_uaid} | ||
| 50 | + Log Many ${USERS.users['${username}'].id_map} | ||
| 51 | + ${status}= Run Keyword And Return Status Dictionary Should Contain Key ${USERS.users['${username}'].id_map} ${agreement_uaid} | ||
| 52 | + Run Keyword And Return If ${status} Get From Dictionary ${USERS.users['${username}'].id_map} ${agreement_uaid} | ||
| 53 | + Call Method ${USERS.users['${username}'].agreement_client} get_agreements | ||
| 54 | + ${agreement_id}= Wait Until Keyword Succeeds 5x 30 sec get_agreement_id_by_uaid ${agreement_uaid} ${USERS.users['${username}'].agreement_client} | ||
| 55 | + Set To Dictionary ${USERS.users['${username}'].id_map} ${agreement_uaid} ${agreement_id} | ||
| 56 | + [return] ${agreement_id} | ||
| 57 | + | ||
| 58 | + | ||
| 46 | Підготувати клієнт для користувача | 59 | Підготувати клієнт для користувача |
| 47 | [Arguments] ${username} | 60 | [Arguments] ${username} |
| 48 | [Documentation] Відкрити браузер, створити об’єкти api wrapper і | 61 | [Documentation] Відкрити браузер, створити об’єкти api wrapper і |
| @@ -62,7 +75,9 @@ Library openprocurement_client.utils | @@ -62,7 +75,9 @@ Library openprocurement_client.utils | ||
| 62 | ... prepare_plan_api_wrapper ${USERS.users['${username}'].api_key} PLANS ${API_HOST_URL} ${API_VERSION} | 75 | ... prepare_plan_api_wrapper ${USERS.users['${username}'].api_key} PLANS ${API_HOST_URL} ${API_VERSION} |
| 63 | ... ELSE prepare_api_wrapper ${USERS.users['${username}'].api_key} ${RESOURCE} ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper} | 76 | ... ELSE prepare_api_wrapper ${USERS.users['${username}'].api_key} ${RESOURCE} ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper} |
| 64 | ${dasu_api_wraper}= prepare_dasu_api_wrapper ${USERS.users['${username}'].dasu_api_key} ${DASU_RESOURCE} ${DASU_API_HOST_URL} ${DASU_API_VERSION} ${ds_api_wraper} | 77 | ${dasu_api_wraper}= prepare_dasu_api_wrapper ${USERS.users['${username}'].dasu_api_key} ${DASU_RESOURCE} ${DASU_API_HOST_URL} ${DASU_API_VERSION} ${ds_api_wraper} |
| 78 | + ${agreement_wrapper}= prepare_agreement_api_wrapper ${USERS.users['${username}'].api_key} AGREEMENTS ${API_HOST_URL} ${API_VERSION} ${ds_api_wraper} | ||
| 65 | Set To Dictionary ${USERS.users['${username}']} client=${api_wrapper} | 79 | Set To Dictionary ${USERS.users['${username}']} client=${api_wrapper} |
| 80 | + Set To Dictionary ${USERS.users['${username}']} agreement_client=${agreement_wrapper} | ||
| 66 | Set To Dictionary ${USERS.users['${username}']} dasu_client=${dasu_api_wraper} | 81 | Set To Dictionary ${USERS.users['${username}']} dasu_client=${dasu_api_wraper} |
| 67 | Set To Dictionary ${USERS.users['${username}']} access_token=${EMPTY} | 82 | Set To Dictionary ${USERS.users['${username}']} access_token=${EMPTY} |
| 68 | ${id_map}= Create Dictionary | 83 | ${id_map}= Create Dictionary |
| @@ -75,6 +90,8 @@ Library openprocurement_client.utils | @@ -75,6 +90,8 @@ Library openprocurement_client.utils | ||
| 75 | ${contract_api_wrapper}= prepare_contract_api_wrapper ${USERS.users['${username}'].api_key} CONTRACTS ${api_host_url} ${api_version} ${ds_api_wraper} | 90 | ${contract_api_wrapper}= prepare_contract_api_wrapper ${USERS.users['${username}'].api_key} CONTRACTS ${api_host_url} ${api_version} ${ds_api_wraper} |
| 76 | Set To Dictionary ${USERS.users['${username}']} contracting_client=${contract_api_wrapper} | 91 | Set To Dictionary ${USERS.users['${username}']} contracting_client=${contract_api_wrapper} |
| 77 | Set To Dictionary ${USERS.users['${username}']} contract_access_token=${EMPTY} | 92 | Set To Dictionary ${USERS.users['${username}']} contract_access_token=${EMPTY} |
| 93 | + Set To Dictionary ${USERS.users['${username}']} agreement_access_token=${EMPTY} | ||
| 94 | + ${contracts_id_map}= Create Dictionary | ||
| 78 | ${contracts_id_map}= Create Dictionary | 95 | ${contracts_id_map}= Create Dictionary |
| 79 | Set To Dictionary ${USERS.users['${username}']} contracts_id_map=${contracts_id_map} | 96 | Set To Dictionary ${USERS.users['${username}']} contracts_id_map=${contracts_id_map} |
| 80 | Log Variables | 97 | Log Variables |
| @@ -258,6 +275,16 @@ Library openprocurement_client.utils | @@ -258,6 +275,16 @@ Library openprocurement_client.utils | ||
| 258 | [return] ${monitoring} | 275 | [return] ${monitoring} |
| 259 | 276 | ||
| 260 | 277 | ||
| 278 | +Пошук угоди по ідентифікатору | ||
| 279 | + [Arguments] ${username} ${agreement_uaid} ${save_key}=agreement_data | ||
| 280 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | ||
| 281 | + ${agreement}= Call Method ${USERS.users['${username}'].agreement_client} get_agreement ${internalid} | ||
| 282 | + Set To Dictionary ${USERS.users['${username}']} ${save_key}=${agreement} | ||
| 283 | + ${agreement}= munch_dict arg=${agreement} | ||
| 284 | + Log ${agreement} | ||
| 285 | + [return] ${agreement} | ||
| 286 | + | ||
| 287 | + | ||
| 261 | Отримати доступ до об'єкта моніторингу | 288 | Отримати доступ до об'єкта моніторингу |
| 262 | [Arguments] ${username} ${monitoring_uaid} ${save_key}=monitoring | 289 | [Arguments] ${username} ${monitoring_uaid} ${save_key}=monitoring |
| 263 | ${token}= Set Variable ${USERS.users['${username}'].access_token} | 290 | ${token}= Set Variable ${USERS.users['${username}'].access_token} |
| @@ -1295,7 +1322,7 @@ Library openprocurement_client.utils | @@ -1295,7 +1322,7 @@ Library openprocurement_client.utils | ||
| 1295 | 1322 | ||
| 1296 | 1323 | ||
| 1297 | Завантажити документ в ставку | 1324 | Завантажити документ в ставку |
| 1298 | - [Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents | 1325 | + [Arguments] ${username} ${path} ${tender_uaid} ${doc_name}=documents ${doc_type}=${None} |
| 1299 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id} | 1326 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id} |
| 1300 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 1327 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 1301 | ${tender}= set_access_key ${tender} ${USERS.users['${username}']['access_token']} | 1328 | ${tender}= set_access_key ${tender} ${USERS.users['${username}']['access_token']} |
| @@ -1303,7 +1330,9 @@ Library openprocurement_client.utils | @@ -1303,7 +1330,9 @@ Library openprocurement_client.utils | ||
| 1303 | ... ${path} | 1330 | ... ${path} |
| 1304 | ... ${tender.data.id} | 1331 | ... ${tender.data.id} |
| 1305 | ... ${bid_id} | 1332 | ... ${bid_id} |
| 1333 | + ... doc_type=${doc_type} | ||
| 1306 | ... access_token=${tender.access.token} | 1334 | ... access_token=${tender.access.token} |
| 1335 | + ... subitem_name=${doc_name} | ||
| 1307 | ${uploaded_file} = Create Dictionary | 1336 | ${uploaded_file} = Create Dictionary |
| 1308 | ... filepath=${path} | 1337 | ... filepath=${path} |
| 1309 | ... upload_response=${response} | 1338 | ... upload_response=${response} |
| @@ -2039,3 +2068,102 @@ Library openprocurement_client.utils | @@ -2039,3 +2068,102 @@ Library openprocurement_client.utils | ||
| 2039 | ${document}= get_document_by_id ${tender.data} ${doc_id} | 2068 | ${document}= get_document_by_id ${tender.data} ${doc_id} |
| 2040 | ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title} | 2069 | ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title} |
| 2041 | [return] ${filename} | 2070 | [return] ${filename} |
| 2071 | + | ||
| 2072 | + | ||
| 2073 | +Отримати доступ до угоди | ||
| 2074 | + [Arguments] ${username} ${agreement_uaid} | ||
| 2075 | + ${token}= Set Variable ${USERS.users['${username}'].access_token} | ||
| 2076 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | ||
| 2077 | + ${agreement}= Call Method ${USERS.users['${username}'].agreement_client} patch_credentials ${internalid} ${token} | ||
| 2078 | + Set To Dictionary ${USERS.users['${username}']} agreement_access_token=${agreement.access.token} | ||
| 2079 | + ${agreement}= munch_dict arg=${agreement} | ||
| 2080 | + [return] ${agreement} | ||
| 2081 | + | ||
| 2082 | + | ||
| 2083 | +Внести зміну в угоду | ||
| 2084 | + [Arguments] ${username} ${agreement_uaid} ${change_data} | ||
| 2085 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | ||
| 2086 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} create_change | ||
| 2087 | + ... ${internalid} | ||
| 2088 | + ... ${change_data} | ||
| 2089 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
| 2090 | + Log ${reply} | ||
| 2091 | + | ||
| 2092 | + | ||
| 2093 | +Застосувати зміну для угоди | ||
| 2094 | + [Arguments] ${username} ${agreement_uaid} ${dateSigned} ${status} | ||
| 2095 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | ||
| 2096 | + ${data}= Create Dictionary status=${status} dateSigned=${dateSigned} | ||
| 2097 | + ${data}= Create Dictionary data=${data} | ||
| 2098 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_change | ||
| 2099 | + ... ${agreement.data.id} | ||
| 2100 | + ... ${data} | ||
| 2101 | + ... ${agreement.data.changes[-1].id} | ||
| 2102 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
| 2103 | + Log ${reply} | ||
| 2104 | + | ||
| 2105 | + | ||
| 2106 | +Оновити властивості угоди | ||
| 2107 | + [Arguments] ${username} ${agreement_uaid} ${data} | ||
| 2108 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | ||
| 2109 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_change | ||
| 2110 | + ... ${agreement.data.id} | ||
| 2111 | + ... ${data} | ||
| 2112 | + ... ${agreement.data.changes[-1].id} | ||
| 2113 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
| 2114 | + Log ${reply} | ||
| 2115 | + | ||
| 2116 | + | ||
| 2117 | +Завантажити документ в рамкову угоду | ||
| 2118 | + [Arguments] ${username} ${filepath} ${agreement_uaid} | ||
| 2119 | + Log ${username} | ||
| 2120 | + Log ${agreement_uaid} | ||
| 2121 | + Log ${filepath} | ||
| 2122 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | ||
| 2123 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} upload_document | ||
| 2124 | + ... ${filepath} | ||
| 2125 | + ... ${agreement.data.id} | ||
| 2126 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
| 2127 | + Log Object Data ${reply} reply | ||
| 2128 | + [return] ${reply} | ||
| 2129 | + | ||
| 2130 | + | ||
| 2131 | +Завантажити документ для зміни у рамковій угоді | ||
| 2132 | + [Arguments] ${username} ${filepath} ${agreement_uaid} ${item_id} | ||
| 2133 | + Log ${username} | ||
| 2134 | + Log ${agreement_uaid} | ||
| 2135 | + Log ${filepath} | ||
| 2136 | + ${agreement}= openprocurement_client.Пошук угоди по ідентифікатору ${username} ${agreement_uaid} | ||
| 2137 | + ${document}= openprocurement_client.Завантажити документ в рамкову угоду ${username} ${filepath} ${agreement_uaid} | ||
| 2138 | + Set to dictionary ${document.data} documentOf=change | ||
| 2139 | + Set to dictionary ${document.data} relatedItem=${item_id} | ||
| 2140 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_document | ||
| 2141 | + ... ${agreement.data.id} | ||
| 2142 | + ... ${document} | ||
| 2143 | + ... ${document.data.id} | ||
| 2144 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
| 2145 | + [return] ${reply} | ||
| 2146 | + | ||
| 2147 | + | ||
| 2148 | +Завершити угоду | ||
| 2149 | + [Arguments] ${username} ${agreement_uaid} | ||
| 2150 | + ${internalid}= openprocurement_client.Отримати internal id угоди по UAid ${username} ${agreement_uaid} | ||
| 2151 | + ${data}= Create Dictionary status=terminated | ||
| 2152 | + ${data}= Create Dictionary data=${data} | ||
| 2153 | + ${reply}= Call Method ${USERS.users['${username}'].agreement_client} patch_agreement | ||
| 2154 | + ... ${internalid} | ||
| 2155 | + ... ${data} | ||
| 2156 | + ... access_token=${USERS.users['${username}'].agreement_access_token} | ||
| 2157 | + | ||
| 2158 | + | ||
| 2159 | +Отримати інформацію із угоди | ||
| 2160 | + [Arguments] ${username} ${agreement_uaid} ${field_name} | ||
| 2161 | + openprocurement_client.Пошук угоди по ідентифікатору | ||
| 2162 | + ... ${username} | ||
| 2163 | + ... ${agreement_uaid} | ||
| 2164 | + ${status} ${field_value}= Run Keyword And Ignore Error | ||
| 2165 | + ... Get From Object | ||
| 2166 | + ... ${USERS.users['${username}'].agreement_data.data} | ||
| 2167 | + ... ${field_name} | ||
| 2168 | + Run Keyword If '${status}' == 'PASS' Return From Keyword ${field_value} | ||
| 2169 | + Fail Field not found: ${field_name} |
| 1 | from openprocurement_client.resources.tenders import Client | 1 | from openprocurement_client.resources.tenders import Client |
| 2 | from openprocurement_client.resources.edr import EDRClient | 2 | from openprocurement_client.resources.edr import EDRClient |
| 3 | +from openprocurement_client.resources.agreements import AgreementClient | ||
| 3 | from openprocurement_client.dasu_client import DasuClient | 4 | from openprocurement_client.dasu_client import DasuClient |
| 4 | from openprocurement_client.resources.document_service import DocumentServiceClient | 5 | from openprocurement_client.resources.document_service import DocumentServiceClient |
| 5 | from openprocurement_client.resources.plans import PlansClient | 6 | from openprocurement_client.resources.plans import PlansClient |
| @@ -34,6 +35,13 @@ class StableDsClient(DocumentServiceClient): | @@ -34,6 +35,13 @@ class StableDsClient(DocumentServiceClient): | ||
| 34 | return super(StableDsClient, self).request(*args, **kwargs) | 35 | return super(StableDsClient, self).request(*args, **kwargs) |
| 35 | 36 | ||
| 36 | 37 | ||
| 38 | +class StableAgreementClient(AgreementClient): | ||
| 39 | + @retry(stop_max_attempt_number=100, wait_random_min=500, | ||
| 40 | + wait_random_max=4000, retry_on_exception=retry_if_request_failed) | ||
| 41 | + def request(self, *args, **kwargs): | ||
| 42 | + return super(StableAgreementClient, self).request(*args, **kwargs) | ||
| 43 | + | ||
| 44 | + | ||
| 37 | def prepare_api_wrapper(key, resource, host_url, api_version, ds_client=None): | 45 | def prepare_api_wrapper(key, resource, host_url, api_version, ds_client=None): |
| 38 | return StableClient(key, resource, host_url, api_version, | 46 | return StableClient(key, resource, host_url, api_version, |
| 39 | ds_client=ds_client) | 47 | ds_client=ds_client) |
| @@ -43,6 +51,11 @@ def prepare_ds_api_wrapper(ds_host_url, auth_ds): | @@ -43,6 +51,11 @@ def prepare_ds_api_wrapper(ds_host_url, auth_ds): | ||
| 43 | return StableDsClient(ds_host_url, auth_ds) | 51 | return StableDsClient(ds_host_url, auth_ds) |
| 44 | 52 | ||
| 45 | 53 | ||
| 54 | +def prepare_agreement_api_wrapper(key, resource, host_url, api_version, ds_client=None): | ||
| 55 | + return StableAgreementClient(key, resource, host_url, api_version, | ||
| 56 | + ds_client=ds_client) | ||
| 57 | + | ||
| 58 | + | ||
| 46 | class ContractingStableClient(ContractingClient): | 59 | class ContractingStableClient(ContractingClient): |
| 47 | @retry(stop_max_attempt_number=100, wait_random_min=500, wait_random_max=4000, retry_on_exception=retry_if_request_failed) | 60 | @retry(stop_max_attempt_number=100, wait_random_min=500, wait_random_max=4000, retry_on_exception=retry_if_request_failed) |
| 48 | def request(self, *args, **kwargs): | 61 | def request(self, *args, **kwargs): |
| @@ -650,6 +650,32 @@ def test_change_data(): | @@ -650,6 +650,32 @@ def test_change_data(): | ||
| 650 | }) | 650 | }) |
| 651 | 651 | ||
| 652 | 652 | ||
| 653 | +def test_agreement_change_data(rationaleType): | ||
| 654 | + return munchify( | ||
| 655 | + { | ||
| 656 | + "data": | ||
| 657 | + { | ||
| 658 | + "rationale": fake.description(), | ||
| 659 | + "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True), | ||
| 660 | + "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True), | ||
| 661 | + "rationaleType": rationaleType, | ||
| 662 | + } | ||
| 663 | + }) | ||
| 664 | + | ||
| 665 | + | ||
| 666 | +def test_modification_data(item_id, field_name, field_value): | ||
| 667 | + data = { | ||
| 668 | + "modifications": [ | ||
| 669 | + { | ||
| 670 | + "itemId": item_id, | ||
| 671 | + field_name: field_value | ||
| 672 | + } | ||
| 673 | + ] | ||
| 674 | + } | ||
| 675 | + return munchify({'data':data}) | ||
| 676 | + | ||
| 677 | + | ||
| 678 | + | ||
| 653 | def get_hash(file_contents): | 679 | def get_hash(file_contents): |
| 654 | return ("md5:"+hashlib.md5(file_contents).hexdigest()) | 680 | return ("md5:"+hashlib.md5(file_contents).hexdigest()) |
| 655 | 681 |
| @@ -340,6 +340,25 @@ Get Broker Property By Username | @@ -340,6 +340,25 @@ Get Broker Property By Username | ||
| 340 | [Return] ${change_data} | 340 | [Return] ${change_data} |
| 341 | 341 | ||
| 342 | 342 | ||
| 343 | +Підготувати дані про зміну до угоди | ||
| 344 | + [Arguments] ${username} ${rationaleType} | ||
| 345 | + ${change_data}= test_agreement_change_data ${rationaleType} | ||
| 346 | + Set To Dictionary ${USERS.users['${username}']} change_data=${change_data} | ||
| 347 | + Log ${change_data} | ||
| 348 | + [Return] ${change_data} | ||
| 349 | + | ||
| 350 | + | ||
| 351 | +Підготувати дані для оновлення властивості угоди | ||
| 352 | + [Arguments] ${username} ${field_name} ${field_value} | ||
| 353 | + ${modification_data}= test_modification_data | ||
| 354 | + ... ${USERS.users['${username}'].agreement_data.data['items'][0]['id']} | ||
| 355 | + ... ${field_name} | ||
| 356 | + ... ${field_value} | ||
| 357 | + Set To Dictionary ${USERS.users['${username}']} modification_data=${modification_data} | ||
| 358 | + Log ${modification_data} | ||
| 359 | + [Return] ${modification_data} | ||
| 360 | + | ||
| 361 | + | ||
| 343 | Адаптувати дані для оголошення тендера | 362 | Адаптувати дані для оголошення тендера |
| 344 | [Arguments] ${tender_data} | 363 | [Arguments] ${tender_data} |
| 345 | # munchify is used to make deep copy of ${tender_data} | 364 | # munchify is used to make deep copy of ${tender_data} |
| @@ -530,6 +549,12 @@ Log differences between dicts | @@ -530,6 +549,12 @@ Log differences between dicts | ||
| 530 | Порівняти об'єкти ${left} ${right} | 549 | Порівняти об'єкти ${left} ${right} |
| 531 | 550 | ||
| 532 | 551 | ||
| 552 | +Звірити поле угоди із значенням | ||
| 553 | + [Arguments] ${username} ${agreement_uaid} ${left} ${field} | ||
| 554 | + ${right}= Run As ${username} Отримати інформацію із угоди ${agreement_uaid} ${field} | ||
| 555 | + Порівняти об'єкти ${left} ${right} | ||
| 556 | + | ||
| 557 | + | ||
| 533 | Звірити поле зміни до договору | 558 | Звірити поле зміни до договору |
| 534 | [Arguments] ${username} ${contract_uaid} ${change_data} ${field} | 559 | [Arguments] ${username} ${contract_uaid} ${change_data} ${field} |
| 535 | ${left}= get_from_object ${change_data.data} ${field} | 560 | ${left}= get_from_object ${change_data.data} ${field} |
| @@ -690,6 +715,24 @@ Log differences between dicts | @@ -690,6 +715,24 @@ Log differences between dicts | ||
| 690 | [return] ${field_value} | 715 | [return] ${field_value} |
| 691 | 716 | ||
| 692 | 717 | ||
| 718 | +Отримати дані із угоди | ||
| 719 | + [Arguments] ${username} ${agreement_uaid} ${field_name} | ||
| 720 | + ${status} ${field_value}= Run keyword and ignore error | ||
| 721 | + ... get_from_object | ||
| 722 | + ... ${USERS.users['${username}'].agreement_data.data} | ||
| 723 | + ... ${field_name} | ||
| 724 | + # If field in cache, return its value | ||
| 725 | + Run Keyword if '${status}' == 'PASS' Return from keyword ${field_value} | ||
| 726 | + # Else call broker to find field | ||
| 727 | + ${field_value}= Run As ${username} Отримати інформацію із угоди ${agreement_uaid} ${field_name} | ||
| 728 | + # And caching its value before return | ||
| 729 | + Set_To_Object ${USERS.users['${username}'].agreement_data.data} ${field_name} ${field_value} | ||
| 730 | + ${data}= munch_dict arg=${USERS.users['${username}'].agreement_data.data} | ||
| 731 | + Set To Dictionary ${USERS.users['${username}'].agreement_data} data=${data} | ||
| 732 | + Log ${USERS.users['${username}'].agreement_data.data} | ||
| 733 | + [return] ${field_value} | ||
| 734 | + | ||
| 735 | + | ||
| 693 | Отримати дані із об'єкта моніторингу | 736 | Отримати дані із об'єкта моніторингу |
| 694 | [Arguments] ${username} ${monitoring_uaid} ${field_name} ${object_id}=${Empty} | 737 | [Arguments] ${username} ${monitoring_uaid} ${field_name} ${object_id}=${Empty} |
| 695 | ${status} ${field_value}= Run keyword and ignore error | 738 | ${status} ${field_value}= Run keyword and ignore error |
| @@ -1779,7 +1779,17 @@ ${MOZ_INTEGRATION} ${False} | @@ -1779,7 +1779,17 @@ ${MOZ_INTEGRATION} ${False} | ||
| 1779 | ... openeu_add_financial_bid_doc_by_provider | 1779 | ... openeu_add_financial_bid_doc_by_provider |
| 1780 | ... critical | 1780 | ... critical |
| 1781 | [Teardown] Оновити LAST_MODIFICATION_DATE | 1781 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 1782 | - Можливість завантажити financial_documents документ до пропозиції учасником ${provider} | 1782 | + Можливість завантажити документ до пропозиції учасником ${provider} financial_documents |
| 1783 | + | ||
| 1784 | + | ||
| 1785 | +Можливість завантажити фінансовий документ winningBid до пропозиції першим учасником | ||
| 1786 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | ||
| 1787 | + ... provider | ||
| 1788 | + ... ${USERS.users['${provider}'].broker} | ||
| 1789 | + ... add_winningBid_doc_by_provider | ||
| 1790 | + ... critical | ||
| 1791 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 1792 | + Можливість завантажити документ до пропозиції учасником ${provider} financial_documents winningBid | ||
| 1783 | 1793 | ||
| 1784 | 1794 | ||
| 1785 | Можливість завантажити кваліфікаційний документ до пропозиції першим учасником | 1795 | Можливість завантажити кваліфікаційний документ до пропозиції першим учасником |
| @@ -1789,7 +1799,7 @@ ${MOZ_INTEGRATION} ${False} | @@ -1789,7 +1799,7 @@ ${MOZ_INTEGRATION} ${False} | ||
| 1789 | ... openeu_add_qualification_bid_doc_by_provider | 1799 | ... openeu_add_qualification_bid_doc_by_provider |
| 1790 | ... critical | 1800 | ... critical |
| 1791 | [Teardown] Оновити LAST_MODIFICATION_DATE | 1801 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 1792 | - Можливість завантажити qualification_documents документ до пропозиції учасником ${provider} | 1802 | + Можливість завантажити документ до пропозиції учасником ${provider} qualification_documents |
| 1793 | 1803 | ||
| 1794 | 1804 | ||
| 1795 | Можливість завантажити документ для критеріїв прийнятності до пропозиції першим учасником | 1805 | Можливість завантажити документ для критеріїв прийнятності до пропозиції першим учасником |
| @@ -1799,7 +1809,7 @@ ${MOZ_INTEGRATION} ${False} | @@ -1799,7 +1809,7 @@ ${MOZ_INTEGRATION} ${False} | ||
| 1799 | ... openeu_add_eligibility_bid_doc_by_provider | 1809 | ... openeu_add_eligibility_bid_doc_by_provider |
| 1800 | ... critical | 1810 | ... critical |
| 1801 | [Teardown] Оновити LAST_MODIFICATION_DATE | 1811 | [Teardown] Оновити LAST_MODIFICATION_DATE |
| 1802 | - Можливість завантажити eligibility_documents документ до пропозиції учасником ${provider} | 1812 | + Можливість завантажити документ до пропозиції учасником ${provider} eligibility_documents |
| 1803 | 1813 | ||
| 1804 | 1814 | ||
| 1805 | Неможливість задати запитання на тендер після завершення періоду уточнень | 1815 | Неможливість задати запитання на тендер після завершення періоду уточнень |
| @@ -62,6 +62,8 @@ from .initial_data import ( | @@ -62,6 +62,8 @@ from .initial_data import ( | ||
| 62 | test_status_data, | 62 | test_status_data, |
| 63 | test_elimination_report, | 63 | test_elimination_report, |
| 64 | test_tender_data_esco, | 64 | test_tender_data_esco, |
| 65 | + test_modification_data, | ||
| 66 | + test_agreement_change_data, | ||
| 65 | create_fake_title, | 67 | create_fake_title, |
| 66 | create_fake_value_amount, | 68 | create_fake_value_amount, |
| 67 | test_change_document_data, | 69 | test_change_document_data, |
| @@ -12,6 +12,7 @@ | @@ -12,6 +12,7 @@ | ||
| 12 | -i find_tender | 12 | -i find_tender |
| 13 | 13 | ||
| 14 | -i tender_view | 14 | -i tender_view |
| 15 | +-i tender_view_value | ||
| 15 | -i tender_view_unit_code | 16 | -i tender_view_unit_code |
| 16 | -i tender_view_coordinates | 17 | -i tender_view_coordinates |
| 17 | -i tender_view_framework | 18 | -i tender_view_framework |
| @@ -58,6 +59,7 @@ | @@ -58,6 +59,7 @@ | ||
| 58 | -i openeu_add_financial_bid_doc_by_provider | 59 | -i openeu_add_financial_bid_doc_by_provider |
| 59 | -i openeu_add_qualification_bid_doc_by_provider | 60 | -i openeu_add_qualification_bid_doc_by_provider |
| 60 | -i openeu_add_eligibility_bid_doc_by_provider | 61 | -i openeu_add_eligibility_bid_doc_by_provider |
| 62 | +-i add_winningBid_doc_by_provider | ||
| 61 | 63 | ||
| 62 | -i pre-qualification_add_doc_to_tender | 64 | -i pre-qualification_add_doc_to_tender |
| 63 | -i pre-qualification_add_doc_to_lot | 65 | -i pre-qualification_add_doc_to_lot |
| @@ -76,6 +78,7 @@ | @@ -76,6 +78,7 @@ | ||
| 76 | -i pre-qualification_approve_qualifications | 78 | -i pre-qualification_approve_qualifications |
| 77 | 79 | ||
| 78 | -i auction_url | 80 | -i auction_url |
| 81 | +-i auction | ||
| 79 | 82 | ||
| 80 | -i qualification_add_doc_to_first_award | 83 | -i qualification_add_doc_to_first_award |
| 81 | -i qualification_approve_first_award | 84 | -i qualification_approve_first_award |
| @@ -92,4 +95,13 @@ | @@ -92,4 +95,13 @@ | ||
| 92 | -i contract_stand_still | 95 | -i contract_stand_still |
| 93 | -i awarding_approve_first_award | 96 | -i awarding_approve_first_award |
| 94 | -i modify_agreement | 97 | -i modify_agreement |
| 95 | --i agreement_registration | ||
| 98 | +-i agreement_registration | ||
| 99 | + | ||
| 100 | + | ||
| 101 | +-i find_agreement | ||
| 102 | +-i add_agreement_doc | ||
| 103 | +-i submit_change | ||
| 104 | +-i change_view | ||
| 105 | +-i modification | ||
| 106 | +-i modification_view | ||
| 107 | +-i apply_change |
Please
register
or
login
to post a comment