Commit 2d8fee520cb9954e656a6cd97bbe845ab9b52867

Authored by alexdiatlov
Committed by GitHub
2 parents 41d625f4 90ab36de

Merge pull request #55 from openprocurement/master

Agreement
@@ -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
  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