Showing
17 changed files
with
1710 additions
and
1242 deletions
| @@ -37,6 +37,7 @@ gh_push = git@github.com: | @@ -37,6 +37,7 @@ gh_push = git@github.com: | ||
| 37 | [sources] | 37 | [sources] |
| 38 | barbecue = git ${remotes:gh}openprocurement/barbecue.git | 38 | barbecue = git ${remotes:gh}openprocurement/barbecue.git |
| 39 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git | 39 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git |
| 40 | +robot_tests.broker.dzo = git ${remotes:gh}openprocurement/robot_tests.broker.dzo.git | ||
| 40 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git | 41 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git |
| 41 | robot_tests.broker.newtend = git ${remotes:gh}openprocurement/robot_tests.broker.newtend.git | 42 | robot_tests.broker.newtend = git ${remotes:gh}openprocurement/robot_tests.broker.newtend.git |
| 42 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git | 43 | robot_tests.broker.privatmarket = git ${remotes:gh}openprocurement/robot_tests.broker.privatmarket.git |
| 1 | -*** Settings *** | ||
| 2 | -Library Selenium2Screenshots | ||
| 3 | -Library String | ||
| 4 | -Library DateTime | ||
| 5 | -Library netcast_service.py | ||
| 6 | - | ||
| 7 | -*** Variables *** | ||
| 8 | -${locator.tenderId} xpath=//td[./text()='TenderID']/following-sibling::td[1] | ||
| 9 | -${locator.title} xpath=//td[./text()='Загальна назва закупівлі']/following-sibling::td[1] | ||
| 10 | -${locator.description} xpath=//td[./text()='Предмет закупівлі']/following-sibling::td[1] | ||
| 11 | -${locator.value.amount} xpath=//td[./text()='Максимальний бюджет']/following-sibling::td[1] | ||
| 12 | -${locator.minimalStep.amount} xpath=//td[./text()='Мінімальний крок зменшення ціни']/following-sibling::td[1] | ||
| 13 | -${locator.enquiryPeriod.endDate} xpath=//td[./text()='Завершення періоду обговорення']/following-sibling::td[1] | ||
| 14 | -${locator.tenderPeriod.endDate} xpath=//td[./text()='Завершення періоду прийому пропозицій']/following-sibling::td[1] | ||
| 15 | -${locator.items[0].deliveryAddress.countryName} xpath=//td[@class='nameField'][./text()='Адреса поставки']/following-sibling::td[1] | ||
| 16 | -${locator.items[0].deliveryDate.endDate} xpath=//td[./text()='Кінцева дата поставки']/following-sibling::td[1] | ||
| 17 | -${locator.items[0].classification.scheme} xpath=//td[@class = 'nameField'][./text()='Клас CPV'] | ||
| 18 | -${locator.items[0].classification.id} xpath=//td[./text()='Клас CPV']/following-sibling::td[1]/span[1] | ||
| 19 | -${locator.items[0].classification.description} xpath=//td[./text()='Клас CPV']/following-sibling::td[1]/span[2] | ||
| 20 | -${locator.items[0].additionalClassifications[0].scheme} xpath=//td[@class = 'nameField'][./text()='Клас ДКПП'] | ||
| 21 | -${locator.items[0].additionalClassifications[0].id} xpath=//td[./text()='Клас ДКПП']/following-sibling::td[1]/span[1] | ||
| 22 | -${locator.items[0].additionalClassifications[0].description} xpath=//td[./text()='Клас ДКПП']/following-sibling::td[1]/span[2] | ||
| 23 | -${locator.items[0].quantity} xpath=//td[./text()='Кількість']/following-sibling::td[1]/span[1] | ||
| 24 | -${locator.items[0].unit.code} xpath=//td[./text()='Кількість']/following-sibling::td[1]/span[2] | ||
| 25 | -${locator.questions[0].title} xpath=//div[@class = 'question relative']//div[@class = 'title'] | ||
| 26 | -${locator.questions[0].description} xpath = //div[@class='text'] | ||
| 27 | -${locator.questions[0].date} xpath = //div[@class='date'] | ||
| 28 | -${locator.questions[0].answer} xpath=//div[@class = 'answer relative']//div[@class = 'text'] | ||
| 29 | - | ||
| 30 | -*** Keywords *** | ||
| 31 | -Підготувати клієнт для користувача | ||
| 32 | - [Arguments] @{ARGUMENTS} | ||
| 33 | - [Documentation] Відкрити браузер, створити об’єкт api wrapper, тощо | ||
| 34 | - ... ${ARGUMENTS[0]} == username | ||
| 35 | - Open Browser | ||
| 36 | - ... ${USERS.users['${ARGUMENTS[0]}'].homepage} | ||
| 37 | - ... ${USERS.users['${ARGUMENTS[0]}'].browser} | ||
| 38 | - ... alias=${ARGUMENTS[0]} | ||
| 39 | - Set Window Size @{USERS.users['${ARGUMENTS[0]}'].size} | ||
| 40 | - Set Window Position @{USERS.users['${ARGUMENTS[0]}'].position} | ||
| 41 | - Run Keyword And Ignore Error Pre Login ${ARGUMENTS[0]} | ||
| 42 | - Wait Until Page Contains Element jquery=a[href="/cabinet"] | ||
| 43 | - Click Element jquery=a[href="/cabinet"] | ||
| 44 | - Run Keyword If '${username}' != 'Netcast_Viewer' Login | ||
| 45 | - | ||
| 46 | -Login | ||
| 47 | - [Arguments] @{ARGUMENTS} | ||
| 48 | - Wait Until Page Contains Element name=email 10 | ||
| 49 | - Sleep 1 | ||
| 50 | - Input text name=email ${USERS.users['${username}'].login} | ||
| 51 | - Sleep 2 | ||
| 52 | - Input text name=psw ${USERS.users['${username}'].password} | ||
| 53 | - Wait Until Page Contains Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] 20 | ||
| 54 | - Click Element xpath=//button[contains(@class, 'btn')][./text()='Вхід в кабінет'] | ||
| 55 | - | ||
| 56 | -Pre Login | ||
| 57 | - [Arguments] @{ARGUMENTS} | ||
| 58 | - [Documentation] | ||
| 59 | - ... ${ARGUMENTS[0]} == username | ||
| 60 | - ${login}= Get Broker Property By Username ${ARGUMENTS[0]} login | ||
| 61 | - ${password}= Get Broker Property By Username ${ARGUMENTS[0]} password | ||
| 62 | - Wait Until Page Contains Element name=siteLogin 10 | ||
| 63 | - Input Text name=siteLogin ${login} | ||
| 64 | - Input Text name=sitePass ${password} | ||
| 65 | - Click Button xpath=.//*[@id='table1']/tbody/tr/td/form/p[3]/input | ||
| 66 | - | ||
| 67 | -Створити тендер | ||
| 68 | - [Arguments] @{ARGUMENTS} | ||
| 69 | - [Documentation] | ||
| 70 | - ... ${ARGUMENTS[0]} == username | ||
| 71 | - ... ${ARGUMENTS[1]} == tender_data | ||
| 72 | - #{tender_data}= Add_time_for_GUI_FrontEnds ${ARGUMENTS[1]} | ||
| 73 | - ${items}= Get From Dictionary ${ARGUMENTS[1].data} items | ||
| 74 | - ${title}= Get From Dictionary ${ARGUMENTS[1].data} title | ||
| 75 | - ${description}= Get From Dictionary ${ARGUMENTS[1].data} description | ||
| 76 | - ${budget}= Get From Dictionary ${ARGUMENTS[1].data.value} amount | ||
| 77 | - ${step_rate}= Get From Dictionary ${ARGUMENTS[1].data.minimalStep} amount | ||
| 78 | - | ||
| 79 | - ${items_description}= Get From Dictionary ${ARGUMENTS[1].data} description | ||
| 80 | - ${quantity}= Get From Dictionary ${items[0]} quantity | ||
| 81 | - ${countryName}= Get From Dictionary ${ARGUMENTS[1].data.procuringEntity.address} countryName | ||
| 82 | - ${delivery_end_date}= Get From Dictionary ${items[0].deliveryDate} endDate | ||
| 83 | - ${delivery_end_date}= convert_date_to_slash_format ${delivery_end_date} | ||
| 84 | - ${cpv}= Convert To String Картонки | ||
| 85 | - ${cpv_id}= Get From Dictionary ${items[0].classification} id | ||
| 86 | - ${cpv_id1}= Replace String ${cpv_id} - _ | ||
| 87 | - ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | ||
| 88 | - ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | ||
| 89 | - ${dkpp_id1}= Replace String ${dkpp_id} - _ | ||
| 90 | - | ||
| 91 | - ${enquiry_end_date}= Get From Dictionary ${ARGUMENTS[1].data.enquiryPeriod} endDate | ||
| 92 | - ${enquiry_end_date}= convert_date_to_slash_format ${enquiry_end_date} | ||
| 93 | - ${end_date}= Get From Dictionary ${ARGUMENTS[1].data.tenderPeriod} endDate | ||
| 94 | - ${end_date}= convert_date_to_slash_format ${end_date} | ||
| 95 | - | ||
| 96 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
| 97 | - Wait Until Page Contains Element jquery=a[href="/tenders/new"] 30 | ||
| 98 | - Click Element jquery=a[href="/tenders/new"] | ||
| 99 | - Wait Until Page Contains Element name=tender_title 30 | ||
| 100 | - Input text name=tender_title ${title} | ||
| 101 | - Input text name=tender_description ${description} | ||
| 102 | - Input text name=tender_value_amount ${budget} | ||
| 103 | - Input text name=tender_minimalStep_amount ${step_rate} | ||
| 104 | - | ||
| 105 | -# Додати специфікацю початок | ||
| 106 | - Input text name=items[0][item_description] ${items_description} | ||
| 107 | - Input text name=items[0][item_quantity] ${quantity} | ||
| 108 | - Input text name=items[0][item_deliveryAddress_countryName] ${countryName} | ||
| 109 | - Input text name=items[0][item_deliveryDate_endDate] ${delivery_end_date} | ||
| 110 | - Click Element xpath=//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'] | ||
| 111 | - Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | ||
| 112 | - Input text id=search ${cpv} | ||
| 113 | - Wait Until Page Contains ${cpv_id} | ||
| 114 | - Click Element xpath=//a[contains(@id,'${cpv_id1}')] | ||
| 115 | - Click Element xpath=.//*[@id='select'] | ||
| 116 | - Unselect Frame | ||
| 117 | - Click Element xpath=//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'] | ||
| 118 | - Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | ||
| 119 | - Input text id=search ${dkpp_desc} | ||
| 120 | - Wait Until Page Contains ${dkpp_id} | ||
| 121 | - Click Element xpath=//a[contains(@id,'${dkpp_id1}')] | ||
| 122 | - Click Element xpath=.//*[@id='select'] | ||
| 123 | -# Додати специфікацю кінець | ||
| 124 | - | ||
| 125 | - Unselect Frame | ||
| 126 | - Input text name=plan_date ${enquiry_end_date} | ||
| 127 | - Input text name=tender_enquiryPeriod_endDate ${enquiry_end_date} | ||
| 128 | - Input text name=tender_tenderPeriod_endDate ${end_date} | ||
| 129 | - | ||
| 130 | - Додати предмет ${items[0]} 0 | ||
| 131 | - Run Keyword if '${mode}' == 'multi' Додати багато предметів items | ||
| 132 | - Unselect Frame | ||
| 133 | - | ||
| 134 | - Click Element xpath= //button[@value='publicate'] | ||
| 135 | - Wait Until Page Contains Тендер опубліковано 30 | ||
| 136 | - | ||
| 137 | - ${tender_UAid}= Get Text xpath=//*/section[6]/table/tbody/tr[2]/td[2] | ||
| 138 | - ${Ids}= Convert To String ${tender_UAid} | ||
| 139 | - Run keyword if '${mode}' == 'multi' Set Multi Ids ${tender_UAid} | ||
| 140 | - [return] ${Ids} | ||
| 141 | - | ||
| 142 | -Set Multi Ids | ||
| 143 | - [Arguments] @{ARGUMENTS} | ||
| 144 | - [Documentation] | ||
| 145 | - ... ${ARGUMENTS[1]} == ${tender_UAid} | ||
| 146 | - ${id}= Get Text xpath=//*/section[6]/table/tbody/tr[1]/td[2] | ||
| 147 | - ${Ids}= Create List ${tender_UAid} ${id} | ||
| 148 | - | ||
| 149 | -Додати предмет | ||
| 150 | - [Arguments] @{ARGUMENTS} | ||
| 151 | - [Documentation] | ||
| 152 | - ... ${ARGUMENTS[0]} == items | ||
| 153 | - ... ${ARGUMENTS[1]} == ${INDEX} | ||
| 154 | - ${dkpp_desc1}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} description | ||
| 155 | - ${dkpp_id11}= Get From Dictionary ${ARGUMENTS[0].additionalClassifications[0]} id | ||
| 156 | - ${dkpp_1id}= Replace String ${dkpp_id11} - _ | ||
| 157 | - | ||
| 158 | - Wait Until Page Contains Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | ||
| 159 | - Click Element xpath=//a[contains(@class, 'addMultiItem')][./text()='Додати предмет закупівлі'] | ||
| 160 | - ${index} = Convert To Integer ${ARGUMENTS[1]} | ||
| 161 | - ${index} = Convert To Integer ${index + 1} | ||
| 162 | - Wait Until Page Contains Element name=items[${index}][item_description] 30 | ||
| 163 | - Input text name=items[${index}][item_description] ${description} | ||
| 164 | - Input text name=items[${index}][item_quantity] ${quantity} | ||
| 165 | - | ||
| 166 | - Click Element xpath=(//a[contains(@data-class, 'cpv')][./text()='Визначити за довідником'])[${index} + 1] | ||
| 167 | - Select Frame xpath=//iframe[contains(@src,'/js/classifications/cpv/uk.htm?relation=true')] | ||
| 168 | - Input text id=search ${cpv} | ||
| 169 | - Wait Until Page Contains ${cpv_id} | ||
| 170 | - Click Element xpath=//a[contains(@id,'${cpv_id1}')] | ||
| 171 | - Click Element xpath=.//*[@id='select'] | ||
| 172 | - Unselect Frame | ||
| 173 | - Click Element xpath=(//a[contains(@data-class, 'dkpp')][./text()='Визначити за довідником'])[${index} + 1] | ||
| 174 | - Select Frame xpath=//iframe[contains(@src,'/js/classifications/dkpp/uk.htm?relation=true')] | ||
| 175 | - Input text id=search ${dkpp_desc1} | ||
| 176 | - Wait Until Page Contains ${dkpp_id11} | ||
| 177 | - Click Element xpath=//a[contains(@id,'${dkpp_1id}')] | ||
| 178 | - Click Element xpath=.//*[@id='select'] | ||
| 179 | - Unselect Frame | ||
| 180 | - Capture Page Screenshot | ||
| 181 | - | ||
| 182 | -Додати багато предметів | ||
| 183 | - [Arguments] @{ARGUMENTS} | ||
| 184 | - [Documentation] | ||
| 185 | - ... ${ARGUMENTS[0]} == items | ||
| 186 | - ${Items_length}= Get Length ${items} | ||
| 187 | - : FOR ${INDEX} IN RANGE 1 ${Items_length} | ||
| 188 | - \ Додати предмет ${items[${INDEX}]} ${INDEX} | ||
| 189 | - | ||
| 190 | -додати предмети закупівлі | ||
| 191 | - [Arguments] @{ARGUMENTS} | ||
| 192 | - [Documentation] | ||
| 193 | - ... ${ARGUMENTS[0]} = username | ||
| 194 | - ... ${ARGUMENTS[1]} = ${TENDER_UAID} | ||
| 195 | - ... ${ARGUMENTS[2]} = 3 | ||
| 196 | - ${period_interval}= Get Broker Property By Username ${ARGUMENTS[0]} period_interval | ||
| 197 | - ${tender_data}= prepare_test_tender_data ${period_interval} multi | ||
| 198 | - | ||
| 199 | - ${items}= Get From Dictionary ${tender_data.data} items | ||
| 200 | - ${description}= Get From Dictionary ${tender_data.data} description | ||
| 201 | - ${quantity}= Get From Dictionary ${items[0]} quantity | ||
| 202 | - ${cpv}= Convert To String Картонки | ||
| 203 | - ${cpv_id}= Get From Dictionary ${items[0].classification} id | ||
| 204 | - ${cpv_id1}= Replace String ${cpv_id} - _ | ||
| 205 | - ${dkpp_desc}= Get From Dictionary ${items[0].additionalClassifications[0]} description | ||
| 206 | - ${dkpp_id}= Get From Dictionary ${items[0].additionalClassifications[0]} id | ||
| 207 | - ${dkpp_id1}= Replace String ${dkpp_id} - _ | ||
| 208 | - | ||
| 209 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
| 210 | - Run keyword if '${TEST NAME}' == 'Можливість додати позицію закупівлі в тендер' додати позицію | ||
| 211 | - Run keyword if '${TEST NAME}' != 'Можливість додати позицію закупівлі в тендер' видалити позиції | ||
| 212 | - | ||
| 213 | -додати позицію | ||
| 214 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
| 215 | - Wait Until Page Contains Element xpath=//a[./text()='Редагувати'] 30 | ||
| 216 | - Click Element xpath=//a[./text()='Редагувати'] | ||
| 217 | - Додати багато предметів ${ARGUMENTS[2]} | ||
| 218 | - Wait Until Page Contains Element xpath=//button[./text()='Зберегти'] 30 | ||
| 219 | - Click Element xpath=//button[./text()='Зберегти'] | ||
| 220 | - | ||
| 221 | -видалити позиції | ||
| 222 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
| 223 | - Wait Until Page Contains Element xpath=//a[./text()='Редагувати'] 30 | ||
| 224 | - Click Element xpath=//a[./text()='Редагувати'] | ||
| 225 | - : FOR ${INDEX} IN RANGE 1 ${ARGUMENTS[2]}-1 | ||
| 226 | - \ sleep 5 | ||
| 227 | - \ Click Element xpath=//a[@class='deleteMultiItem'][last()] | ||
| 228 | - \ sleep 5 | ||
| 229 | - \ Click Element xpath=//a[@class='jBtn green'] | ||
| 230 | - Wait Until Page Contains Element xpath=//button[./text()='Зберегти'] 30 | ||
| 231 | - Click Element xpath=//button[./text()='Зберегти'] | ||
| 232 | - | ||
| 233 | -Пошук тендера по ідентифікатору | ||
| 234 | - [Arguments] @{ARGUMENTS} | ||
| 235 | - [Documentation] | ||
| 236 | - ... ${ARGUMENTS[0]} == username | ||
| 237 | - ... ${ARGUMENTS[1]} == tenderId | ||
| 238 | - Switch browser ${ARGUMENTS[0]} | ||
| 239 | - Go To ${USERS.users['${ARGUMENTS[0]}'].homepage} | ||
| 240 | - Wait Until Page Contains Держзакупівлі.онлайн 10 | ||
| 241 | - Click Element xpath=//a[text()='Закупівлі'] | ||
| 242 | - sleep 1 | ||
| 243 | - Click Element xpath=//select[@name='filter[object]']/option[@value='tenderID'] | ||
| 244 | - Input text xpath=//input[@name='filter[search]'] ${ARGUMENTS[1]} | ||
| 245 | - Click Element xpath=//button[@class='btn'][./text()='Пошук'] | ||
| 246 | - Wait Until Page Contains ${ARGUMENTS[1]} 10 | ||
| 247 | - Capture Page Screenshot | ||
| 248 | - sleep 1 | ||
| 249 | - Click Element xpath=//a[@class='reverse tenderLink'] | ||
| 250 | - | ||
| 251 | -Задати питання | ||
| 252 | - [Arguments] @{ARGUMENTS} | ||
| 253 | - [Documentation] | ||
| 254 | - ... ${ARGUMENTS[0]} == username | ||
| 255 | - ... ${ARGUMENTS[1]} == tenderUaId | ||
| 256 | - ... ${ARGUMENTS[2]} == questionId | ||
| 257 | - ${title}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
| 258 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
| 259 | - | ||
| 260 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
| 261 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
| 262 | - sleep 1 | ||
| 263 | - Execute Javascript window.scroll(2500,2500) | ||
| 264 | - Wait Until Page Contains Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] 20 | ||
| 265 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | ||
| 266 | - Wait Until Page Contains Element name=title 20 | ||
| 267 | - Input text name=title ${title} | ||
| 268 | - Input text xpath=//textarea[@name='description'] ${description} | ||
| 269 | - Click Element xpath=//div[contains(@class, 'buttons')]//button[@type='submit'] | ||
| 270 | - Wait Until Page Contains ${title} 30 | ||
| 271 | - Capture Page Screenshot | ||
| 272 | - | ||
| 273 | -Відповісти на питання | ||
| 274 | - [Arguments] @{ARGUMENTS} | ||
| 275 | - [Documentation] | ||
| 276 | - ... ${ARGUMENTS[0]} = username | ||
| 277 | - ... ${ARGUMENTS[1]} = tenderUaId | ||
| 278 | - ... ${ARGUMENTS[2]} = 0 | ||
| 279 | - ... ${ARGUMENTS[3]} = answer_data | ||
| 280 | - | ||
| 281 | - ${answer}= Get From Dictionary ${ARGUMENTS[3].data} answer | ||
| 282 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
| 283 | - | ||
| 284 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
| 285 | - Execute Javascript window.scroll(1500,1500) | ||
| 286 | - Wait Until Page Contains Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] 20 | ||
| 287 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | ||
| 288 | - Wait Until Page Contains Element xpath=//textarea[@name='answer'] 20 | ||
| 289 | - Input text xpath=//textarea[@name='answer'] ${answer} | ||
| 290 | - Click Element xpath=//div[1]/div[3]/form/div/table/tbody/tr/td[2]/button | ||
| 291 | - Wait Until Page Contains ${answer} 30 | ||
| 292 | - Capture Page Screenshot | ||
| 293 | - | ||
| 294 | -Подати скаргу | ||
| 295 | - [Arguments] @{ARGUMENTS} | ||
| 296 | - [Documentation] | ||
| 297 | - ... ${ARGUMENTS[0]} = username | ||
| 298 | - ... ${ARGUMENTS[1]} = tenderUaId | ||
| 299 | - ... ${ARGUMENTS[2]} = complaintsId | ||
| 300 | - ${complaint}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
| 301 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
| 302 | - | ||
| 303 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
| 304 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
| 305 | - sleep 1 | ||
| 306 | - Execute Javascript window.scroll(1500,1500) | ||
| 307 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Скарги']] | ||
| 308 | - Wait Until Page Contains Element name=title 20 | ||
| 309 | - Input text name=title ${complaint} | ||
| 310 | - Input text xpath=//textarea[@name='description'] ${description} | ||
| 311 | - Click Element xpath=//div[contains(@class, 'buttons')]//button[@type='submit'] | ||
| 312 | - Wait Until Page Contains ${complaint} 30 | ||
| 313 | - Capture Page Screenshot | ||
| 314 | - | ||
| 315 | -Порівняти скаргу | ||
| 316 | - [Arguments] @{ARGUMENTS} | ||
| 317 | - [Documentation] | ||
| 318 | - ... ${ARGUMENTS[0]} = username | ||
| 319 | - ... ${ARGUMENTS[1]} = tenderUaId | ||
| 320 | - ... ${ARGUMENTS[2]} = complaintsData | ||
| 321 | - ${complaint}= Get From Dictionary ${ARGUMENTS[2].data} title | ||
| 322 | - ${description}= Get From Dictionary ${ARGUMENTS[2].data} description | ||
| 323 | - | ||
| 324 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
| 325 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
| 326 | - sleep 1 | ||
| 327 | - Execute Javascript window.scroll(1500,1500) | ||
| 328 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Скарги']] | ||
| 329 | - Wait Until Page Contains ${complaint} 30 | ||
| 330 | - Capture Page Screenshot | ||
| 331 | - | ||
| 332 | -Внести зміни в тендер | ||
| 333 | - # Тест написано для уже існуючого тендеру, що знаходиться у чернетках користувача | ||
| 334 | - [Arguments] @{ARGUMENTS} | ||
| 335 | - [Documentation] | ||
| 336 | - ... ${ARGUMENTS[0]} = username | ||
| 337 | - ... ${ARGUMENTS[1]} = description | ||
| 338 | - | ||
| 339 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
| 340 | - Click Element xpath=//a[@class='reverse'][./text()='Мої закупівлі'] | ||
| 341 | - Wait Until Page Contains Element xpath=//a[@class='reverse'][./text()='Чернетки'] 30 | ||
| 342 | - Click Element xpath=//a[@class='reverse'][./text()='Чернетки'] | ||
| 343 | - Wait Until Page Contains Element xpath=//a[@class='reverse tenderLink'] 30 | ||
| 344 | - Click Element xpath=//a[@class='reverse tenderLink'] | ||
| 345 | - sleep 1 | ||
| 346 | - Click Element xpath=//a[@class='button save'][./text()='Редагувати'] | ||
| 347 | - sleep 1 | ||
| 348 | - Input text name=tender_title ${ARGUMENTS[1]} | ||
| 349 | - sleep 1 | ||
| 350 | - Click Element xpath=//button[@class='saveDraft'] | ||
| 351 | - Wait Until Page Contains ${ARGUMENTS[1]} 30 | ||
| 352 | - Capture Page Screenshot | ||
| 353 | - | ||
| 354 | -обновити сторінку з тендером | ||
| 355 | - [Arguments] @{ARGUMENTS} | ||
| 356 | - [Documentation] | ||
| 357 | - ... ${ARGUMENTS[0]} = username | ||
| 358 | - ... ${ARGUMENTS[1]} = tenderUaId | ||
| 359 | - | ||
| 360 | - Selenium2Library.Switch Browser ${ARGUMENTS[0]} | ||
| 361 | - netcast.Пошук тендера по ідентифікатору ${ARGUMENTS[0]} ${ARGUMENTS[1]} | ||
| 362 | - Reload Page | ||
| 363 | - | ||
| 364 | -отримати інформацію із тендера | ||
| 365 | - [Arguments] @{ARGUMENTS} | ||
| 366 | - [Documentation] | ||
| 367 | - ... ${ARGUMENTS[0]} == username | ||
| 368 | - ... ${ARGUMENTS[1]} == fieldname | ||
| 369 | - Switch browser ${ARGUMENTS[0]} | ||
| 370 | - Run Keyword And Return Отримати інформацію про ${ARGUMENTS[1]} | ||
| 371 | - | ||
| 372 | -Отримати текст із поля і показати на сторінці | ||
| 373 | - [Arguments] ${fieldname} | ||
| 374 | - sleep 1 | ||
| 375 | - ${return_value}= Get Text ${locator.${fieldname}} | ||
| 376 | - [return] ${return_value} | ||
| 377 | - | ||
| 378 | -отримати інформацію про title | ||
| 379 | - ${title}= Отримати текст із поля і показати на сторінці title | ||
| 380 | - [return] ${title.split('.')[0]} | ||
| 381 | - | ||
| 382 | -отримати інформацію про description | ||
| 383 | - ${description}= Отримати текст із поля і показати на сторінці description | ||
| 384 | - [return] ${description} | ||
| 385 | - | ||
| 386 | -отримати інформацію про tenderId | ||
| 387 | - ${tenderId}= Отримати текст із поля і показати на сторінці tenderId | ||
| 388 | - [return] ${tenderId} | ||
| 389 | - | ||
| 390 | -отримати інформацію про value.amount | ||
| 391 | - ${valueAmount}= Отримати текст із поля і показати на сторінці value.amount | ||
| 392 | - ${valueAmount}= Convert To Number ${valueAmount.split(' ')[0]} | ||
| 393 | - [return] ${valueAmount} | ||
| 394 | - | ||
| 395 | -отримати інформацію про minimalStep.amount | ||
| 396 | - ${minimalStepAmount}= Отримати текст із поля і показати на сторінці minimalStep.amount | ||
| 397 | - ${minimalStepAmount}= Convert To Number ${minimalStepAmount.split(' ')[0]} | ||
| 398 | - [return] ${minimalStepAmount} | ||
| 399 | - | ||
| 400 | -отримати інформацію про enquiryPeriod.endDate | ||
| 401 | - ${enquiryPeriodEndDate}= Отримати текст із поля і показати на сторінці enquiryPeriod.endDate | ||
| 402 | - ${enquiryPeriodEndDate}= subtract_from_time ${enquiryPeriodEndDate} 6 5 | ||
| 403 | - [return] ${enquiryPeriodEndDate} | ||
| 404 | - | ||
| 405 | -отримати інформацію про tenderPeriod.endDate | ||
| 406 | - ${tenderPeriodEndDate}= Отримати текст із поля і показати на сторінці tenderPeriod.endDate | ||
| 407 | - ${tenderPeriodEndDate}= subtract_from_time ${tenderPeriodEndDate} 11 0 | ||
| 408 | - [return] ${tenderPeriodEndDate} | ||
| 409 | - | ||
| 410 | -отримати інформацію про items[0].deliveryAddress.countryName | ||
| 411 | - ${countryName}= Отримати текст із поля і показати на сторінці items[0].deliveryAddress.countryName | ||
| 412 | - [return] ${countryName} | ||
| 413 | - | ||
| 414 | -отримати інформацію про items[0].classification.scheme | ||
| 415 | - ${classificationScheme}= Отримати текст із поля і показати на сторінці items[0].classification.scheme | ||
| 416 | - [return] ${classificationScheme.split(' ')[1]} | ||
| 417 | - | ||
| 418 | -отримати інформацію про items[0].additionalClassifications[0].scheme | ||
| 419 | - ${additionalClassificationsScheme}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].scheme | ||
| 420 | - [return] ${additionalClassificationsScheme.split(' ')[1]} | ||
| 421 | - | ||
| 422 | -отримати інформацію про questions[0].title | ||
| 423 | - sleep 1 | ||
| 424 | - Click Element xpath=//a[@class='reverse tenderLink'] | ||
| 425 | - sleep 1 | ||
| 426 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | ||
| 427 | - ${questionsTitle}= Отримати текст із поля і показати на сторінці questions[0].title | ||
| 428 | - ${questionsTitle}= Convert To Lowercase ${questionsTitle} | ||
| 429 | - [return] ${questionsTitle.capitalize().split('.')[0] + '.'} | ||
| 430 | - | ||
| 431 | -отримати інформацію про questions[0].description | ||
| 432 | - ${questionsDescription}= Отримати текст із поля і показати на сторінці questions[0].description | ||
| 433 | - [return] ${questionsDescription} | ||
| 434 | - | ||
| 435 | -отримати інформацію про questions[0].date | ||
| 436 | - ${questionsDate}= Отримати текст із поля і показати на сторінці questions[0].date | ||
| 437 | - log ${questionsDate} | ||
| 438 | - [return] ${questionsDate} | ||
| 439 | - | ||
| 440 | -отримати інформацію про questions[0].answer | ||
| 441 | - sleep 1 | ||
| 442 | - Click Element xpath=//a[@class='reverse tenderLink'] | ||
| 443 | - sleep 1 | ||
| 444 | - Click Element xpath=//a[@class='reverse openCPart'][span[text()='Обговорення']] | ||
| 445 | - ${questionsAnswer}= Отримати текст із поля і показати на сторінці questions[0].answer | ||
| 446 | - [return] ${questionsAnswer} | ||
| 447 | - | ||
| 448 | -отримати інформацію про items[0].deliveryDate.endDate | ||
| 449 | - ${deliveryDateEndDate}= Отримати текст із поля і показати на сторінці items[0].deliveryDate.endDate | ||
| 450 | - ${deliveryDateEndDate}= subtract_from_time ${deliveryDateEndDate} 15 0 | ||
| 451 | - [return] ${deliveryDateEndDate} | ||
| 452 | - | ||
| 453 | -отримати інформацію про items[0].classification.id | ||
| 454 | - ${classificationId}= Отримати текст із поля і показати на сторінці items[0].classification.id | ||
| 455 | - [return] ${classificationId} | ||
| 456 | - | ||
| 457 | -отримати інформацію про items[0].classification.description | ||
| 458 | - ${classificationDescription}= Отримати текст із поля і показати на сторінці items[0].classification.description | ||
| 459 | - Run Keyword And Return If '${classificationDescription}' == 'Картонки' Convert To String Cartons | ||
| 460 | - [return] ${classificationDescription} | ||
| 461 | - | ||
| 462 | -отримати інформацію про items[0].additionalClassifications[0].id | ||
| 463 | - ${additionalClassificationsId}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].id | ||
| 464 | - [return] ${additionalClassificationsId} | ||
| 465 | - | ||
| 466 | -отримати інформацію про items[0].additionalClassifications[0].description | ||
| 467 | - ${additionalClassificationsDescription}= Отримати текст із поля і показати на сторінці items[0].additionalClassifications[0].description | ||
| 468 | - ${additionalClassificationsDescription}= Convert To Lowercase ${additionalClassificationsDescription} | ||
| 469 | - [return] ${additionalClassificationsDescription} | ||
| 470 | - | ||
| 471 | -отримати інформацію про items[0].quantity | ||
| 472 | - ${itemsQuantity}= Отримати текст із поля і показати на сторінці items[0].quantity | ||
| 473 | - ${itemsQuantity}= Convert To Integer ${itemsQuantity} | ||
| 474 | - [return] ${itemsQuantity} | ||
| 475 | - | ||
| 476 | -отримати інформацію про items[0].unit.code | ||
| 477 | - ${unitCode}= Отримати текст із поля і показати на сторінці items[0].unit.code | ||
| 478 | - Run Keyword And Return If '${unitCode}'== 'кг' Convert To String KGM | ||
| 479 | - [return] ${unitCode} | ||
| 480 | - | ||
| 481 | -отримати інформацію про procuringEntity.name | ||
| 482 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 483 | - | ||
| 484 | -отримати інформацію про enquiryPeriod.startDate | ||
| 485 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 486 | - | ||
| 487 | -отримати інформацію про tenderPeriod.startDate | ||
| 488 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 489 | - | ||
| 490 | -отримати інформацію про items[0].deliveryLocation.longitude | ||
| 491 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 492 | - | ||
| 493 | -отримати інформацію про items[0].deliveryLocation.latitude | ||
| 494 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 495 | - | ||
| 496 | -отримати інформацію про items[0].deliveryAddress.postalCode | ||
| 497 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 498 | - | ||
| 499 | -отримати інформацію про items[0].deliveryAddress.locality | ||
| 500 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 501 | - | ||
| 502 | -отримати інформацію про items[0].deliveryAddress.streetAddress | ||
| 503 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 504 | - | ||
| 505 | -отримати інформацію про items[0].deliveryAddress.region | ||
| 506 | - Log | Viewer can't see this information on Netcast console=yes | ||
| 507 | - | ||
| 508 | -отримати інформацію про items[0].unit.name | ||
| 509 | - Log | Viewer can't see this information on Netcast console=yes |
| @@ -80,6 +80,9 @@ Library openprocurement_client_helper.py | @@ -80,6 +80,9 @@ Library openprocurement_client_helper.py | ||
| 80 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | 80 | [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
| 81 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 81 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 82 | Set_To_Object ${tender.data} ${fieldname} ${fieldvalue} | 82 | Set_To_Object ${tender.data} ${fieldname} ${fieldvalue} |
| 83 | + ${procurementMethodType}= Get From Object ${tender.data} procurementMethodType | ||
| 84 | + Run Keyword If '${procurementMethodType}' == 'aboveThresholdUA' or '${procurementMethodType}' == 'aboveThresholdEU' | ||
| 85 | + ... Remove From Dictionary ${tender.data} enquiryPeriod | ||
| 83 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 86 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
| 84 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} | 87 | ${tender}= Call Method ${USERS.users['${username}'].client} patch_tender ${tender} |
| 85 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} | 88 | Set_To_Object ${USERS.users['${username}'].tender_data} ${fieldname} ${fieldvalue} |
| @@ -131,25 +134,30 @@ Library openprocurement_client_helper.py | @@ -131,25 +134,30 @@ Library openprocurement_client_helper.py | ||
| 131 | 134 | ||
| 132 | 135 | ||
| 133 | Відповісти на питання | 136 | Відповісти на питання |
| 134 | - [Arguments] ${username} ${tender_uaid} ${question_id} ${answer_data} | 137 | + [Arguments] ${username} ${tender_uaid} ${question} ${answer_data} |
| 135 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 138 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 136 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} | 139 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} |
| 137 | - ${answer_data.data.id}= Set Variable ${tender.data.questions[${question_id}].id} | 140 | + ${answer_data.data.id}= Set Variable ${question.data.id} |
| 138 | ${question_with_answer}= Call Method ${USERS.users['${username}'].client} patch_question ${tender} ${answer_data} | 141 | ${question_with_answer}= Call Method ${USERS.users['${username}'].client} patch_question ${tender} ${answer_data} |
| 139 | Log object data ${question_with_answer} question_with_answer | 142 | Log object data ${question_with_answer} question_with_answer |
| 143 | + [return] ${question_with_answer} | ||
| 140 | 144 | ||
| 141 | 145 | ||
| 142 | Подати цінову пропозицію | 146 | Подати цінову пропозицію |
| 143 | [Arguments] ${username} ${tender_uaid} ${bid} | 147 | [Arguments] ${username} ${tender_uaid} ${bid} |
| 144 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 148 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 145 | ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_bid ${tender} ${bid} | 149 | ${biddingresponse}= Call Method ${USERS.users['${username}'].client} create_bid ${tender} ${bid} |
| 150 | + Set To Dictionary ${USERS.users['${username}'].bidresponses['bid'].data} id ${biddingresponse['data']['id']} | ||
| 146 | Log ${biddingresponse} | 151 | Log ${biddingresponse} |
| 147 | [return] ${biddingresponse} | 152 | [return] ${biddingresponse} |
| 148 | 153 | ||
| 149 | 154 | ||
| 150 | Змінити цінову пропозицію | 155 | Змінити цінову пропозицію |
| 151 | - [Arguments] ${username} ${tender_uaid} ${bid} | 156 | + [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} |
| 152 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 157 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 158 | + ${bid}= Отримати пропозицію ${username} ${tender_uaid} | ||
| 159 | + Set_To_Object ${bid.data} ${fieldname} ${fieldvalue} | ||
| 160 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 153 | ${changed_bid}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${bid} | 161 | ${changed_bid}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${bid} |
| 154 | Log ${changed_bid} | 162 | Log ${changed_bid} |
| 155 | [return] ${changed_bid} | 163 | [return] ${changed_bid} |
| @@ -158,6 +166,8 @@ Library openprocurement_client_helper.py | @@ -158,6 +166,8 @@ Library openprocurement_client_helper.py | ||
| 158 | Скасувати цінову пропозицію | 166 | Скасувати цінову пропозицію |
| 159 | [Arguments] ${username} ${tender_uaid} ${bid} | 167 | [Arguments] ${username} ${tender_uaid} ${bid} |
| 160 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 168 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 169 | + Set To Dictionary ${bid.data} id ${USERS.users['${username}'].bidresponses['bid'].data.id} | ||
| 170 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 161 | ${changed_bid}= Call Method ${USERS.users['${username}'].client} delete_bid ${tender} ${bid} | 171 | ${changed_bid}= Call Method ${USERS.users['${username}'].client} delete_bid ${tender} ${bid} |
| 162 | Log ${changed_bid} | 172 | Log ${changed_bid} |
| 163 | [return] ${changed_bid} | 173 | [return] ${changed_bid} |
| @@ -174,11 +184,11 @@ Library openprocurement_client_helper.py | @@ -174,11 +184,11 @@ Library openprocurement_client_helper.py | ||
| 174 | 184 | ||
| 175 | 185 | ||
| 176 | Завантажити документ в ставку | 186 | Завантажити документ в ставку |
| 177 | - [Arguments] ${username} ${path} ${tender_uaid} | 187 | + [Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents |
| 178 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} | 188 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id} |
| 179 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 189 | ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 180 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | 190 | ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} |
| 181 | - ${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document ${path} ${tender} ${bid_id} | 191 | + ${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document ${path} ${tender} ${bid_id} ${doc_type} |
| 182 | ${uploaded_file} = Create Dictionary filepath ${path} upload_response ${response} | 192 | ${uploaded_file} = Create Dictionary filepath ${path} upload_response ${response} |
| 183 | Log ${response} | 193 | Log ${response} |
| 184 | Log object data ${uploaded_file} | 194 | Log object data ${uploaded_file} |
| @@ -195,6 +205,13 @@ Library openprocurement_client_helper.py | @@ -195,6 +205,13 @@ Library openprocurement_client_helper.py | ||
| 195 | Log object data ${uploaded_file} | 205 | Log object data ${uploaded_file} |
| 196 | [return] ${uploaded_file} | 206 | [return] ${uploaded_file} |
| 197 | 207 | ||
| 208 | +Змінити документацію в ставці | ||
| 209 | + [Arguments] ${username} ${doc_data} ${bidid} ${docid} | ||
| 210 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${TENDER['TENDER_UAID']} | ||
| 211 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} | ||
| 212 | + ${response}= Call Method ${USERS.users['${username}'].client} patch_bid_document ${tender} ${doc_data} ${bidid} ${docid} | ||
| 213 | + Log ${response} | ||
| 214 | + [return] ${response} | ||
| 198 | 215 | ||
| 199 | Завантажити документ | 216 | Завантажити документ |
| 200 | [Arguments] ${username} ${filepath} ${tender_uaid} | 217 | [Arguments] ${username} ${filepath} ${tender_uaid} |
| @@ -378,16 +395,17 @@ Library openprocurement_client_helper.py | @@ -378,16 +395,17 @@ Library openprocurement_client_helper.py | ||
| 378 | Log ${reply} | 395 | Log ${reply} |
| 379 | 396 | ||
| 380 | 397 | ||
| 381 | -Додати постачальника | 398 | +Додати і підтвердити постачальника |
| 382 | [Documentation] | 399 | [Documentation] |
| 383 | - ... [Arguments] Username and tender uaid | ||
| 384 | - ... Find tender using uaid, get data from Підготувати дані про постачальника and call create_award | 400 | + ... [Arguments] Username, tender uaid and supplier data |
| 401 | + ... Find tender using uaid and call create_award | ||
| 385 | ... [Return] Nothing | 402 | ... [Return] Nothing |
| 386 | - [Arguments] ${username} ${tender_uaid} | 403 | + [Arguments] ${username} ${tender_uaid} ${supplier_data} |
| 387 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 404 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 388 | - ${supplier_data}= Підготувати дані про постачальника ${username} | ||
| 389 | ${reply}= Call Method ${USERS.users['${username}'].client} create_award ${tender} ${supplier_data} | 405 | ${reply}= Call Method ${USERS.users['${username}'].client} create_award ${tender} ${supplier_data} |
| 390 | Log ${reply} | 406 | Log ${reply} |
| 407 | + ${supplier_number}= Set variable 0 | ||
| 408 | + Підтвердити постачальника ${username} ${tender_uaid} ${supplier_number} | ||
| 391 | 409 | ||
| 392 | 410 | ||
| 393 | Підтвердити постачальника | 411 | Підтвердити постачальника |
| @@ -403,46 +421,56 @@ Library openprocurement_client_helper.py | @@ -403,46 +421,56 @@ Library openprocurement_client_helper.py | ||
| 403 | Log ${reply} | 421 | Log ${reply} |
| 404 | 422 | ||
| 405 | 423 | ||
| 406 | -Додати запит на скасування | 424 | +Скасувати закупівлю |
| 407 | [Documentation] | 425 | [Documentation] |
| 408 | - ... [Arguments] Username, tender uaid and cancellation reason | ||
| 409 | - ... Find tender using uaid, set cancellation reason, get data from test_cancel_tender | 426 | + ... [Arguments] Username, tender uaid, cancellation reason, |
| 427 | + ... document and new description of document | ||
| 428 | + ... [Description] Find tender using uaid, set cancellation reason, get data from cancel_tender | ||
| 410 | ... and call create_cancellation | 429 | ... and call create_cancellation |
| 430 | + ... After that add document to cancellation and change description of document | ||
| 411 | ... [Return] Nothing | 431 | ... [Return] Nothing |
| 412 | - [Arguments] ${username} ${tender_uaid} ${cancellation_reason} | 432 | + [Arguments] ${username} ${tender_uaid} ${cancellation_reason} ${document} ${new_description} |
| 413 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 433 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 414 | ${data}= test_cancel_tender_data ${cancellation_reason} | 434 | ${data}= test_cancel_tender_data ${cancellation_reason} |
| 415 | Log ${data} | 435 | Log ${data} |
| 416 | - Set To Dictionary ${USERS.users['${tender_owner}']} cancellation_reason ${data} | ||
| 417 | - ${reply}= Call Method ${USERS.users['${username}'].client} create_cancellation ${tender} ${data} | ||
| 418 | - Log ${reply} | 436 | + ${cancel_reply}= Call Method ${USERS.users['${username}'].client} create_cancellation ${tender} ${data} |
| 437 | + Log ${cancel_reply} | ||
| 438 | + ${cancellation_id}= Set variable ${cancel_reply.data.id} | ||
| 439 | + | ||
| 440 | + | ||
| 441 | + ${document_id}= Завантажити документацію до запиту на скасування ${username} ${tender_uaid} ${cancellation_id} ${document} | ||
| 442 | + | ||
| 443 | + | ||
| 444 | + Змінити опис документа в скасуванні ${username} ${tender_uaid} ${cancellation_id} ${document_id} ${new_description} | ||
| 445 | + | ||
| 446 | + | ||
| 447 | + Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id} | ||
| 419 | 448 | ||
| 420 | 449 | ||
| 421 | Завантажити документацію до запиту на скасування | 450 | Завантажити документацію до запиту на скасування |
| 422 | [Documentation] | 451 | [Documentation] |
| 423 | - ... [Arguments] Username, tender uaid and number of cancellation | ||
| 424 | - ... Find tender using uaid, create fake documentation and call upload_cancellation_document | ||
| 425 | - ... [Return] Nothing | ||
| 426 | - [Arguments] ${username} ${tender_uaid} ${cancel_num} | 452 | + ... [Arguments] Username, tender uaid, cancellation id and document to upload |
| 453 | + ... [Description] Find tender using uaid, and call upload_cancellation_document | ||
| 454 | + ... [Return] ID of added document | ||
| 455 | + [Arguments] ${username} ${tender_uaid} ${cancellation_id} ${document} | ||
| 427 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 456 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 428 | - ${first_cancel_doc}= create_fake_doc | ||
| 429 | - Set To Dictionary ${USERS.users['${tender_owner}']} first_cancel_doc ${first_cancel_doc} | ||
| 430 | - ${reply}= Call Method ${USERS.users['${username}'].client} upload_cancellation_document ${first_cancel_doc} ${tender} ${tender['data']['cancellations'][${cancel_num}]['id']} | ||
| 431 | - Log ${reply} | 457 | + ${doc_reply}= Call Method ${USERS.users['${username}'].client} upload_cancellation_document ${document} ${tender} ${cancellation_id} |
| 458 | + Log ${doc_reply} | ||
| 459 | + [Return] ${doc_reply.data.id} | ||
| 432 | 460 | ||
| 433 | 461 | ||
| 434 | Змінити опис документа в скасуванні | 462 | Змінити опис документа в скасуванні |
| 435 | [Documentation] | 463 | [Documentation] |
| 436 | - ... [Arguments] Username, tender uaid, cancellation number and cancellation document number | ||
| 437 | - ... Find tender using uaid, get data from test_change_cancellation_document_field and call | 464 | + ... [Arguments] Username, tender uaid, cancellation id, document id and new description of document |
| 465 | + ... [Description] Find tender using uaid, create dict with data about description and call | ||
| 438 | ... patch_cancellation_document | 466 | ... patch_cancellation_document |
| 439 | ... [Return] Nothing | 467 | ... [Return] Nothing |
| 440 | - [Arguments] ${username} ${tender_uaid} ${cancel_num} ${doc_num} ${field} ${value} | 468 | + [Arguments] ${username} ${tender_uaid} ${cancellation_id} ${document_id} ${new_description} |
| 469 | + ${field}= Set variable description | ||
| 441 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 470 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 442 | - ${temp}= Create Dictionary ${field} ${value} | 471 | + ${temp}= Create Dictionary ${field} ${new_description} |
| 443 | ${data}= Create Dictionary data ${temp} | 472 | ${data}= Create Dictionary data ${temp} |
| 444 | - Log ${data} | ||
| 445 | - ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation_document ${tender} ${data} ${tender['data']['cancellations'][${cancel_num}]['id']} ${tender['data']['cancellations'][${cancel_num}]['documents'][${doc_num}]['id']} | 473 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation_document ${tender} ${data} ${cancellation_id} ${document_id} |
| 446 | Log ${reply} | 474 | Log ${reply} |
| 447 | 475 | ||
| 448 | 476 | ||
| @@ -465,9 +493,9 @@ Library openprocurement_client_helper.py | @@ -465,9 +493,9 @@ Library openprocurement_client_helper.py | ||
| 465 | ... [Arguments] Username, tender uaid, cancellation number | 493 | ... [Arguments] Username, tender uaid, cancellation number |
| 466 | ... Find tender using uaid, get cancellation test_confirmation data and call patch_cancellation | 494 | ... Find tender using uaid, get cancellation test_confirmation data and call patch_cancellation |
| 467 | ... [Return] Nothing | 495 | ... [Return] Nothing |
| 468 | - [Arguments] ${username} ${tender_uaid} ${cancel_num} | 496 | + [Arguments] ${username} ${tender_uaid} ${cancel_id} |
| 469 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | 497 | ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} |
| 470 | - ${data}= test_confirm_data ${tender['data']['cancellations'][${cancel_num}]['id']} | 498 | + ${data}= test_confirm_data ${cancel_id} |
| 471 | Log ${data} | 499 | Log ${data} |
| 472 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation ${tender} ${data} | 500 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation ${tender} ${data} |
| 473 | Log ${reply} | 501 | Log ${reply} |
| @@ -484,3 +512,57 @@ Library openprocurement_client_helper.py | @@ -484,3 +512,57 @@ Library openprocurement_client_helper.py | ||
| 484 | Log ${data} | 512 | Log ${data} |
| 485 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_contract ${tender} ${data} | 513 | ${reply}= Call Method ${USERS.users['${username}'].client} patch_contract ${tender} ${data} |
| 486 | Log ${reply} | 514 | Log ${reply} |
| 515 | + | ||
| 516 | +############################################################################## | ||
| 517 | +# OpenUA procedure | ||
| 518 | +############################################################################## | ||
| 519 | + | ||
| 520 | +Підтвердити кваліфікацію | ||
| 521 | + [Documentation] | ||
| 522 | + ... [Arguments] Username, tender uaid and qualification number | ||
| 523 | + ... [Description] Find tender using uaid, create data dict with active status and call patch_qualification | ||
| 524 | + ... [Return] Reply of API | ||
| 525 | + [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
| 526 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | ||
| 527 | + ${qualification}= create_data_dict data.status active | ||
| 528 | + Set To Dictionary ${qualification.data} id ${tender.data.qualifications[${qualification_num}].id} | ||
| 529 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | ||
| 530 | + Log ${reply} | ||
| 531 | + [Return] ${reply} | ||
| 532 | + | ||
| 533 | +Відхилити кваліфікацію | ||
| 534 | + [Documentation] | ||
| 535 | + ... [Arguments] Username, tender uaid and qualification number | ||
| 536 | + ... [Description] Find tender using uaid, create data dict with unsuccessful status and call patch_qualification | ||
| 537 | + ... [Return] Reply of API | ||
| 538 | + [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
| 539 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | ||
| 540 | + ${qualification}= create_data_dict data.status unsuccessful | ||
| 541 | + Set To Dictionary ${qualification.data} id ${tender.data.qualifications[${qualification_num}].id} | ||
| 542 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | ||
| 543 | + Log ${reply} | ||
| 544 | + [Return] ${reply} | ||
| 545 | + | ||
| 546 | +Завантажити документ у кваліфікацію | ||
| 547 | + [Documentation] | ||
| 548 | + ... [Arguments] Username, tender uaid, qualification number and document to upload | ||
| 549 | + ... [Description] Find tender using uaid, and call upload_qualification_document | ||
| 550 | + ... [Return] Reply of API | ||
| 551 | + [Arguments] ${username} ${document} ${tender_uaid} ${qualification_num} | ||
| 552 | + ${tender}= Пошук тендера по ідентифікатору ${username} ${tender_uaid} | ||
| 553 | + ${doc_reply}= Call Method ${USERS.users['${username}'].client} upload_qualification_document ${document} ${tender} ${tender.data.qualifications[${qualification_num}].id} | ||
| 554 | + Log ${doc_reply} | ||
| 555 | + [Return] ${doc_reply} | ||
| 556 | + | ||
| 557 | +Скасувати кваліфікацію | ||
| 558 | + [Documentation] | ||
| 559 | + ... [Arguments] Username, tender uaid and qualification number | ||
| 560 | + ... [Description] Find tender using uaid, create data dict with cancelled status and call patch_qualification | ||
| 561 | + ... [Return] Reply of API | ||
| 562 | + [Arguments] ${username} ${tender_uid} ${qualification_num} | ||
| 563 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uid} | ||
| 564 | + ${qualification}= create_data_dict data.status cancelled | ||
| 565 | + Set To Dictionary ${qualification.data} id ${tender.data.qualifications[${qualification_num}].id} | ||
| 566 | + ${reply}= Call Method ${USERS.users['${username}'].client} patch_qualification ${tender} ${qualification} | ||
| 567 | + Log ${reply} | ||
| 568 | + [Return] ${reply} |
| 1 | Default: | 1 | Default: |
| 2 | - # These values are used by default unless a | ||
| 3 | - # specific broker entry overrides them. | ||
| 4 | - intervals: # Time in minutes | ||
| 5 | - enquiry: | ||
| 6 | - - 0 # Delay before period starts (for startDate) | ||
| 7 | - - 11 # Duration of period (for endDate) | ||
| 8 | - tender: | ||
| 9 | - - 0 | ||
| 10 | - - 31 | ||
| 11 | - timeout_on_wait: 300 # Time in seconds | 2 | + # Default dictionary: |
| 3 | + # These values are used unless a | ||
| 4 | + # specific broker entry overrides them | ||
| 5 | + intervals: | ||
| 6 | + # intervals: Interval values for each "mode" | ||
| 7 | + # | ||
| 8 | + # Each field is a mode name | ||
| 9 | + # Current modes are: | ||
| 10 | + # single, multi, limited, openua, openeu | ||
| 11 | + # | ||
| 12 | + # See `prepare_test_tender_data()` | ||
| 13 | + # in `service_keywords.py` for more details | ||
| 14 | + # | ||
| 15 | + # If some mode is not specified, | ||
| 16 | + # time values are taken from "default" | ||
| 17 | + default: | ||
| 18 | + # default: Used for modes that are not present in `intervals` | ||
| 19 | + # | ||
| 20 | + # enquiry, tender: Period names with corresponding time values | ||
| 21 | + # | ||
| 22 | + # Other mode-specific fields are allowed too | ||
| 23 | + # | ||
| 24 | + # First number in list: Delay before period starts (for startDate) | ||
| 25 | + # Second number in list: Duration of period (for endDate) | ||
| 26 | + enquiry: [0, 11] | ||
| 27 | + tender: [0, 31] | ||
| 28 | + openua: | ||
| 29 | + # accelerator: Integer value | ||
| 30 | + # This is not a name of period | ||
| 31 | + # Please refer to API documentation to find out what's this | ||
| 32 | + accelerator: 1440 | ||
| 33 | + tender: [0, 15] | ||
| 34 | + # Please remember that openUA and openEU procedures | ||
| 35 | + # forbid anyone to set or modify enquiryPeriod | ||
| 36 | + # (it is set automatically) | ||
| 37 | + openeu: | ||
| 38 | + accelerator: 1440 | ||
| 39 | + tender: [0, 30] | ||
| 40 | + # Synchronization delay, in seconds | ||
| 41 | + timeout_on_wait: 300 | ||
| 12 | Quinta: | 42 | Quinta: |
| 13 | -# intervals: | ||
| 14 | -# enquiry: | ||
| 15 | -# - 0 | ||
| 16 | -# - 2 | ||
| 17 | -# tender: | ||
| 18 | -# - 0 | ||
| 19 | -# - 5 | 43 | + intervals: |
| 44 | + default: | ||
| 45 | + enquiry: [0, 2] | ||
| 46 | + tender: [0, 5] | ||
| 47 | + openua: | ||
| 48 | + accelerator: 1440 | ||
| 49 | + tender: [0, 15] | ||
| 50 | + openeu: | ||
| 51 | + accelerator: 1440 | ||
| 52 | + tender: [0, 30] | ||
| 20 | keywords_file: openprocurement_client | 53 | keywords_file: openprocurement_client |
| 21 | roles: | 54 | roles: |
| 22 | - tender_owner: Tender_Owner | ||
| 23 | provider: Tender_User | 55 | provider: Tender_User |
| 24 | provider1: Tender_User1 | 56 | provider1: Tender_User1 |
| 57 | + tender_owner: Tender_Owner | ||
| 25 | viewer: Tender_Viewer | 58 | viewer: Tender_Viewer |
| 26 | timeout_on_wait: 15 | 59 | timeout_on_wait: 15 |
| 27 | E-tender: | 60 | E-tender: |
| 28 | keywords_file: etender | 61 | keywords_file: etender |
| 29 | roles: | 62 | roles: |
| 30 | - tender_owner: E-tender_Owner | ||
| 31 | provider: E-tender_Provider1 | 63 | provider: E-tender_Provider1 |
| 32 | provider1: E-tender_Provider2 | 64 | provider1: E-tender_Provider2 |
| 65 | + tender_owner: E-tender_Owner | ||
| 33 | viewer: E-tender_Viewer | 66 | viewer: E-tender_Viewer |
| 34 | timeout_on_wait: 600 | 67 | timeout_on_wait: 600 |
| 35 | -Netcast: | ||
| 36 | - keywords_file: netcast | 68 | +DZO: |
| 69 | + keywords_file: dzo | ||
| 37 | login: admin | 70 | login: admin |
| 38 | password: uStudio | 71 | password: uStudio |
| 39 | roles: | 72 | roles: |
| 40 | - tender_owner: Netcast_Owner | ||
| 41 | - provider: Netcast_Provider1 | ||
| 42 | - viewer: Netcast_Viewer | 73 | + provider: DZO_Provider1 |
| 74 | + tender_owner: DZO_Owner | ||
| 75 | + viewer: DZO_Viewer | ||
| 43 | Newtend: | 76 | Newtend: |
| 44 | keywords_file: newtend | 77 | keywords_file: newtend |
| 45 | roles: | 78 | roles: |
| 46 | - tender_owner: Newtend_Owner | ||
| 47 | provider: Newtend_Provider1 | 79 | provider: Newtend_Provider1 |
| 80 | + tender_owner: Newtend_Owner | ||
| 48 | viewer: Newtend_Viewer | 81 | viewer: Newtend_Viewer |
| 49 | PrivatMarket: | 82 | PrivatMarket: |
| 50 | intervals: | 83 | intervals: |
| 51 | - enquiry: | ||
| 52 | - - 0 | ||
| 53 | - - 2 | ||
| 54 | - tender: | ||
| 55 | - - 0 | ||
| 56 | - - 5 | 84 | + default: |
| 85 | + enquiry: [0, 2] | ||
| 86 | + tender: [0, 5] | ||
| 57 | keywords_file: privatmarket | 87 | keywords_file: privatmarket |
| 58 | roles: | 88 | roles: |
| 59 | - viewer: PrivatMarket_Viewer | ||
| 60 | provider: PrivatMarket_Provider | 89 | provider: PrivatMarket_Provider |
| 61 | provider1: PrivatMarket_Provider1 | 90 | provider1: PrivatMarket_Provider1 |
| 91 | + viewer: PrivatMarket_Viewer | ||
| 62 | timeout_on_wait: 30 | 92 | timeout_on_wait: 30 |
| 63 | Prom: | 93 | Prom: |
| 64 | intervals: | 94 | intervals: |
| 65 | - enquiry: | ||
| 66 | - - 8 | ||
| 67 | - - 8 | ||
| 68 | - tender: | ||
| 69 | - - 0 | ||
| 70 | - - 31 | 95 | + default: |
| 96 | + enquiry: [10, 10] | ||
| 97 | + tender: [0, 45] | ||
| 71 | keywords_file: prom | 98 | keywords_file: prom |
| 72 | roles: | 99 | roles: |
| 73 | tender_owner: Prom_Owner | 100 | tender_owner: Prom_Owner |
| 74 | viewer: Prom_Viewer | 101 | viewer: Prom_Viewer |
| 75 | Publicbid: | 102 | Publicbid: |
| 103 | + intervals: | ||
| 104 | + default: | ||
| 105 | + enquiry: [21, 15] | ||
| 106 | + tender: [1, 15] | ||
| 76 | keywords_file: publicbid | 107 | keywords_file: publicbid |
| 77 | roles: | 108 | roles: |
| 109 | + provider: Publicbid_Provider1 | ||
| 78 | tender_owner: Publicbid_Owner | 110 | tender_owner: Publicbid_Owner |
| 79 | viewer: Publicbid_Viewer | 111 | viewer: Publicbid_Viewer |
| 80 | - intervals: | ||
| 81 | - enquiry: | ||
| 82 | - - 21 # Delay before period starts (for startDate) | ||
| 83 | - - 15 # Duration of period (for endDate) | ||
| 84 | - tender: | ||
| 85 | - - 1 | ||
| 86 | - - 15 | ||
| 87 | PublicPortal: | 112 | PublicPortal: |
| 88 | keywords_file: publicportal | 113 | keywords_file: publicportal |
| 89 | roles: | 114 | roles: |
| 90 | viewer: PublicPortal_Viewer | 115 | viewer: PublicPortal_Viewer |
| 91 | SmartTender: | 116 | SmartTender: |
| 117 | + intervals: | ||
| 118 | + default: | ||
| 119 | + enquiry: [5, 10] | ||
| 120 | + tender: [0, 15] | ||
| 92 | keywords_file: smarttender | 121 | keywords_file: smarttender |
| 93 | roles: | 122 | roles: |
| 123 | + provider: SmartTender_Provider1 | ||
| 124 | + provider1: SmartTender_Provider2 | ||
| 125 | + tender_owner: SmartTender_Owner | ||
| 94 | viewer: SmartTender_Viewer | 126 | viewer: SmartTender_Viewer |
| 127 | + timeout_on_wait: 300 |
| @@ -13,7 +13,7 @@ users: | @@ -13,7 +13,7 @@ users: | ||
| 13 | broker: Quinta | 13 | broker: Quinta |
| 14 | E-tender_Owner: | 14 | E-tender_Owner: |
| 15 | broker: E-tender | 15 | broker: E-tender |
| 16 | - homepage: "http://bid.uat.e-tender.biz/#/profile" | 16 | + homepage: "http://bid.uat.e-tender.biz/#" |
| 17 | login: Misha2 | 17 | login: Misha2 |
| 18 | password: Password1 | 18 | password: Password1 |
| 19 | browser: chrome | 19 | browser: chrome |
| @@ -21,7 +21,7 @@ users: | @@ -21,7 +21,7 @@ users: | ||
| 21 | size: [800, 800] | 21 | size: [800, 800] |
| 22 | E-tender_Provider1: | 22 | E-tender_Provider1: |
| 23 | broker: E-tender | 23 | broker: E-tender |
| 24 | - homepage: "http://bid.uat.e-tender.biz/#/profile" | 24 | + homepage: "http://bid.uat.e-tender.biz/#" |
| 25 | login: st_org | 25 | login: st_org |
| 26 | password: 12345678 | 26 | password: 12345678 |
| 27 | browser: chrome | 27 | browser: chrome |
| @@ -29,7 +29,7 @@ users: | @@ -29,7 +29,7 @@ users: | ||
| 29 | size: [700, 800] | 29 | size: [700, 800] |
| 30 | E-tender_Provider2: | 30 | E-tender_Provider2: |
| 31 | broker: E-tender | 31 | broker: E-tender |
| 32 | - homepage: "http://bid.uat.e-tender.biz/#/profile" | 32 | + homepage: "http://bid.uat.e-tender.biz/#" |
| 33 | login: provider2 | 33 | login: provider2 |
| 34 | password: Qa123456 | 34 | password: Qa123456 |
| 35 | browser: chrome | 35 | browser: chrome |
| @@ -41,24 +41,24 @@ users: | @@ -41,24 +41,24 @@ users: | ||
| 41 | browser: chrome | 41 | browser: chrome |
| 42 | position: [0, 0] | 42 | position: [0, 0] |
| 43 | size: [640, 450] | 43 | size: [640, 450] |
| 44 | - Netcast_Owner: | ||
| 45 | - broker: Netcast | 44 | + DZO_Owner: |
| 45 | + broker: DZO | ||
| 46 | homepage: "http://dz2.byustudio.in.ua" | 46 | homepage: "http://dz2.byustudio.in.ua" |
| 47 | login: ovramet.s@gmail.com | 47 | login: ovramet.s@gmail.com |
| 48 | password: Password1 | 48 | password: Password1 |
| 49 | browser: chrome | 49 | browser: chrome |
| 50 | position: [0, 0] | 50 | position: [0, 0] |
| 51 | size: [700, 800] | 51 | size: [700, 800] |
| 52 | - Netcast_Provider1: | ||
| 53 | - broker: Netcast | 52 | + DZO_Provider1: |
| 53 | + broker: DZO | ||
| 54 | homepage: "http://dz2.byustudio.in.ua" | 54 | homepage: "http://dz2.byustudio.in.ua" |
| 55 | login: halyna.khimka@gmail.com | 55 | login: halyna.khimka@gmail.com |
| 56 | password: JHO5VUp5n | 56 | password: JHO5VUp5n |
| 57 | browser: chrome | 57 | browser: chrome |
| 58 | position: [0, 0] | 58 | position: [0, 0] |
| 59 | size: [600, 800] | 59 | size: [600, 800] |
| 60 | - Netcast_Viewer: | ||
| 61 | - broker: Netcast | 60 | + DZO_Viewer: |
| 61 | + broker: DZO | ||
| 62 | homepage: "http://dz2.byustudio.in.ua" | 62 | homepage: "http://dz2.byustudio.in.ua" |
| 63 | browser: chrome | 63 | browser: chrome |
| 64 | position: [0, 0] | 64 | position: [0, 0] |
| @@ -111,7 +111,8 @@ users: | @@ -111,7 +111,8 @@ users: | ||
| 111 | size: [1000, 1000] | 111 | size: [1000, 1000] |
| 112 | Prom_Owner: | 112 | Prom_Owner: |
| 113 | broker: Prom | 113 | broker: Prom |
| 114 | - homepage: "http://my.dz-test.net/cabinet/purchases/state_purchase/list" | 114 | + homepage: "http://zakupki.dz-test.net/" |
| 115 | + default_page: "http://my.dz-test.net/cabinet/purchases/state_purchase/list" | ||
| 115 | login: test@test12.com | 116 | login: test@test12.com |
| 116 | password: 1234 | 117 | password: 1234 |
| 117 | browser: chrome | 118 | browser: chrome |
| @@ -119,8 +120,9 @@ users: | @@ -119,8 +120,9 @@ users: | ||
| 119 | size: [1280, 1024] | 120 | size: [1280, 1024] |
| 120 | Prom_Viewer: | 121 | Prom_Viewer: |
| 121 | broker: Prom | 122 | broker: Prom |
| 122 | - homepage: "http://my.dz-test.net/cabinet/purchases/state_purchase/list" | ||
| 123 | - login: r.zaporozhets@smartweb.com.ua | 123 | + homepage: "http://zakupki.dz-test.net/" |
| 124 | + default_page: "http://my.dz-test.net/cabinet/purchases/state_purchase/list" | ||
| 125 | + login: test@test13.com | ||
| 124 | password: 1234 | 126 | password: 1234 |
| 125 | browser: chrome | 127 | browser: chrome |
| 126 | position: [640, 0] | 128 | position: [640, 0] |
| @@ -155,7 +157,31 @@ users: | @@ -155,7 +157,31 @@ users: | ||
| 155 | size: [640, 480] | 157 | size: [640, 480] |
| 156 | SmartTender_Viewer: | 158 | SmartTender_Viewer: |
| 157 | broker: SmartTender | 159 | broker: SmartTender |
| 158 | - homepage: "http://smarttender.biz/tenders" | 160 | + homepage: "https://m.it.ua/cp_smart/test-tenders?allcat=1" |
| 161 | + browser: chrome | ||
| 162 | + position: [0, 450] | ||
| 163 | + size: [640, 450] | ||
| 164 | + SmartTender_Provider1: | ||
| 165 | + broker: SmartTender | ||
| 166 | + homepage: "https://m.it.ua/cp_smart/test-tenders?allcat=1" | ||
| 167 | + login: bened@it.ua | ||
| 168 | + password: 111111 | ||
| 159 | browser: chrome | 169 | browser: chrome |
| 160 | position: [0, 450] | 170 | position: [0, 450] |
| 161 | size: [640, 450] | 171 | size: [640, 450] |
| 172 | + SmartTender_Provider2: | ||
| 173 | + broker: SmartTender | ||
| 174 | + homepage: "https://m.it.ua/cp_smart/test-tenders?allcat=1" | ||
| 175 | + login: my.mail.rudenko@gmail.com | ||
| 176 | + password: qwerty123 | ||
| 177 | + browser: chrome | ||
| 178 | + position: [0, 450] | ||
| 179 | + size: [640, 450] | ||
| 180 | + SmartTender_Owner: | ||
| 181 | + broker: SmartTender | ||
| 182 | + homepage: "https://m.it.ua/cp_smart/" | ||
| 183 | + login: PPR_BV | ||
| 184 | + password: 123321 | ||
| 185 | + browser: chrome | ||
| 186 | + position: [0, 0] | ||
| 187 | + size: [1400, 900] |
| @@ -10,6 +10,10 @@ fake_ru = Factory.create('ru') | @@ -10,6 +10,10 @@ fake_ru = Factory.create('ru') | ||
| 10 | fake_en = Factory.create() | 10 | fake_en = Factory.create() |
| 11 | 11 | ||
| 12 | 12 | ||
| 13 | +def create_fake_sentence(): | ||
| 14 | + return fake.sentence(nb_words=10, variable_nb_words=True) | ||
| 15 | + | ||
| 16 | + | ||
| 13 | def create_fake_doc(): | 17 | def create_fake_doc(): |
| 14 | content = fake.text() | 18 | content = fake.text() |
| 15 | suffix = fake.random_element(('.txt', '.doc', '.docx', '.pdf')) | 19 | suffix = fake.random_element(('.txt', '.doc', '.docx', '.pdf')) |
| @@ -19,7 +23,7 @@ def create_fake_doc(): | @@ -19,7 +23,7 @@ def create_fake_doc(): | ||
| 19 | return tf.name | 23 | return tf.name |
| 20 | 24 | ||
| 21 | 25 | ||
| 22 | -def test_tender_data(intervals): | 26 | +def test_tender_data(intervals, periods=("enquiry", "tender")): |
| 23 | now = get_now() | 27 | now = get_now() |
| 24 | t_data = { | 28 | t_data = { |
| 25 | "title": u"[ТЕСТУВАННЯ] " + fake.catch_phrase(), | 29 | "title": u"[ТЕСТУВАННЯ] " + fake.catch_phrase(), |
| @@ -104,7 +108,7 @@ def test_tender_data(intervals): | @@ -104,7 +108,7 @@ def test_tender_data(intervals): | ||
| 104 | } | 108 | } |
| 105 | period_dict = {} | 109 | period_dict = {} |
| 106 | inc_dt = now | 110 | inc_dt = now |
| 107 | - for period_name in ("enquiry", "tender"): | 111 | + for period_name in periods: |
| 108 | period_dict[period_name + "Period"] = {} | 112 | period_dict[period_name + "Period"] = {} |
| 109 | for i, j in zip(range(2), ("start", "end")): | 113 | for i, j in zip(range(2), ("start", "end")): |
| 110 | inc_dt += timedelta(minutes=intervals[period_name][i]) | 114 | inc_dt += timedelta(minutes=intervals[period_name][i]) |
| @@ -190,189 +194,31 @@ def test_tender_data_limited(intervals): | @@ -190,189 +194,31 @@ def test_tender_data_limited(intervals): | ||
| 190 | 194 | ||
| 191 | 195 | ||
| 192 | def test_tender_data_multiple_items(intervals): | 196 | def test_tender_data_multiple_items(intervals): |
| 193 | - now = get_now() | ||
| 194 | t_data = test_tender_data(intervals) | 197 | t_data = test_tender_data(intervals) |
| 195 | - t_data.update({ | ||
| 196 | - "items": [ | ||
| 197 | - { | ||
| 198 | - "description": fake.catch_phrase(), | ||
| 199 | - "deliveryDate": { | ||
| 200 | - "endDate": (now + timedelta(days=5)).isoformat() | ||
| 201 | - }, | ||
| 202 | - "deliveryLocation": { | ||
| 203 | - "latitude": 49.8500, | ||
| 204 | - "longitude": 24.0167 | ||
| 205 | - }, | ||
| 206 | - "deliveryAddress": { | ||
| 207 | - "countryName": u"Україна", | ||
| 208 | - "countryName_ru": u"Украина", | ||
| 209 | - "countryName_en": "Ukraine", | ||
| 210 | - "postalCode": "01008", | ||
| 211 | - "region": u"м. Київ", | ||
| 212 | - "locality": u"м. Київ", | ||
| 213 | - "streetAddress": u"ул. Грушевского, 12/2" | ||
| 214 | - }, | ||
| 215 | - "classification": { | ||
| 216 | - "scheme": u"CPV", | ||
| 217 | - "id": u"44617100-9", | ||
| 218 | - "description": u"Картонки", | ||
| 219 | - "description_ru": u"Большие картонные коробки", | ||
| 220 | - "description_en": u"Cartons" | ||
| 221 | - }, | ||
| 222 | - "additionalClassifications": [ | ||
| 223 | - { | ||
| 224 | - "scheme": u"ДКПП", | ||
| 225 | - "id": u"17.29.12-00.00", | ||
| 226 | - "description": u"Блоки, плити та пластини фільтрувальні, з паперової маси" | ||
| 227 | - } | ||
| 228 | - ], | ||
| 229 | - "unit": { | ||
| 230 | - "name": u"кілограм", | ||
| 231 | - "name_ru": u"килограмм", | ||
| 232 | - "name_en": "kilogram", | ||
| 233 | - "code": u"KGM" | ||
| 234 | - }, | ||
| 235 | - "quantity": fake.pyint() | ||
| 236 | - }, | ||
| 237 | - { | ||
| 238 | - "description": fake.catch_phrase(), | ||
| 239 | - "deliveryDate": { | ||
| 240 | - "endDate": (now + timedelta(days=5)).isoformat() | ||
| 241 | - }, | ||
| 242 | - "deliveryLocation": { | ||
| 243 | - "latitude": 49.8500, | ||
| 244 | - "longitude": 24.0167 | ||
| 245 | - }, | ||
| 246 | - "deliveryAddress": { | ||
| 247 | - "countryName": u"Україна", | ||
| 248 | - "countryName_ru": u"Украина", | ||
| 249 | - "countryName_en": "Ukraine", | ||
| 250 | - "postalCode": fake.postalcode(), | ||
| 251 | - "region": u"м. Київ", | ||
| 252 | - "locality": u"м. Київ", | ||
| 253 | - "streetAddress": fake.street_address() | ||
| 254 | - }, | ||
| 255 | - "classification": { | ||
| 256 | - "scheme": u"CPV", | ||
| 257 | - "id": u"44617100-9", | ||
| 258 | - "description": u"Картонки", | ||
| 259 | - "description_ru": u"Большие картонные коробки", | ||
| 260 | - "description_en": u"Cartons" | ||
| 261 | - }, | ||
| 262 | - "additionalClassifications": [ | ||
| 263 | - { | ||
| 264 | - "scheme": u"ДКПП", | ||
| 265 | - "id": u"17.21.99-00.00", | ||
| 266 | - "description": u"Роботи субпідрядні як частина виробництва гофрованих паперу й картону, паперової та картонної тари" | ||
| 267 | - } | ||
| 268 | - ], | ||
| 269 | - "unit": { | ||
| 270 | - "name": u"кілограм", | ||
| 271 | - "name_ru": u"килограмм", | ||
| 272 | - "name_en": "kilogram", | ||
| 273 | - "code": u"KGM" | ||
| 274 | - }, | ||
| 275 | - "quantity": fake.pyint() | ||
| 276 | - }, | ||
| 277 | - { | ||
| 278 | - "description": fake.catch_phrase(), | ||
| 279 | - "deliveryDate": { | ||
| 280 | - "endDate": (now + timedelta(days=5)).isoformat() | ||
| 281 | - }, | ||
| 282 | - "deliveryLocation": { | ||
| 283 | - "latitude": 49.3418, | ||
| 284 | - "longitude": 39.1829 | ||
| 285 | - }, | ||
| 286 | - "deliveryAddress": { | ||
| 287 | - "countryName": u"Україна", | ||
| 288 | - "countryName_ru": u"Украина", | ||
| 289 | - "countryName_en": "Ukraine", | ||
| 290 | - "postalCode": fake.postalcode(), | ||
| 291 | - "region": u"Луганська область", | ||
| 292 | - "locality": u"м. Луганськ", | ||
| 293 | - "streetAddress": u"Вул. Оборонна 28" | ||
| 294 | - }, | ||
| 295 | - "classification": { | ||
| 296 | - "scheme": u"CPV", | ||
| 297 | - "id": u"44617100-9", | ||
| 298 | - "description": u"Картонки", | ||
| 299 | - "description_ru": u"Большие картонные коробки", | ||
| 300 | - "description_en": u"Cartons" | ||
| 301 | - }, | ||
| 302 | - "additionalClassifications": [ | ||
| 303 | - { | ||
| 304 | - "scheme": u"ДКПП", | ||
| 305 | - "id": u"17.22.12-40.00", | ||
| 306 | - "description": u"Вата; вироби з вати, інші" | ||
| 307 | - } | ||
| 308 | - ], | ||
| 309 | - "unit": { | ||
| 310 | - "name": u"кілограм", | ||
| 311 | - "name_ru": u"килограмм", | ||
| 312 | - "name_en": "kilogram", | ||
| 313 | - "code": u"KGM" | ||
| 314 | - }, | ||
| 315 | - "quantity": fake.pyint() | ||
| 316 | - }, | ||
| 317 | - { | ||
| 318 | - "description": fake.catch_phrase(), | ||
| 319 | - "deliveryDate": { | ||
| 320 | - "endDate": (now + timedelta(days=5)).isoformat() | ||
| 321 | - }, | ||
| 322 | - "deliveryLocation": { | ||
| 323 | - "latitude": 49.8500, | ||
| 324 | - "longitude": 24.0167 | ||
| 325 | - }, | ||
| 326 | - "deliveryAddress": { | ||
| 327 | - "countryName": u"Україна", | ||
| 328 | - "countryName_ru": u"Украина", | ||
| 329 | - "countryName_en": "Ukraine", | ||
| 330 | - "postalCode": fake.postalcode(), | ||
| 331 | - "region": u"м. Київ", | ||
| 332 | - "locality": u"м. Київ", | ||
| 333 | - "streetAddress": fake.street_address() | ||
| 334 | - }, | ||
| 335 | - "classification": { | ||
| 336 | - "scheme": u"CPV", | ||
| 337 | - "id": u"44617100-9", | ||
| 338 | - "description": u"Картонки", | ||
| 339 | - "description_ru": u"Большие картонные коробки", | ||
| 340 | - "description_en": u"Cartons" | ||
| 341 | - }, | ||
| 342 | - "additionalClassifications": [ | ||
| 343 | - { | ||
| 344 | - "scheme": u"ДКПП", | ||
| 345 | - "id": u"17.22.12-50.00", | ||
| 346 | - "description": u"Одяг і речі до одягу з паперової маси, паперу, целюлозної вати чи полотна з целюлозного волокна (крім носових хусточок, наголовних уборів)" | ||
| 347 | - } | ||
| 348 | - ], | ||
| 349 | - "unit": { | ||
| 350 | - "name": u"кілограм", | ||
| 351 | - "name_ru": u"килограмм", | ||
| 352 | - "name_en": "kilogram", | ||
| 353 | - "code": u"KGM" | ||
| 354 | - }, | ||
| 355 | - "quantity": fake.pyint() | ||
| 356 | - } | ||
| 357 | - ] | ||
| 358 | - }) | 198 | + for _ in range(4): |
| 199 | + new_item = test_item_data() | ||
| 200 | + t_data['items'].append(new_item) | ||
| 359 | return t_data | 201 | return t_data |
| 360 | 202 | ||
| 361 | 203 | ||
| 362 | def test_tender_data_multiple_lots(t_data): | 204 | def test_tender_data_multiple_lots(t_data): |
| 363 | - for i in range(3): | ||
| 364 | - t_data['data']['items'][i]['relatedLot'] = "3c8f387879de4c38957402dbdb8b31af" | ||
| 365 | - t_data['data']['items'][3]['relatedLot'] = "bcac8d2ceb5f4227b841a2211f5cb646" | 205 | + first_lot_id = "3c8f387879de4c38957402dbdb8b31af" |
| 206 | + second_lot_id = "bcac8d2ceb5f4227b841a2211f5cb646" | ||
| 207 | + | ||
| 208 | + for item in t_data['data']['items'][:-1]: | ||
| 209 | + item['relatedLot'] = first_lot_id | ||
| 210 | + t_data['data']['items'][-1]['relatedLot'] = second_lot_id | ||
| 211 | + | ||
| 366 | t_data['data']['lots'] = [ | 212 | t_data['data']['lots'] = [ |
| 367 | { | 213 | { |
| 368 | - "id": "3c8f387879de4c38957402dbdb8b31af", | 214 | + "id": first_lot_id, |
| 369 | "title": "Lot #1: Kyiv stationery", | 215 | "title": "Lot #1: Kyiv stationery", |
| 370 | "description": "Items for Kyiv office", | 216 | "description": "Items for Kyiv office", |
| 371 | "value": {"currency": "UAH", "amount": 34000.0, "valueAddedTaxIncluded": "true"}, | 217 | "value": {"currency": "UAH", "amount": 34000.0, "valueAddedTaxIncluded": "true"}, |
| 372 | "minimalStep": {"currency": "UAH", "amount": 30.0, "valueAddedTaxIncluded": "true"}, | 218 | "minimalStep": {"currency": "UAH", "amount": 30.0, "valueAddedTaxIncluded": "true"}, |
| 373 | "status": "active" | 219 | "status": "active" |
| 374 | }, { | 220 | }, { |
| 375 | - "id": "bcac8d2ceb5f4227b841a2211f5cb646", | 221 | + "id": second_lot_id, |
| 376 | "title": "Lot #2: Lviv stationery", | 222 | "title": "Lot #2: Lviv stationery", |
| 377 | "description": "Items for Lviv office", | 223 | "description": "Items for Lviv office", |
| 378 | "value": {"currency": "UAH", "amount": 9000.0, "valueAddedTaxIncluded": "true"}, | 224 | "value": {"currency": "UAH", "amount": 9000.0, "valueAddedTaxIncluded": "true"}, |
| @@ -436,8 +282,8 @@ def test_meat_tender_data(tender): | @@ -436,8 +282,8 @@ def test_meat_tender_data(tender): | ||
| 436 | return tender | 282 | return tender |
| 437 | 283 | ||
| 438 | 284 | ||
| 439 | -def test_question_data(): | ||
| 440 | - return munchify({ | 285 | +def test_question_data(lot=False): |
| 286 | + data = munchify({ | ||
| 441 | "data": { | 287 | "data": { |
| 442 | "author": { | 288 | "author": { |
| 443 | "address": { | 289 | "address": { |
| @@ -464,6 +310,9 @@ def test_question_data(): | @@ -464,6 +310,9 @@ def test_question_data(): | ||
| 464 | "title": fake.sentence(nb_words=6, variable_nb_words=True) | 310 | "title": fake.sentence(nb_words=6, variable_nb_words=True) |
| 465 | } | 311 | } |
| 466 | }) | 312 | }) |
| 313 | + if lot: | ||
| 314 | + data = test_lot_question_data(data) | ||
| 315 | + return data | ||
| 467 | 316 | ||
| 468 | 317 | ||
| 469 | def test_question_answer_data(): | 318 | def test_question_answer_data(): |
| @@ -474,7 +323,40 @@ def test_question_answer_data(): | @@ -474,7 +323,40 @@ def test_question_answer_data(): | ||
| 474 | }) | 323 | }) |
| 475 | 324 | ||
| 476 | 325 | ||
| 477 | -def test_complaint_data(): | 326 | +def test_complaint_data(lot=False): |
| 327 | + data = munchify({ | ||
| 328 | + "data": { | ||
| 329 | + "author": { | ||
| 330 | + "address": { | ||
| 331 | + "countryName": u"Україна", | ||
| 332 | + "countryName_ru": u"Украина", | ||
| 333 | + "countryName_en": "Ukraine", | ||
| 334 | + "locality": u"м. Вінниця", | ||
| 335 | + "postalCode": "21100", | ||
| 336 | + "region": u"Вінницька область", | ||
| 337 | + "streetAddress": fake.street_address() | ||
| 338 | + }, | ||
| 339 | + "contactPoint": { | ||
| 340 | + "name": fake.name(), | ||
| 341 | + "telephone": fake.phone_number() | ||
| 342 | + }, | ||
| 343 | + "identifier": { | ||
| 344 | + "scheme": u"UA-EDR", | ||
| 345 | + "id": u"{:08d}".format(fake.pyint()), | ||
| 346 | + "uri": fake.image_url(width=None, height=None) | ||
| 347 | + }, | ||
| 348 | + "name": fake.company() | ||
| 349 | + }, | ||
| 350 | + "description": fake.sentence(nb_words=10, variable_nb_words=True), | ||
| 351 | + "title": fake.sentence(nb_words=6, variable_nb_words=True) | ||
| 352 | + } | ||
| 353 | + }) | ||
| 354 | + if lot: | ||
| 355 | + data = test_lot_complaint_data(data) | ||
| 356 | + return data | ||
| 357 | + | ||
| 358 | + | ||
| 359 | +def test_claim_data(): | ||
| 478 | return munchify({ | 360 | return munchify({ |
| 479 | "data": { | 361 | "data": { |
| 480 | "author": { | 362 | "author": { |
| @@ -674,97 +556,57 @@ def test_bid_data(): | @@ -674,97 +556,57 @@ def test_bid_data(): | ||
| 674 | } | 556 | } |
| 675 | ], | 557 | ], |
| 676 | "value": { | 558 | "value": { |
| 677 | - "amount": 500 | 559 | + "currency": "UAH", |
| 560 | + "amount": 500, | ||
| 561 | + "valueAddedTaxIncluded": "true" | ||
| 678 | } | 562 | } |
| 679 | } | 563 | } |
| 680 | }) | 564 | }) |
| 681 | 565 | ||
| 682 | 566 | ||
| 683 | def test_bid_data_meat_tender(): | 567 | def test_bid_data_meat_tender(): |
| 684 | - return munchify({ | ||
| 685 | - "data": { | ||
| 686 | - "tenderers": [ | ||
| 687 | - { | ||
| 688 | - "address": { | ||
| 689 | - "countryName": "Україна", | ||
| 690 | - "locality": "м. Вінниця", | ||
| 691 | - "postalCode": "21100", | ||
| 692 | - "region": "м. Вінниця", | ||
| 693 | - "streetAddress": fake.street_address() | ||
| 694 | - }, | ||
| 695 | - "contactPoint": { | ||
| 696 | - "name": fake.name(), | ||
| 697 | - "telephone": fake.phone_number() | ||
| 698 | - }, | ||
| 699 | - "identifier": { | ||
| 700 | - "scheme": u"UA-EDR", | ||
| 701 | - "id": u"{:08d}".format(fake.pyint()), | ||
| 702 | - }, | ||
| 703 | - "name": fake.company() | ||
| 704 | - } | ||
| 705 | - ], | ||
| 706 | - "parameters": [ | ||
| 707 | - { | ||
| 708 | - "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
| 709 | - "value": fake.random_element(elements=(0.15, 0.1, 0.05, 0)) | ||
| 710 | - }, | ||
| 711 | - { | ||
| 712 | - "code": "48cfd91612c04125ab406374d7cc8d93", | ||
| 713 | - "value": fake.random_element(elements=(0.05, 0.01, 0)) | ||
| 714 | - } | ||
| 715 | - ], | ||
| 716 | - "value": { | ||
| 717 | - "amount": 500 | 568 | + bid = test_bid_data() |
| 569 | + bid.data.update({ | ||
| 570 | + "parameters": [ | ||
| 571 | + { | ||
| 572 | + "code": "ee3e24bc17234a41bd3e3a04cc28e9c6", | ||
| 573 | + "value": fake.random_element(elements=(0.15, 0.1, 0.05, 0)) | ||
| 574 | + }, | ||
| 575 | + { | ||
| 576 | + "code": "48cfd91612c04125ab406374d7cc8d93", | ||
| 577 | + "value": fake.random_element(elements=(0.05, 0.01, 0)) | ||
| 718 | } | 578 | } |
| 719 | - } | 579 | + ] |
| 720 | }) | 580 | }) |
| 581 | + return bid | ||
| 721 | 582 | ||
| 722 | 583 | ||
| 723 | def test_lots_bid_data(): | 584 | def test_lots_bid_data(): |
| 724 | - return munchify({ | ||
| 725 | - "data": { | ||
| 726 | - "tenderers": [ | ||
| 727 | - { | ||
| 728 | - "address": { | ||
| 729 | - "countryName": "Україна", | ||
| 730 | - "locality": "м. Вінниця", | ||
| 731 | - "postalCode": "21100", | ||
| 732 | - "region": "м. Вінниця", | ||
| 733 | - "streetAddress": fake.street_address() | ||
| 734 | - }, | ||
| 735 | - "contactPoint": { | ||
| 736 | - "name": fake.name(), | ||
| 737 | - "telephone": fake.phone_number() | ||
| 738 | - }, | ||
| 739 | - "identifier": { | ||
| 740 | - "scheme": u"UA-EDR", | ||
| 741 | - "id": u"{:08d}".format(fake.pyint()), | ||
| 742 | - }, | ||
| 743 | - "name": fake.company() | ||
| 744 | - } | ||
| 745 | - ], | ||
| 746 | - "lotValues": [ | ||
| 747 | - { | ||
| 748 | - "value": { | ||
| 749 | - "currency": "UAH", | ||
| 750 | - "amount": 1000 + fake.pyfloat(left_digits=3, right_digits=0, positive=True), | ||
| 751 | - "valueAddedTaxIncluded": "true" | ||
| 752 | - }, | ||
| 753 | - "relatedLot": "3c8f387879de4c38957402dbdb8b31af", | ||
| 754 | - "date": "2015-11-01T12:43:12.482645+02:00" | 585 | + bid = test_bid_data() |
| 586 | + del bid.data.value | ||
| 587 | + bid.data.update({ | ||
| 588 | + "lotValues": [ | ||
| 589 | + { | ||
| 590 | + "value": { | ||
| 591 | + "currency": "UAH", | ||
| 592 | + "amount": fake.random_int(max=1999), | ||
| 593 | + "valueAddedTaxIncluded": "true" | ||
| 755 | }, | 594 | }, |
| 756 | - { | ||
| 757 | - "value": { | ||
| 758 | - "currency": "UAH", | ||
| 759 | - "amount": 1000 + fake.pyfloat(left_digits=3, right_digits=0, positive=True), | ||
| 760 | - "valueAddedTaxIncluded": "true" | ||
| 761 | - }, | ||
| 762 | - "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
| 763 | - "date": "2015-11-01T12:43:12.482645+02:00" | ||
| 764 | - } | ||
| 765 | - ] | ||
| 766 | - } | 595 | + "relatedLot": "3c8f387879de4c38957402dbdb8b31af", |
| 596 | + "date": "2015-11-01T12:43:12.482645+02:00" | ||
| 597 | + }, | ||
| 598 | + { | ||
| 599 | + "value": { | ||
| 600 | + "currency": "UAH", | ||
| 601 | + "amount": fake.random_int(max=1999), | ||
| 602 | + "valueAddedTaxIncluded": "true" | ||
| 603 | + }, | ||
| 604 | + "relatedLot": "bcac8d2ceb5f4227b841a2211f5cb646", | ||
| 605 | + "date": "2015-11-01T12:43:12.482645+02:00" | ||
| 606 | + } | ||
| 607 | + ] | ||
| 767 | }) | 608 | }) |
| 609 | + return bid | ||
| 768 | 610 | ||
| 769 | 611 | ||
| 770 | def auction_bid(): | 612 | def auction_bid(): |
| @@ -875,14 +717,6 @@ def test_invalid_features_data(): | @@ -875,14 +717,6 @@ def test_invalid_features_data(): | ||
| 875 | "title": "180 днів та більше" | 717 | "title": "180 днів та більше" |
| 876 | }, | 718 | }, |
| 877 | { | 719 | { |
| 878 | - "value": 0.1, | ||
| 879 | - "title": "90-179 днів", | ||
| 880 | - }, | ||
| 881 | - { | ||
| 882 | - "value": 0.05, | ||
| 883 | - "title": "30-89 днів" | ||
| 884 | - }, | ||
| 885 | - { | ||
| 886 | "value": 0, | 720 | "value": 0, |
| 887 | "title": "Менше 30 днів" | 721 | "title": "Менше 30 днів" |
| 888 | } | 722 | } |
| @@ -900,10 +734,6 @@ def test_invalid_features_data(): | @@ -900,10 +734,6 @@ def test_invalid_features_data(): | ||
| 900 | "title": "Вищий" | 734 | "title": "Вищий" |
| 901 | }, | 735 | }, |
| 902 | { | 736 | { |
| 903 | - "value": 0.01, | ||
| 904 | - "title": "Перший", | ||
| 905 | - }, | ||
| 906 | - { | ||
| 907 | "value": 0, | 737 | "value": 0, |
| 908 | "title": "Другий" | 738 | "title": "Другий" |
| 909 | } | 739 | } |
| @@ -948,3 +778,38 @@ def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af" | @@ -948,3 +778,38 @@ def test_lot_complaint_data(complaint, lot_id="3c8f387879de4c38957402dbdb8b31af" | ||
| 948 | lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} | 778 | lot_complaint = {"complaintOf": "lot", "relatedItem": lot_id} |
| 949 | lot_complaint.update(complaint.data) | 779 | lot_complaint.update(complaint.data) |
| 950 | return munchify({"data": lot_complaint}) | 780 | return munchify({"data": lot_complaint}) |
| 781 | + | ||
| 782 | + | ||
| 783 | +def test_tender_data_openua(intervals): | ||
| 784 | + accelerator = intervals['accelerator'] | ||
| 785 | + # Since `accelerator` field is not really a list containing timings | ||
| 786 | + # for a period called `acceleratorPeriod`, let's remove it :) | ||
| 787 | + del intervals['accelerator'] | ||
| 788 | + # We should not provide any values for `enquiryPeriod` when creating | ||
| 789 | + # an openUA or openEU procedure. That field should not be present at all. | ||
| 790 | + # Therefore, we pass a nondefault list of periods to `test_tender_data()`. | ||
| 791 | + t_data = test_tender_data(intervals, periods=('tender',)) | ||
| 792 | + t_data['procurementMethodType'] = 'aboveThresholdUA' | ||
| 793 | + t_data['procurementMethodDetails'] = 'quick, ' \ | ||
| 794 | + 'accelerator={}'.format(accelerator) | ||
| 795 | + return t_data | ||
| 796 | + | ||
| 797 | +def test_tender_data_openeu(intervals): | ||
| 798 | + accelerator = intervals['accelerator'] | ||
| 799 | + # Since `accelerator` field is not really a list containing timings | ||
| 800 | + # for a period called `acceleratorPeriod`, let's remove it :) | ||
| 801 | + del intervals['accelerator'] | ||
| 802 | + # We should not provide any values for `enquiryPeriod` when creating | ||
| 803 | + # an openUA or openEU procedure. That field should not be present at all. | ||
| 804 | + # Therefore, we pass a nondefault list of periods to `test_tender_data()`. | ||
| 805 | + t_data = test_tender_data(intervals, periods=('tender',)) | ||
| 806 | + t_data['procurementMethodType'] = 'aboveThresholdEU' | ||
| 807 | + t_data['procurementMethodDetails'] = 'quick, ' \ | ||
| 808 | + 'accelerator={}'.format(accelerator) | ||
| 809 | + t_data['title_en'] = "[TESTING]" | ||
| 810 | + for item_number, item in enumerate(t_data['items']): | ||
| 811 | + item['description_en'] = "Test item #{}".format(item_number) | ||
| 812 | + t_data['procuringEntity']['contactPoint']['name_en'] = fake_en.name() | ||
| 813 | + t_data['procuringEntity']['contactPoint']['availableLanguage'] = "en" | ||
| 814 | + t_data['procuringEntity']['identifier']['legalName_en'] = "Institution \"Vinnytsia City Council primary and secondary general school № 10\"" | ||
| 815 | + return t_data |
| 1 | *** Settings *** | 1 | *** Settings *** |
| 2 | -Resource resource.robot | ||
| 3 | Library op_robot_tests.tests_files.service_keywords | 2 | Library op_robot_tests.tests_files.service_keywords |
| 4 | Library String | 3 | Library String |
| 5 | Library Collections | 4 | Library Collections |
| @@ -7,13 +6,21 @@ Library Selenium2Library | @@ -7,13 +6,21 @@ Library Selenium2Library | ||
| 7 | Library DateTime | 6 | Library DateTime |
| 8 | Library DebugLibrary | 7 | Library DebugLibrary |
| 9 | 8 | ||
| 9 | +Documentation | ||
| 10 | +... This resource file contains keywords that are used directly by | ||
| 11 | +... test suites or by brokers' keyword libraries (also known as drivers). | ||
| 10 | 12 | ||
| 11 | *** Keywords *** | 13 | *** Keywords *** |
| 12 | -TestSuiteSetup | 14 | +Test Suite Setup |
| 13 | Set Selenium Implicit Wait 5 s | 15 | Set Selenium Implicit Wait 5 s |
| 14 | Set Selenium Timeout 10 s | 16 | Set Selenium Timeout 10 s |
| 15 | Завантажуємо дані про користувачів і майданчики | 17 | Завантажуємо дані про користувачів і майданчики |
| 16 | 18 | ||
| 19 | +Test Suite Teardown | ||
| 20 | + Close all browsers | ||
| 21 | + ${artifact}= Create Dictionary tender_uaid=${TENDER['TENDER_UAID']} access_token=${USERS.users['${tender_owner}'].access_token} | ||
| 22 | + log_object_data ${artifact} arctifact | ||
| 23 | + | ||
| 17 | 24 | ||
| 18 | Set Suite Variable With Default Value | 25 | Set Suite Variable With Default Value |
| 19 | [Arguments] ${suite_var} ${def_value} | 26 | [Arguments] ${suite_var} ${def_value} |
| @@ -27,8 +34,8 @@ Set Suite Variable With Default Value | @@ -27,8 +34,8 @@ Set Suite Variable With Default Value | ||
| 27 | 34 | ||
| 28 | ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml | 35 | ${file_path}= Get Variable Value ${BROKERS_FILE} brokers.yaml |
| 29 | ${BROKERS}= load_initial_data_from ${file_path} | 36 | ${BROKERS}= load_initial_data_from ${file_path} |
| 30 | - log ${BROKERS} | ||
| 31 | - Set Global Variable ${BROKERS} | 37 | + Log ${BROKERS} |
| 38 | + Set Suite Variable ${BROKERS} | ||
| 32 | 39 | ||
| 33 | ${file_path}= Get Variable Value ${USERS_FILE} users.yaml | 40 | ${file_path}= Get Variable Value ${USERS_FILE} users.yaml |
| 34 | ${USERS}= load_initial_data_from ${file_path} | 41 | ${USERS}= load_initial_data_from ${file_path} |
| @@ -39,19 +46,19 @@ Set Suite Variable With Default Value | @@ -39,19 +46,19 @@ Set Suite Variable With Default Value | ||
| 39 | Set Suite Variable With Default Value provider Tender_User | 46 | Set Suite Variable With Default Value provider Tender_User |
| 40 | Set Suite Variable With Default Value provider1 Tender_User1 | 47 | Set Suite Variable With Default Value provider1 Tender_User1 |
| 41 | Set Suite Variable With Default Value viewer Tender_Viewer | 48 | Set Suite Variable With Default Value viewer Tender_Viewer |
| 42 | - ${active_users}= Create Dictionary tender_owner ${tender_owner} provider ${provider} provider1 ${provider1} viewer ${viewer} | 49 | + ${active_users}= Create Dictionary tender_owner=${tender_owner} provider=${provider} provider1=${provider1} viewer=${viewer} |
| 43 | 50 | ||
| 44 | - ${users_list}= Get Dictionary Items ${USERS.users} | ||
| 45 | - :FOR ${username} ${user_data} IN @{users_list} | ||
| 46 | - \ log ${active_users} | ||
| 47 | - \ log ${username} | 51 | + ${users_list}= Get Dictionary Items ${USERS.users} |
| 52 | + :FOR ${username} ${user_data} IN @{users_list} | ||
| 53 | + \ Log ${active_users} | ||
| 54 | + \ Log ${username} | ||
| 48 | \ ${munch_dict}= munch_dict data=${True} | 55 | \ ${munch_dict}= munch_dict data=${True} |
| 49 | \ Log Many ${munch_dict} | 56 | \ Log Many ${munch_dict} |
| 50 | - \ ${status}= Run Keyword And Return Status Dictionary Should Contain Value ${active_users} ${username} | 57 | + \ ${status}= Run Keyword And Return Status Dictionary Should Contain Value ${active_users} ${username} |
| 51 | \ ${keywords_file}= Get Broker Property By Username ${username} keywords_file | 58 | \ ${keywords_file}= Get Broker Property By Username ${username} keywords_file |
| 52 | - \ Run Keyword If '${status}' == 'True' Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} | ||
| 53 | - \ Run Keyword If '${status}' == 'True' Викликати для учасника ${username} Підготувати клієнт для користувача | ||
| 54 | - \ Run Keyword If '${status}' == 'True' Set To Dictionary ${USERS.users['${username}']} tender_data ${munch_dict} | 59 | + \ Run Keyword If ${status} Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} |
| 60 | + \ Run Keyword If ${status} Викликати для учасника ${username} Підготувати клієнт для користувача | ||
| 61 | + \ Run Keyword If ${status} Set To Dictionary ${USERS.users['${username}']} tender_data=${munch_dict} | ||
| 55 | 62 | ||
| 56 | 63 | ||
| 57 | Get Broker Property | 64 | Get Broker Property |
| @@ -77,25 +84,7 @@ Get Broker Property By Username | @@ -77,25 +84,7 @@ Get Broker Property By Username | ||
| 77 | Run Keyword And Return Get Broker Property ${broker_name} ${property} | 84 | Run Keyword And Return Get Broker Property ${broker_name} ${property} |
| 78 | 85 | ||
| 79 | 86 | ||
| 80 | -Підготовка початкових даних | ||
| 81 | - @{QUESTIONS}= Create list | ||
| 82 | - ${question}= test question data | ||
| 83 | - ${question_lot}= test_lot_question_data ${question} | ||
| 84 | - Append to list ${QUESTIONS} ${question} ${question_lot} | ||
| 85 | - Set Global Variable @{QUESTIONS} | ||
| 86 | - @{ANSWERS}= Create list | ||
| 87 | - ${answer}= test_question_answer_data | ||
| 88 | - Append to list ${ANSWERS} ${answer} | ||
| 89 | - Set Global Variable @{ANSWERS} | ||
| 90 | - @{COMPLAINTS}= Create list | ||
| 91 | - ${complaint}= test_complaint_data | ||
| 92 | - ${complaint_lot}= test_lot_complaint_data ${complaint} | ||
| 93 | - Append to list ${COMPLAINTS} ${complaint} ${complaint_lot} | ||
| 94 | - Set Global Variable @{COMPLAINTS} | ||
| 95 | - @{REPLIES}= Create list | ||
| 96 | - ${reply}= test_complaint_reply_data | ||
| 97 | - Append to list ${REPLIES} ${reply} | ||
| 98 | - Set Global Variable @{REPLIES} | 87 | +Підготовка даних для створення тендера |
| 99 | ${custom_intervals}= Get Broker Property By Username ${tender_owner} intervals | 88 | ${custom_intervals}= Get Broker Property By Username ${tender_owner} intervals |
| 100 | ${default_intervals}= Get Broker Property Default intervals | 89 | ${default_intervals}= Get Broker Property Default intervals |
| 101 | ${period_intervals}= merge_dicts ${default_intervals} ${custom_intervals} | 90 | ${period_intervals}= merge_dicts ${default_intervals} ${custom_intervals} |
| @@ -107,6 +96,34 @@ Get Broker Property By Username | @@ -107,6 +96,34 @@ Get Broker Property By Username | ||
| 107 | [return] ${tender_data} | 96 | [return] ${tender_data} |
| 108 | 97 | ||
| 109 | 98 | ||
| 99 | +Підготовка даних для подання вимоги | ||
| 100 | + ${claim}= test_claim_data | ||
| 101 | + [Return] ${claim} | ||
| 102 | + | ||
| 103 | + | ||
| 104 | + | ||
| 105 | +Підготовка даних для подання скарги | ||
| 106 | + [Arguments] ${lot}=${False} | ||
| 107 | + ${complaint}= test_complaint_data ${lot} | ||
| 108 | + [Return] ${complaint} | ||
| 109 | + | ||
| 110 | + | ||
| 111 | +Підготовка даних для відповіді на скаргу | ||
| 112 | + ${reply}= test_complaint_reply_data | ||
| 113 | + [Return] ${reply} | ||
| 114 | + | ||
| 115 | + | ||
| 116 | +Підготовка даних для запитання | ||
| 117 | + [Arguments] ${lot}=${False} | ||
| 118 | + ${question}= test_question_data ${lot} | ||
| 119 | + [Return] ${question} | ||
| 120 | + | ||
| 121 | + | ||
| 122 | +Підготовка даних для відповіді на запитання | ||
| 123 | + ${answer}= test_question_answer_data | ||
| 124 | + [Return] ${answer} | ||
| 125 | + | ||
| 126 | + | ||
| 110 | Підготувати дані про постачальника | 127 | Підготувати дані про постачальника |
| 111 | [Arguments] ${username} | 128 | [Arguments] ${username} |
| 112 | ${supplier_data}= test_supplier_data | 129 | ${supplier_data}= test_supplier_data |
| @@ -115,23 +132,60 @@ Get Broker Property By Username | @@ -115,23 +132,60 @@ Get Broker Property By Username | ||
| 115 | [Return] ${supplier_data} | 132 | [Return] ${supplier_data} |
| 116 | 133 | ||
| 117 | 134 | ||
| 135 | +Підготувати дані про скасування | ||
| 136 | + [Arguments] ${username} | ||
| 137 | + ${cancellation_reason}= create_fake_sentence | ||
| 138 | + ${document}= create_fake_doc | ||
| 139 | + ${new_description}= create_fake_sentence | ||
| 140 | + ${cancellation_data}= Create Dictionary cancellation_reason=${cancellation_reason} document=${document} description=${new_description} | ||
| 141 | + Set To Dictionary ${USERS.users['${username}']} cancellation_data ${cancellation_data} | ||
| 142 | + [Return] ${cancellation_data} | ||
| 143 | + | ||
| 118 | Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} | 144 | Завантажуємо бібліотеку з реалізацією для майданчика ${keywords_file} |
| 119 | - ${bundled_st}= Run Keyword And Return Status Import Resource ${CURDIR}/brokers/${keywords_file}.robot | ||
| 120 | - ${external_st}= Run Keyword And Return Status Import Resource ${CURDIR}/../../src/robot_tests.broker.${keywords_file}/${keywords_file}.robot | 145 | + ${bundled_st}= Run Keyword And Return Status Import Resource ${CURDIR}${/}brokers${/}${keywords_file}.robot |
| 146 | + ${external_st}= Run Keyword And Return Status Import Resource ${CURDIR}${/}..${/}..${/}src${/}robot_tests.broker.${keywords_file}${/}${keywords_file}.robot | ||
| 121 | Run Keyword If ${bundled_st} == ${external_st} == ${False} Fail Resource file ${keywords_file}.robot not found | 147 | Run Keyword If ${bundled_st} == ${external_st} == ${False} Fail Resource file ${keywords_file}.robot not found |
| 122 | - Run Keyword If ${bundled_st} == ${external_st} == ${True} Fail Resource file ${keywords_file}.robot found in both brokers/ and src/ | 148 | + Run Keyword If ${bundled_st} == ${external_st} == ${True} Fail Resource file ${keywords_file}.robot found in both brokers${/} and src${/} |
| 123 | 149 | ||
| 124 | 150 | ||
| 125 | Дочекатись синхронізації з майданчиком | 151 | Дочекатись синхронізації з майданчиком |
| 126 | [Arguments] ${username} | 152 | [Arguments] ${username} |
| 127 | [Documentation] | 153 | [Documentation] |
| 128 | - ... Get ${wait_timeout} for specified user and wait | ||
| 129 | - ... until that timeout runs out. | 154 | + ... Find out how much time has passed since the procurement was modified |
| 155 | + ... and store the result in `delta`, | ||
| 156 | + ... then get `timeout_on_wait` for ``username``, | ||
| 157 | + ... then wait for `sleep` seconds, where: | ||
| 158 | + ... | ||
| 159 | + ... sleep = timeout_on_wait - delta | ||
| 160 | + ... | ||
| 161 | + ... Thus, when this keyword is executed several times in a row, | ||
| 162 | + ... it will wait for as long as really needed. | ||
| 163 | + ... | ||
| 164 | + ... Example: | ||
| 165 | + ... | ||
| 166 | + ... The procurement is modified. | ||
| 167 | + ... In 5 seconds, this keyword is called for `viewer`. | ||
| 168 | + ... Immediately, this keyword is called for `provider`. | ||
| 169 | + ... Timeout for `viewer` is 60. | ||
| 170 | + ... Timeout for `provider` is 300. | ||
| 171 | + ... First call (for `viewer`) will trigger `Sleep 55`. | ||
| 172 | + ... Second call (for `provider`) will trigger `Sleep 235`. | ||
| 173 | + ... As a result, the delay will end in 300 seconds | ||
| 174 | + ... since last modification date. | ||
| 175 | + ... | ||
| 176 | + ... Another example (a variation of previous one): | ||
| 177 | + ... | ||
| 178 | + ... Timeout for `viewer` is 120. | ||
| 179 | + ... Timeout for `provider` is 30. | ||
| 180 | + ... First call will trigger `Sleep 115`. | ||
| 181 | + ... Second call will trigger `Sleep 0`, | ||
| 182 | + ... since we have already slept for 120 seconds | ||
| 183 | + ... and there is no need to sleep any longer. | ||
| 130 | ${now}= Get Current TZdate | 184 | ${now}= Get Current TZdate |
| 131 | ${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']} | 185 | ${delta}= Subtract Date From Date ${now} ${TENDER['LAST_MODIFICATION_DATE']} |
| 132 | ${timeout_on_wait}= Get Broker Property By Username ${username} timeout_on_wait | 186 | ${timeout_on_wait}= Get Broker Property By Username ${username} timeout_on_wait |
| 133 | - ${wait_timeout}= Subtract Time From Time ${timeout_on_wait} ${delta} | ||
| 134 | - Run Keyword If ${wait_timeout}>0 Sleep ${wait_timeout} | 187 | + ${sleep}= Subtract Time From Time ${timeout_on_wait} ${delta} |
| 188 | + Run Keyword If ${sleep} > 0 Sleep ${sleep} | ||
| 135 | 189 | ||
| 136 | 190 | ||
| 137 | Звірити поле тендера | 191 | Звірити поле тендера |
| @@ -151,9 +205,11 @@ Get Broker Property By Username | @@ -151,9 +205,11 @@ Get Broker Property By Username | ||
| 151 | 205 | ||
| 152 | Порівняти об'єкти | 206 | Порівняти об'єкти |
| 153 | [Arguments] ${left} ${right} | 207 | [Arguments] ${left} ${right} |
| 208 | + Log ${left} | ||
| 209 | + Log ${right} | ||
| 154 | Should Not Be Equal ${left} ${None} | 210 | Should Not Be Equal ${left} ${None} |
| 155 | Should Not Be Equal ${right} ${None} | 211 | Should Not Be Equal ${right} ${None} |
| 156 | - Should Be Equal ${left} ${right} | 212 | + Should Be Equal ${left} ${right} msg=Objects are not equal |
| 157 | 213 | ||
| 158 | 214 | ||
| 159 | Звірити дату тендера | 215 | Звірити дату тендера |
| @@ -165,36 +221,43 @@ Get Broker Property By Username | @@ -165,36 +221,43 @@ Get Broker Property By Username | ||
| 165 | Звірити дату тендера із значенням | 221 | Звірити дату тендера із значенням |
| 166 | [Arguments] ${username} ${left} ${field} | 222 | [Arguments] ${username} ${left} ${field} |
| 167 | ${right}= Викликати для учасника ${username} Отримати інформацію із тендера ${field} | 223 | ${right}= Викликати для учасника ${username} Отримати інформацію із тендера ${field} |
| 168 | - Звірити дату ${left} ${right} | 224 | + Порівняти дати ${left} ${right} |
| 169 | Set_To_Object ${USERS.users['${username}'].tender_data.data} ${field} ${left} | 225 | Set_To_Object ${USERS.users['${username}'].tender_data.data} ${field} ${left} |
| 170 | 226 | ||
| 171 | 227 | ||
| 172 | -Звірити дату | ||
| 173 | - [Arguments] ${left} ${right} | 228 | +Порівняти дати |
| 229 | + [Documentation] | ||
| 230 | + ... Compare dates with specified ``accuracy`` (in seconds). | ||
| 231 | + ... Default is `60`. | ||
| 232 | + ... | ||
| 233 | + ... The keyword will fail if the difference between | ||
| 234 | + ... ``left`` and ``right`` dates is more than ``accuracy``, | ||
| 235 | + ... otherwise it will pass. | ||
| 236 | + [Arguments] ${left} ${right} ${accuracy}=60 | ||
| 237 | + Log ${left} | ||
| 238 | + Log ${right} | ||
| 174 | Should Not Be Equal ${left} ${None} | 239 | Should Not Be Equal ${left} ${None} |
| 175 | Should Not Be Equal ${right} ${None} | 240 | Should Not Be Equal ${right} ${None} |
| 176 | - ${status}= compare_date ${left} ${right} | ||
| 177 | - Should Be True ${status} | 241 | + ${status}= compare_date ${left} ${right} ${accuracy} |
| 242 | + Should Be True ${status} msg=Dates are not equal: ${left} != ${right} | ||
| 178 | 243 | ||
| 179 | 244 | ||
| 180 | Звірити поля предметів закупівлі багатопредметного тендера | 245 | Звірити поля предметів закупівлі багатопредметного тендера |
| 181 | [Arguments] ${username} ${tender_data} ${field} | 246 | [Arguments] ${username} ${tender_data} ${field} |
| 182 | - Дочекатись синхронізації з майданчиком ${username} | ||
| 183 | @{items}= Get_From_Object ${tender_data.data} items | 247 | @{items}= Get_From_Object ${tender_data.data} items |
| 184 | - ${len_of_items}= Get Length ${items} | ||
| 185 | - :FOR ${index} IN RANGE ${len_of_items} | ||
| 186 | - \ Log ${index} | ||
| 187 | - \ Звірити поле тендера ${viewer} ${tender_data} items[${index}].${field} | 248 | + ${len_of_items}= Get Length ${items} |
| 249 | + :FOR ${index} IN RANGE ${len_of_items} | ||
| 250 | + \ Log ${index} | ||
| 251 | + \ Звірити поле тендера ${viewer} ${tender_data} items[${index}].${field} | ||
| 188 | 252 | ||
| 189 | 253 | ||
| 190 | Звірити дату предметів закупівлі багатопредметного тендера | 254 | Звірити дату предметів закупівлі багатопредметного тендера |
| 191 | [Arguments] ${username} ${tender_data} ${field} | 255 | [Arguments] ${username} ${tender_data} ${field} |
| 192 | - Дочекатись синхронізації з майданчиком ${username} | ||
| 193 | @{items}= Get_From_Object ${tender_data.data} items | 256 | @{items}= Get_From_Object ${tender_data.data} items |
| 194 | - ${len_of_items}= Get Length ${items} | ||
| 195 | - :FOR ${index} IN RANGE ${len_of_items} | ||
| 196 | - \ Log ${index} | ||
| 197 | - \ Звірити дату тендера ${viewer} ${tender_data} items[${index}].${field} | 257 | + ${len_of_items}= Get Length ${items} |
| 258 | + :FOR ${index} IN RANGE ${len_of_items} | ||
| 259 | + \ Log ${index} | ||
| 260 | + \ Звірити дату тендера ${viewer} ${tender_data} items[${index}].${field} | ||
| 198 | 261 | ||
| 199 | 262 | ||
| 200 | Викликати для учасника | 263 | Викликати для учасника |
| @@ -235,29 +298,61 @@ SwitchState | @@ -235,29 +298,61 @@ SwitchState | ||
| 235 | 298 | ||
| 236 | Дочекатись дати | 299 | Дочекатись дати |
| 237 | [Arguments] ${date} | 300 | [Arguments] ${date} |
| 238 | - ${wait_timeout}= wait_to_date ${date} | ||
| 239 | - Run Keyword If ${wait_timeout}>0 Sleep ${wait_timeout} | 301 | + ${sleep}= wait_to_date ${date} |
| 302 | + Run Keyword If ${sleep} > 0 Sleep ${sleep} | ||
| 240 | 303 | ||
| 241 | 304 | ||
| 242 | Дочекатись дати початку прийому пропозицій | 305 | Дочекатись дати початку прийому пропозицій |
| 243 | [Arguments] ${username} | 306 | [Arguments] ${username} |
| 244 | - log ${username} | ||
| 245 | - Дочекатись дати ${USERS.users['${username}'].tender_data.data.tenderPeriod.startDate} | 307 | + Log ${username} |
| 308 | + # This tries to get the date from current user's procurement data cache. | ||
| 309 | + # On failure, it reads from tender_owner's cached initial_data. | ||
| 310 | + # XXX: This is a dirty hack! | ||
| 311 | + # HACK: It was left here only for backward compatibiliy. | ||
| 312 | + # HACK: Before caching was implemented, this keyword used to look into | ||
| 313 | + # HACK: tender_owner's initial_data. | ||
| 314 | + # HACK: This should be cleaned up as soon as each broker implements reading | ||
| 315 | + # HACK: of the needed dates from tender's page. | ||
| 316 | + ${status} ${date}= Run Keyword And Ignore Error | ||
| 317 | + ... Set Variable | ||
| 318 | + ... ${USERS.users['${username}'].tender_data.data.tenderPeriod.startDate} | ||
| 319 | + # By default if condition is not satisfied, variable is set to None. | ||
| 320 | + # The third argument sets the variable to itself instead of None. | ||
| 321 | + ${date}= Set Variable If | ||
| 322 | + ... '${status}' == 'FAIL' | ||
| 323 | + ... ${USERS.users['${tender_owner}'].initial_data.data.tenderPeriod.startDate} | ||
| 324 | + ... ${date} | ||
| 325 | + Дочекатись дати ${date} | ||
| 246 | 326 | ||
| 247 | 327 | ||
| 248 | Дочекатись дати закінчення прийому пропозицій | 328 | Дочекатись дати закінчення прийому пропозицій |
| 249 | [Arguments] ${username} | 329 | [Arguments] ${username} |
| 250 | - log ${username} | ||
| 251 | - Дочекатись дати ${USERS.users['${username}'].tender_data.data.tenderPeriod.endDate} | 330 | + Log ${username} |
| 331 | + # XXX: HACK: Same as above | ||
| 332 | + ${status} ${date}= Run Keyword And Ignore Error | ||
| 333 | + ... Set Variable | ||
| 334 | + ... ${USERS.users['${username}'].tender_data.data.tenderPeriod.endDate} | ||
| 335 | + ${date}= Set Variable If | ||
| 336 | + ... '${status}' == 'FAIL' | ||
| 337 | + ... ${USERS.users['${tender_owner}'].initial_data.data.tenderPeriod.endDate} | ||
| 338 | + ... ${date} | ||
| 339 | + Дочекатись дати ${date} | ||
| 252 | 340 | ||
| 253 | 341 | ||
| 254 | Дочекатись дати початку аукціону | 342 | Дочекатись дати початку аукціону |
| 255 | [Arguments] ${username} | 343 | [Arguments] ${username} |
| 256 | - log ${username} | 344 | + Log ${username} |
| 345 | + # Can't use that dirty hack here since we don't know | ||
| 346 | + # the date of auction when creating the procurement :) | ||
| 257 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.startDate} | 347 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.startDate} |
| 258 | 348 | ||
| 259 | 349 | ||
| 260 | Дочекатись дати закінчення аукціону | 350 | Дочекатись дати закінчення аукціону |
| 261 | [Arguments] ${username} | 351 | [Arguments] ${username} |
| 262 | - log ${username} | 352 | + Log ${username} |
| 263 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.endDate} | 353 | Дочекатись дати ${USERS.users['${username}'].tender_data.data.auctionPeriod.endDate} |
| 354 | + | ||
| 355 | +Дочекатись дати закінчення періоду подання скарг | ||
| 356 | + [Arguments] ${username} | ||
| 357 | + log ${username} | ||
| 358 | + Дочекатись дати ${USERS.users['${username}'].tender_data.data.complaintPeriod.endDate} |
| @@ -3,7 +3,7 @@ Library op_robot_tests.tests_files.service_keywords | @@ -3,7 +3,7 @@ Library op_robot_tests.tests_files.service_keywords | ||
| 3 | Library Collections | 3 | Library Collections |
| 4 | Resource keywords.robot | 4 | Resource keywords.robot |
| 5 | Resource resource.robot | 5 | Resource resource.robot |
| 6 | -Suite Setup TestSuiteSetup | 6 | +Suite Setup Test Suite Setup |
| 7 | Suite Teardown Close all browsers | 7 | Suite Teardown Close all browsers |
| 8 | 8 | ||
| 9 | 9 | ||
| @@ -22,7 +22,7 @@ ${broker} Quinta | @@ -22,7 +22,7 @@ ${broker} Quinta | ||
| 22 | ... tender_owner | 22 | ... tender_owner |
| 23 | ... ${USERS.users['${tender_owner}'].broker} | 23 | ... ${USERS.users['${tender_owner}'].broker} |
| 24 | ... minimal | 24 | ... minimal |
| 25 | - ${tender_data}= Підготовка початкових даних | 25 | + ${tender_data}= Підготовка даних для створення тендера |
| 26 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} | 26 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} |
| 27 | ... Створити тендер | 27 | ... Створити тендер |
| 28 | ... ${tender_data} | 28 | ... ${tender_data} |
| @@ -34,59 +34,23 @@ ${broker} Quinta | @@ -34,59 +34,23 @@ ${broker} Quinta | ||
| 34 | Log ${TENDER} | 34 | Log ${TENDER} |
| 35 | 35 | ||
| 36 | 36 | ||
| 37 | -Можливість сформувати запит на скасування прямої закупівлі | ||
| 38 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість сформувати запит на скасування прямої закупівлі | 37 | +Можливість скасувати пряму закупівлю |
| 38 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість скасувати пряму закупівлю | ||
| 39 | ... tender_owner | 39 | ... tender_owner |
| 40 | ... ${USERS.users['${tender_owner}'].broker} | 40 | ... ${USERS.users['${tender_owner}'].broker} |
| 41 | - ... critical level 2 | 41 | + ... level2 |
| 42 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | 42 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
| 43 | - ${CANCEL_NUM}= Set variable 0 | ||
| 44 | - Set suite variable ${CANCEL_NUM} | ||
| 45 | - ${cancellation_reason}= Set variable prosto tak :) | 43 | + ${cancellation_data}= Підготувати дані про скасування ${tender_owner} |
| 46 | Викликати для учасника ${tender_owner} | 44 | Викликати для учасника ${tender_owner} |
| 47 | - ... Додати запит на скасування | 45 | + ... Скасувати закупівлю |
| 48 | ... ${TENDER['TENDER_UAID']} | 46 | ... ${TENDER['TENDER_UAID']} |
| 49 | - ... ${cancellation_reason} | ||
| 50 | - Викликати для учасника ${tender_owner} | ||
| 51 | - ... Завантажити документацію до запиту на скасування | ||
| 52 | - ... ${TENDER['TENDER_UAID']} | ||
| 53 | - ... ${CANCEL_NUM} | ||
| 54 | - | ||
| 55 | - | ||
| 56 | -Можливість змінити опис документа в скасуванні прямої закупівлі | ||
| 57 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість змінити опис документа в скасуванні прямої закупівлі | ||
| 58 | - ... tender_owner | ||
| 59 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 60 | - ${FIRST_DOC}= Set variable 0 | ||
| 61 | - Set Suite Variable ${FIRST_DOC} | ||
| 62 | - ${field}= Set variable description | ||
| 63 | - ${value}= Set variable test description | ||
| 64 | - Викликати для учасника ${tender_owner} | ||
| 65 | - ... Змінити опис документа в скасуванні | ||
| 66 | - ... ${TENDER['TENDER_UAID']} ${CANCEL_NUM} ${FIRST_DOC} | ||
| 67 | - ... ${field} | ||
| 68 | - ... ${value} | ||
| 69 | - Set To Dictionary ${USERS.users['${tender_owner}']} cancellation_document_description ${value} | ||
| 70 | - | ||
| 71 | - | ||
| 72 | -Можливість завантажити нову версію документа до запиту на скасування прямої закупівлі | ||
| 73 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити нову версію документа до запиту на скасування прямої закупівлі | ||
| 74 | - ... tender_owner | ||
| 75 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 76 | - Викликати для учасника ${tender_owner} | ||
| 77 | - ... Завантажити нову версію документа до запиту на скасування | ||
| 78 | - ... ${TENDER['TENDER_UAID']} ${CANCEL_NUM} ${FIRST_DOC} | ||
| 79 | - | ||
| 80 | - | ||
| 81 | -Можливість активувати скасування прямої закупівлі | ||
| 82 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість активувати скасування прямої закупівлі | ||
| 83 | - ... tender_owner | ||
| 84 | - ... ${USERS.users['${tender_owner}'].broker} | ||
| 85 | - ... critical level 2 | ||
| 86 | - Викликати для учасника ${tender_owner} | ||
| 87 | - ... Підтвердити скасування закупівлі | ||
| 88 | - ... ${TENDER['TENDER_UAID']} | ||
| 89 | - ... ${CANCEL_NUM} | 47 | + ... ${cancellation_data['cancellation_reason']} |
| 48 | + ... ${cancellation_data['document']} | ||
| 49 | + ... ${cancellation_data['description']} | ||
| 50 | + ${CANCEL_NUM}= Set variable 0 | ||
| 51 | + Set suite variable ${CANCEL_NUM} | ||
| 52 | + ${DOC_NUM}= Set variable 0 | ||
| 53 | + Set suite variable ${DOC_NUM} | ||
| 90 | 54 | ||
| 91 | 55 | ||
| 92 | Відображення активного статусу скасування прямої закупівлі | 56 | Відображення активного статусу скасування прямої закупівлі |
| @@ -104,7 +68,7 @@ ${broker} Quinta | @@ -104,7 +68,7 @@ ${broker} Quinta | ||
| 104 | ... viewer | 68 | ... viewer |
| 105 | ... ${USERS.users['${viewer}'].broker} | 69 | ... ${USERS.users['${viewer}'].broker} |
| 106 | Звірити поле тендера із значенням ${viewer} | 70 | Звірити поле тендера із значенням ${viewer} |
| 107 | - ... ${USERS.users['${tender_owner}']['cancellation_reason']['data']['reason']} | 71 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['cancellation_reason']} |
| 108 | ... cancellations[${CANCEL_NUM}].reason | 72 | ... cancellations[${CANCEL_NUM}].reason |
| 109 | 73 | ||
| 110 | 74 | ||
| @@ -113,27 +77,17 @@ ${broker} Quinta | @@ -113,27 +77,17 @@ ${broker} Quinta | ||
| 113 | ... viewer | 77 | ... viewer |
| 114 | ... ${USERS.users['${viewer}'].broker} | 78 | ... ${USERS.users['${viewer}'].broker} |
| 115 | Звірити поле тендера із значенням ${viewer} | 79 | Звірити поле тендера із значенням ${viewer} |
| 116 | - ... ${USERS.users['${tender_owner}']['cancellation_document_description']} | ||
| 117 | - ... cancellations[${CANCEL_NUM}].documents[${FIRST_DOC}].description | 80 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['description']} |
| 81 | + ... cancellations[${CANCEL_NUM}].documents[${DOC_NUM}].description | ||
| 118 | 82 | ||
| 119 | 83 | ||
| 120 | -Відображення заголовку першого документа скасування прямої закупівлі | ||
| 121 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення заголовку першого документа скасування прямої закупівлі | 84 | +Відображення заголовку документа скасування прямої закупівлі |
| 85 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення заголовку документа скасування прямої закупівлі | ||
| 122 | ... viewer | 86 | ... viewer |
| 123 | ... ${USERS.users['${viewer}'].broker} | 87 | ... ${USERS.users['${viewer}'].broker} |
| 124 | Звірити поле тендера із значенням ${viewer} | 88 | Звірити поле тендера із значенням ${viewer} |
| 125 | - ... ${USERS.users['${tender_owner}']['first_cancel_doc']} | ||
| 126 | - ... cancellations[${CANCEL_NUM}].documents[${FIRST_DOC}].title | ||
| 127 | - | ||
| 128 | - | ||
| 129 | -Відображення заголовку другого документа скасування прямої закупівлі | ||
| 130 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення заголовку другого документа скасування прямої закупівлі | ||
| 131 | - ... viewer | ||
| 132 | - ... ${USERS.users['${viewer}'].broker} | ||
| 133 | - ${second_doc_num}= Set variable 1 | ||
| 134 | - Звірити поле тендера із значенням ${viewer} | ||
| 135 | - ... ${USERS.users['${tender_owner}']['second_cancel_doc']} | ||
| 136 | - ... cancellations[${CANCEL_NUM}].documents[${second_doc_num}].title | 89 | + ... ${USERS.users['${tender_owner}']['cancellation_data']['document']} |
| 90 | + ... cancellations[${CANCEL_NUM}].documents[${DOC_NUM}].title | ||
| 137 | 91 | ||
| 138 | ############################################################################################## | 92 | ############################################################################################## |
| 139 | # MAIN | 93 | # MAIN |
| @@ -144,7 +98,7 @@ ${broker} Quinta | @@ -144,7 +98,7 @@ ${broker} Quinta | ||
| 144 | ... tender_owner | 98 | ... tender_owner |
| 145 | ... ${USERS.users['${tender_owner}'].broker} | 99 | ... ${USERS.users['${tender_owner}'].broker} |
| 146 | ... minimal | 100 | ... minimal |
| 147 | - ${tender_data}= Підготовка початкових даних | 101 | + ${tender_data}= Підготовка даних для створення тендера |
| 148 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} | 102 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} |
| 149 | ... Створити тендер | 103 | ... Створити тендер |
| 150 | ... ${tender_data} | 104 | ... ${tender_data} |
| @@ -197,13 +151,11 @@ ${broker} Quinta | @@ -197,13 +151,11 @@ ${broker} Quinta | ||
| 197 | ... minimal | 151 | ... minimal |
| 198 | ${SUPP_NUM}= Set variable 0 | 152 | ${SUPP_NUM}= Set variable 0 |
| 199 | Set Suite Variable ${SUPP_NUM} | 153 | Set Suite Variable ${SUPP_NUM} |
| 154 | + ${supplier_data}= Підготувати дані про постачальника ${tender_owner} | ||
| 200 | Викликати для учасника ${tender_owner} | 155 | Викликати для учасника ${tender_owner} |
| 201 | - ... Додати постачальника | 156 | + ... Додати і підтвердити постачальника |
| 202 | ... ${TENDER['TENDER_UAID']} | 157 | ... ${TENDER['TENDER_UAID']} |
| 203 | - Викликати для учасника ${tender_owner} | ||
| 204 | - ... Підтвердити постачальника | ||
| 205 | - ... ${TENDER['TENDER_UAID']} | ||
| 206 | - ... ${SUPP_NUM} | 158 | + ... ${supplier_data} |
| 207 | 159 | ||
| 208 | ############################################################################################## | 160 | ############################################################################################## |
| 209 | # MAIN DATA | 161 | # MAIN DATA |
| @@ -219,33 +171,6 @@ ${broker} Quinta | @@ -219,33 +171,6 @@ ${broker} Quinta | ||
| 219 | ... title | 171 | ... title |
| 220 | 172 | ||
| 221 | 173 | ||
| 222 | -Відображення власника прямої закупівлі | ||
| 223 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення власника прямої закупівлі | ||
| 224 | - ... viewer | ||
| 225 | - ... ${USERS.users['${viewer}'].broker} | ||
| 226 | - Звірити поле тендера ${viewer} | ||
| 227 | - ... ${USERS.users['${tender_owner}'].initial_data} | ||
| 228 | - ... owner | ||
| 229 | - | ||
| 230 | - | ||
| 231 | -Відображення методу прямої закупівлі | ||
| 232 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення методу прямої закупівлі | ||
| 233 | - ... viewer | ||
| 234 | - ... ${USERS.users['${viewer}'].broker} | ||
| 235 | - Звірити поле тендера ${viewer} | ||
| 236 | - ... ${USERS.users['${tender_owner}'].initial_data} | ||
| 237 | - ... procurementMethod | ||
| 238 | - | ||
| 239 | - | ||
| 240 | -Відображення типу методу прямої закупівлі | ||
| 241 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення типу методу прямої закупівлі | ||
| 242 | - ... viewer | ||
| 243 | - ... ${USERS.users['${viewer}'].broker} | ||
| 244 | - Звірити поле тендера ${viewer} | ||
| 245 | - ... ${USERS.users['${tender_owner}'].initial_data} | ||
| 246 | - ... procurementMethodType | ||
| 247 | - | ||
| 248 | - | ||
| 249 | Відображення ідентифікатора прямої закупівлі | 174 | Відображення ідентифікатора прямої закупівлі |
| 250 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення ідентифікатора прямої закупівлі | 175 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення ідентифікатора прямої закупівлі |
| 251 | ... viewer | 176 | ... viewer |
| @@ -297,8 +222,8 @@ ${broker} Quinta | @@ -297,8 +222,8 @@ ${broker} Quinta | ||
| 297 | ... procuringEntity.address.countryName | 222 | ... procuringEntity.address.countryName |
| 298 | 223 | ||
| 299 | 224 | ||
| 300 | -Відображення міста замовника прямої закупівлі | ||
| 301 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення міста замовника прямої закупівлі | 225 | +Відображення населеного пункту замовника прямої закупівлі |
| 226 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення населеного пункту замовника прямої закупівлі | ||
| 302 | ... viewer | 227 | ... viewer |
| 303 | ... ${USERS.users['${viewer}'].broker} | 228 | ... ${USERS.users['${viewer}'].broker} |
| 304 | Звірити поле тендера ${viewer} | 229 | Звірити поле тендера ${viewer} |
| @@ -370,7 +295,7 @@ ${broker} Quinta | @@ -370,7 +295,7 @@ ${broker} Quinta | ||
| 370 | 295 | ||
| 371 | 296 | ||
| 372 | Відображення схеми ідентифікації замовника прямої закупівлі | 297 | Відображення схеми ідентифікації замовника прямої закупівлі |
| 373 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення схеми замовника прямої закупівлі | 298 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення схеми ідентифікації замовника прямої закупівлі |
| 374 | ... viewer | 299 | ... viewer |
| 375 | ... ${USERS.users['${viewer}'].broker} | 300 | ... ${USERS.users['${viewer}'].broker} |
| 376 | Звірити поле тендера ${viewer} | 301 | Звірити поле тендера ${viewer} |
| @@ -574,8 +499,8 @@ ${broker} Quinta | @@ -574,8 +499,8 @@ ${broker} Quinta | ||
| 574 | ... items[${ITEMS_NUM}].deliveryAddress.region | 499 | ... items[${ITEMS_NUM}].deliveryAddress.region |
| 575 | 500 | ||
| 576 | 501 | ||
| 577 | -Відображення міста адреси доставки номенклатури прямої закупівлі | ||
| 578 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення locality адреси доставки номенклатури прямої закупівлі | 502 | +Відображення населеного пункту адреси доставки номенклатури прямої закупівлі |
| 503 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення населеного пункту адреси доставки номенклатури прямої закупівлі | ||
| 579 | ... viewer | 504 | ... viewer |
| 580 | ... ${USERS.users['${viewer}'].broker} | 505 | ... ${USERS.users['${viewer}'].broker} |
| 581 | Звірити поле тендера ${viewer} | 506 | Звірити поле тендера ${viewer} |
| @@ -692,7 +617,7 @@ ${broker} Quinta | @@ -692,7 +617,7 @@ ${broker} Quinta | ||
| 692 | 617 | ||
| 693 | 618 | ||
| 694 | Відображення схеми ідентифікації постачальника прямої закупівлі | 619 | Відображення схеми ідентифікації постачальника прямої закупівлі |
| 695 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення контактного імейлу постачальника прямої закупівлі | 620 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення схеми ідентифікації постачальника прямої закупівлі |
| 696 | ... viewer | 621 | ... viewer |
| 697 | ... ${USERS.users['${viewer}'].broker} | 622 | ... ${USERS.users['${viewer}'].broker} |
| 698 | Звірити поле тендера із значенням ${viewer} | 623 | Звірити поле тендера із значенням ${viewer} |
| @@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
| 6 | Library DebugLibrary | 6 | Library DebugLibrary |
| 7 | Resource keywords.robot | 7 | Resource keywords.robot |
| 8 | Resource resource.robot | 8 | Resource resource.robot |
| 9 | -Suite Setup TestSuiteSetup | ||
| 10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
| 10 | +Suite Teardown Test Suite Teardown | ||
| 11 | 11 | ||
| 12 | *** Variables *** | 12 | *** Variables *** |
| 13 | ${mode} single | 13 | ${mode} single |
| @@ -17,9 +17,12 @@ ${broker} Quinta | @@ -17,9 +17,12 @@ ${broker} Quinta | ||
| 17 | 17 | ||
| 18 | *** Test Cases *** | 18 | *** Test Cases *** |
| 19 | Можливість оголосити однопредметний тендер з неціновим показником | 19 | Можливість оголосити однопредметний тендер з неціновим показником |
| 20 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 20 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер з неціновим показником |
| 21 | + ... tender_owner | ||
| 22 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 23 | + ... minimal | ||
| 21 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), | 24 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), |
| 22 | - ${base_tender_data}= Підготовка початкових даних | 25 | + ${base_tender_data}= Підготовка даних для створення тендера |
| 23 | ${tender_data}= test_meat_tender_data ${base_tender_data} | 26 | ${tender_data}= test_meat_tender_data ${base_tender_data} |
| 24 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | 27 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} |
| 25 | ${LAST_MODIFICATION_DATE}= Get Current TZdate | 28 | ${LAST_MODIFICATION_DATE}= Get Current TZdate |
| @@ -28,18 +31,25 @@ ${broker} Quinta | @@ -28,18 +31,25 @@ ${broker} Quinta | ||
| 28 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | 31 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} |
| 29 | Log ${TENDER} | 32 | Log ${TENDER} |
| 30 | 33 | ||
| 34 | + | ||
| 31 | Можливість знайти однопредметний тендер по ідентифікатору | 35 | Можливість знайти однопредметний тендер по ідентифікатору |
| 32 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 36 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 33 | - ... viewer | ||
| 34 | - ... ${USERS.users['${viewer}'].broker} | 37 | + ... viewer tender_owner provider provider1 |
| 38 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 39 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 35 | ... minimal | 40 | ... minimal |
| 36 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
| 37 | - ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 38 | - :FOR ${username} IN @{usernames} | 41 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} |
| 42 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 39 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 43 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 40 | 44 | ||
| 45 | + | ||
| 41 | Неможливість перевищити ліміт для нецінових критеріїв | 46 | Неможливість перевищити ліміт для нецінових критеріїв |
| 47 | + [Documentation] | ||
| 48 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
| 42 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 49 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 50 | + ... tender_owner | ||
| 51 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 52 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 43 | ${invalid_features}= test_invalid_features_data | 53 | ${invalid_features}= test_invalid_features_data |
| 44 | ${fail}= Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} features ${invalid_features} | 54 | ${fail}= Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} features ${invalid_features} |
| 45 | Log ${fail} | 55 | Log ${fail} |
| @@ -48,58 +58,76 @@ ${broker} Quinta | @@ -48,58 +58,76 @@ ${broker} Quinta | ||
| 48 | #Подання пропозицій | 58 | #Подання пропозицій |
| 49 | 59 | ||
| 50 | Відображення початку періоду прийому пропозицій оголошеного тендера | 60 | Відображення початку періоду прийому пропозицій оголошеного тендера |
| 51 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 52 | - ... viewer | ||
| 53 | - ... ${USERS.users['${viewer}'].broker} | 61 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 62 | + ... viewer provider provider1 | ||
| 63 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} | ||
| 64 | + ... ${USERS.users['${provider1}'].broker} | ||
| 54 | ... minimal | 65 | ... minimal |
| 55 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 56 | - :FOR ${username} IN @{usernames} | 66 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
| 67 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 57 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | 68 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate |
| 58 | 69 | ||
| 70 | + | ||
| 59 | Неможливість подати цінову пропозицію без нецінового показника | 71 | Неможливість подати цінову пропозицію без нецінового показника |
| 72 | + [Documentation] | ||
| 73 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
| 60 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 74 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 75 | + ... provider | ||
| 76 | + ... ${USERS.users['${provider}'].broker} | ||
| 77 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 61 | Дочекатись дати початку прийому пропозицій ${provider} | 78 | Дочекатись дати початку прийому пропозицій ${provider} |
| 62 | sleep 90 | 79 | sleep 90 |
| 63 | ${bid}= test bid data | 80 | ${bid}= test bid data |
| 64 | Log ${bid} | 81 | Log ${bid} |
| 65 | - ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
| 66 | - log ${biddingresponse0} | 82 | + ${failbid}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} |
| 83 | + log ${failbid} | ||
| 67 | 84 | ||
| 68 | -Подати цінову пропозицію з неціновим показником | 85 | + |
| 86 | +Можливість подати цінову пропозицію з неціновим показником | ||
| 69 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 87 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 88 | + ... provider | ||
| 89 | + ... ${USERS.users['${provider}'].broker} | ||
| 70 | ${bid}= test bid data meat tender | 90 | ${bid}= test bid data meat tender |
| 71 | Log ${bid} | 91 | Log ${bid} |
| 92 | + ${bidresponses}= Create Dictionary | ||
| 93 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 94 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 72 | ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 95 | ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
| 73 | - ${biddingresponse0}= Create Dictionary | ||
| 74 | - Set To Dictionary ${biddingresponse0} resp ${resp} | ||
| 75 | - Set To Dictionary ${USERS.users['${provider}']} biddingresponse0 ${biddingresponse0} | 96 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} |
| 76 | log ${resp} | 97 | log ${resp} |
| 77 | 98 | ||
| 99 | + | ||
| 78 | Можливість змінити неціновий показник повторної цінової пропозиції до 0 | 100 | Можливість змінити неціновий показник повторної цінової пропозиції до 0 |
| 79 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 101 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 80 | - Set To Dictionary ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} value 0 | ||
| 81 | - Log ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} | ||
| 82 | - ${fixbidparamsto0resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].biddingresponse0['resp']} | ||
| 83 | - Set To Dictionary ${USERS.users['${provider}'].biddingresponse0} fixbidparamsto0resp ${fixbidparamsto0resp} | 102 | + ... provider |
| 103 | + ... ${USERS.users['${provider}'].broker} | ||
| 104 | + ${fixbidparamsto0resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} parameters.0.value 0 | ||
| 105 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidparamsto0resp ${fixbidparamsto0resp} | ||
| 84 | log ${fixbidparamsto0resp} | 106 | log ${fixbidparamsto0resp} |
| 85 | 107 | ||
| 108 | + | ||
| 86 | Можливість змінити неціновий показник повторної цінової пропозиції до 0.15 | 109 | Можливість змінити неціновий показник повторної цінової пропозиції до 0.15 |
| 87 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 110 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 88 | - Set To Dictionary ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} value 0.15 | ||
| 89 | - Log ${USERS.users['${provider}'].biddingresponse0['resp'].data.parameters[0]} | ||
| 90 | - ${fixbidparamsto015resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].biddingresponse0['resp']} | ||
| 91 | - Set To Dictionary ${USERS.users['${provider}'].biddingresponse0} fixbidparamsto015resp ${fixbidparamsto015resp} | 111 | + ... provider |
| 112 | + ... ${USERS.users['${provider}'].broker} | ||
| 113 | + ${fixbidparamsto015resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} parameters.0.value 0.15 | ||
| 114 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidparamsto015resp ${fixbidparamsto015resp} | ||
| 92 | log ${fixbidparamsto015resp} | 115 | log ${fixbidparamsto015resp} |
| 93 | 116 | ||
| 94 | -Подати цінову пропозицію з неціновим показником другим учасником | 117 | + |
| 118 | +Можливість подати цінову пропозицію з неціновим показником другим учасником | ||
| 95 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | 119 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
| 120 | + ... provider1 | ||
| 121 | + ... ${USERS.users['${provider1}'].broker} | ||
| 122 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
| 96 | Дочекатись дати початку прийому пропозицій ${provider1} | 123 | Дочекатись дати початку прийому пропозицій ${provider1} |
| 97 | ${bid}= test bid data meat tender | 124 | ${bid}= test bid data meat tender |
| 98 | Log ${bid} | 125 | Log ${bid} |
| 99 | ${bidresponses}= Create Dictionary | 126 | ${bidresponses}= Create Dictionary |
| 100 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 101 | - Set To Dictionary ${bidresponses} resp ${resp} | 127 | + Set To Dictionary ${bidresponses} bid ${bid} |
| 102 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | 128 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} |
| 129 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 130 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 103 | log ${resp} | 131 | log ${resp} |
| 104 | log ${USERS.users['${provider1}'].bidresponses} | 132 | log ${USERS.users['${provider1}'].bidresponses} |
| 105 | 133 | ||
| @@ -111,15 +139,23 @@ ${broker} Quinta | @@ -111,15 +139,23 @@ ${broker} Quinta | ||
| 111 | ... viewer | 139 | ... viewer |
| 112 | ... ${USERS.users['${viewer}'].broker} | 140 | ... ${USERS.users['${viewer}'].broker} |
| 113 | ... minimal | 141 | ... minimal |
| 142 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 114 | Викликати для учасника ${viewer} Отримати інформацію із тендера auctionPeriod.startDate | 143 | Викликати для учасника ${viewer} Отримати інформацію із тендера auctionPeriod.startDate |
| 115 | 144 | ||
| 116 | 145 | ||
| 117 | Очікування аукціону | 146 | Очікування аукціону |
| 147 | + [Tags] ${USERS.users['${viewer}'].broker}: Очікування аукціону | ||
| 148 | + ... viewer | ||
| 149 | + ... ${USERS.users['${viewer}'].broker} | ||
| 118 | Дочекатись дати початку аукціону ${viewer} | 150 | Дочекатись дати початку аукціону ${viewer} |
| 119 | sleep 1500 | 151 | sleep 1500 |
| 120 | 152 | ||
| 121 | -Завершення аукціону | ||
| 122 | - Дочекатись синхронізації з майданчиком ${tender_owner} | 153 | + |
| 154 | +Можливість отримати результати аукціону | ||
| 155 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Результати аукціону | ||
| 156 | + ... tender_owner | ||
| 157 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 158 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 123 | ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 159 | ${tender_data}= Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 124 | ${result}= chef ${tender_data.data.bids} ${tender_data.data.features} | 160 | ${result}= chef ${tender_data.data.bids} ${tender_data.data.features} |
| 125 | Log Many ${result[0]} ${tender_data.data.awards[0]} | 161 | Log Many ${result[0]} ${tender_data.data.awards[0]} |
| @@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
| 6 | Library DebugLibrary | 6 | Library DebugLibrary |
| 7 | Resource keywords.robot | 7 | Resource keywords.robot |
| 8 | Resource resource.robot | 8 | Resource resource.robot |
| 9 | -Suite Setup TestSuiteSetup | ||
| 10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
| 10 | +Suite Teardown Test Suite Teardown | ||
| 11 | 11 | ||
| 12 | *** Variables *** | 12 | *** Variables *** |
| 13 | ${mode} multi | 13 | ${mode} multi |
| @@ -18,7 +18,10 @@ ${broker} Quinta | @@ -18,7 +18,10 @@ ${broker} Quinta | ||
| 18 | *** Test Cases *** | 18 | *** Test Cases *** |
| 19 | Можливість оголосити багатопредметний тендер | 19 | Можливість оголосити багатопредметний тендер |
| 20 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 20 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 21 | - ${tender_data}= Підготовка початкових даних | 21 | + ... tender_owner |
| 22 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 23 | + ... minimal | ||
| 24 | + ${tender_data}= Підготовка даних для створення тендера | ||
| 22 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | 25 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} |
| 23 | ${LAST_MODIFICATION_DATE}= Get Current TZdate | 26 | ${LAST_MODIFICATION_DATE}= Get Current TZdate |
| 24 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | 27 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} |
| @@ -26,93 +29,152 @@ ${broker} Quinta | @@ -26,93 +29,152 @@ ${broker} Quinta | ||
| 26 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | 29 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} |
| 27 | log ${TENDER} | 30 | log ${TENDER} |
| 28 | 31 | ||
| 29 | -Отримати багатопредметний тендер по ідентифікатору | 32 | +Можливість знайти багатопредметний тендер по ідентифікатору |
| 30 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 33 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 31 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
| 32 | - ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 33 | - :FOR ${username} IN @{usernames} | 34 | + ... viewer tender_owner provider provider1 |
| 35 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 36 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 37 | + ... minimal | ||
| 38 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 39 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 34 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 40 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 35 | 41 | ||
| 36 | Відображення опису позицій закупівлі багатопредметного тендера | 42 | Відображення опису позицій закупівлі багатопредметного тендера |
| 37 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 43 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 44 | + ... viewer | ||
| 45 | + ... ${USERS.users['${viewer}'].broker} | ||
| 46 | + ... minimal | ||
| 38 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} description | 47 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} description |
| 39 | 48 | ||
| 40 | Відображення дати доставки позицій закупівлі багатопредметного тендера | 49 | Відображення дати доставки позицій закупівлі багатопредметного тендера |
| 41 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 50 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 51 | + ... viewer | ||
| 52 | + ... ${USERS.users['${viewer}'].broker} | ||
| 53 | + ... critical level 3 | ||
| 42 | Звірити дату предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryDate.endDate | 54 | Звірити дату предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryDate.endDate |
| 43 | 55 | ||
| 44 | Відображення координат широти доставки позицій закупівлі багатопредметного тендера | 56 | Відображення координат широти доставки позицій закупівлі багатопредметного тендера |
| 45 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 57 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 58 | + ... viewer | ||
| 59 | + ... ${USERS.users['${viewer}'].broker} | ||
| 46 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryLocation.latitude | 60 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryLocation.latitude |
| 47 | 61 | ||
| 48 | Відображення координат довготи доставки позицій закупівлі багатопредметного тендера | 62 | Відображення координат довготи доставки позицій закупівлі багатопредметного тендера |
| 49 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 63 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 64 | + ... viewer | ||
| 65 | + ... ${USERS.users['${viewer}'].broker} | ||
| 50 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryLocation.longitude | 66 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryLocation.longitude |
| 51 | 67 | ||
| 52 | Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера | 68 | Відображення назви нас. пункту доставки позицій закупівлі багатопредметного тендера |
| 53 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 69 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 70 | + ... viewer | ||
| 71 | + ... ${USERS.users['${viewer}'].broker} | ||
| 72 | + ... critical level 3 | ||
| 54 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.countryName | 73 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.countryName |
| 55 | 74 | ||
| 56 | Відображення пошт. коду доставки позицій закупівлі багатопредметного тендера | 75 | Відображення пошт. коду доставки позицій закупівлі багатопредметного тендера |
| 57 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 76 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 77 | + ... viewer | ||
| 78 | + ... ${USERS.users['${viewer}'].broker} | ||
| 58 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.postalCode | 79 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.postalCode |
| 59 | 80 | ||
| 60 | Відображення регіону доставки позицій закупівлі багатопредметного тендера | 81 | Відображення регіону доставки позицій закупівлі багатопредметного тендера |
| 61 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 82 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 83 | + ... viewer | ||
| 84 | + ... ${USERS.users['${viewer}'].broker} | ||
| 85 | + ... critical level 3 | ||
| 62 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.region | 86 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.region |
| 63 | 87 | ||
| 64 | Відображення locality адреси доставки позицій закупівлі багатопредметного тендера | 88 | Відображення locality адреси доставки позицій закупівлі багатопредметного тендера |
| 65 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 89 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 90 | + ... viewer | ||
| 91 | + ... ${USERS.users['${viewer}'].broker} | ||
| 66 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.locality | 92 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.locality |
| 67 | 93 | ||
| 68 | Відображення вулиці доставки позицій закупівлі багатопредметного тендера | 94 | Відображення вулиці доставки позицій закупівлі багатопредметного тендера |
| 69 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 95 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 96 | + ... viewer | ||
| 97 | + ... ${USERS.users['${viewer}'].broker} | ||
| 70 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.streetAddress | 98 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} deliveryAddress.streetAddress |
| 71 | 99 | ||
| 72 | Відображення схеми класифікації позицій закупівлі багатопредметного тендера | 100 | Відображення схеми класифікації позицій закупівлі багатопредметного тендера |
| 73 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 101 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 102 | + ... viewer | ||
| 103 | + ... ${USERS.users['${viewer}'].broker} | ||
| 74 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.scheme | 104 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.scheme |
| 75 | 105 | ||
| 76 | Відображення ідентифікатора класифікації позицій закупівлі багатопредметного тендера | 106 | Відображення ідентифікатора класифікації позицій закупівлі багатопредметного тендера |
| 77 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 107 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 108 | + ... viewer | ||
| 109 | + ... ${USERS.users['${viewer}'].broker} | ||
| 110 | + ... critical level 3 | ||
| 78 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.id | 111 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.id |
| 79 | 112 | ||
| 80 | Відображення опису класифікації позицій закупівлі багатопредметного тендера | 113 | Відображення опису класифікації позицій закупівлі багатопредметного тендера |
| 81 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 114 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 115 | + ... viewer | ||
| 116 | + ... ${USERS.users['${viewer}'].broker} | ||
| 117 | + ... critical level 3 | ||
| 82 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.description | 118 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} classification.description |
| 83 | 119 | ||
| 84 | Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера | 120 | Відображення схеми додаткової класифікації позицій закупівлі багатопредметного тендера |
| 85 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 121 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 122 | + ... viewer | ||
| 123 | + ... ${USERS.users['${viewer}'].broker} | ||
| 86 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].scheme | 124 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].scheme |
| 87 | 125 | ||
| 88 | Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера | 126 | Відображення ідентифікатора додаткової класифікації позицій закупівлі багатопредметного тендера |
| 89 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 127 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 128 | + ... viewer | ||
| 129 | + ... ${USERS.users['${viewer}'].broker} | ||
| 130 | + ... critical level 3 | ||
| 90 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].id | 131 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].id |
| 91 | 132 | ||
| 92 | Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера | 133 | Відображення опису додаткової класифікації позицій закупівлі багатопредметного тендера |
| 93 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 134 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 135 | + ... viewer | ||
| 136 | + ... ${USERS.users['${viewer}'].broker} | ||
| 137 | + ... critical level 3 | ||
| 94 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].description | 138 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} additionalClassifications[0].description |
| 95 | 139 | ||
| 96 | Відображення назви одиниці позицій закупівлі багатопредметного тендера | 140 | Відображення назви одиниці позицій закупівлі багатопредметного тендера |
| 97 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 141 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 142 | + ... viewer | ||
| 143 | + ... ${USERS.users['${viewer}'].broker} | ||
| 144 | + ... critical level 3 | ||
| 98 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.name | 145 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.name |
| 99 | 146 | ||
| 100 | Відображення коду одиниці позицій закупівлі багатопредметного тендера | 147 | Відображення коду одиниці позицій закупівлі багатопредметного тендера |
| 101 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 148 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 149 | + ... viewer | ||
| 150 | + ... ${USERS.users['${viewer}'].broker} | ||
| 102 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.code | 151 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} unit.code |
| 103 | 152 | ||
| 104 | Відображення кількості позицій закупівлі багатопредметного тендера | 153 | Відображення кількості позицій закупівлі багатопредметного тендера |
| 105 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера | 154 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів багатопредметного тендера |
| 155 | + ... viewer | ||
| 156 | + ... ${USERS.users['${viewer}'].broker} | ||
| 157 | + ... critical level 3 | ||
| 106 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} quantity | 158 | Звірити поля предметів закупівлі багатопредметного тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} quantity |
| 107 | 159 | ||
| 108 | Можливість редагувати багатопредметний тендер | 160 | Можливість редагувати багатопредметний тендер |
| 109 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 161 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 162 | + ... tender_owner | ||
| 163 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 164 | + ... critical level 2 | ||
| 165 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 110 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | 166 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description |
| 111 | 167 | ||
| 112 | Можливість додати позицію закупівлі в тендер | 168 | Можливість додати позицію закупівлі в тендер |
| 113 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 169 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 170 | + ... tender_owner | ||
| 171 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 172 | + ... critical level 2 | ||
| 114 | Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 3 | 173 | Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 3 |
| 115 | 174 | ||
| 116 | Можливість видалити позиції закупівлі тендера | 175 | Можливість видалити позиції закупівлі тендера |
| 117 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 176 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 177 | + ... tender_owner | ||
| 178 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 179 | + ... critical level 2 | ||
| 118 | Викликати для учасника ${tender_owner} Відняти предмети закупівлі ${TENDER['TENDER_UAID']} 2 | 180 | Викликати для учасника ${tender_owner} Відняти предмети закупівлі ${TENDER['TENDER_UAID']} 2 |
| @@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
| 6 | Library DebugLibrary | 6 | Library DebugLibrary |
| 7 | Resource keywords.robot | 7 | Resource keywords.robot |
| 8 | Resource resource.robot | 8 | Resource resource.robot |
| 9 | -Suite Setup TestSuiteSetup | ||
| 10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
| 10 | +Suite Teardown Test Suite Teardown | ||
| 11 | 11 | ||
| 12 | *** Variables *** | 12 | *** Variables *** |
| 13 | ${mode} multi | 13 | ${mode} multi |
| @@ -21,7 +21,10 @@ ${complaint_id} 1 | @@ -21,7 +21,10 @@ ${complaint_id} 1 | ||
| 21 | *** Test Cases *** | 21 | *** Test Cases *** |
| 22 | Можливість оголосити мультилотовий тендер | 22 | Можливість оголосити мультилотовий тендер |
| 23 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер | 23 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити мультилотовий тендер |
| 24 | - ${tender_data}= Підготовка початкових даних | 24 | + ... tender_owner |
| 25 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 26 | + ... minimal | ||
| 27 | + ${tender_data}= Підготовка даних для створення тендера | ||
| 25 | ${tender_data}= test_tender_data_multiple_lots ${tender_data} | 28 | ${tender_data}= test_tender_data_multiple_lots ${tender_data} |
| 26 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | 29 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} |
| 27 | ${LAST_MODIFICATION_DATE}= Get Current TZdate | 30 | ${LAST_MODIFICATION_DATE}= Get Current TZdate |
| @@ -30,21 +33,24 @@ ${complaint_id} 1 | @@ -30,21 +33,24 @@ ${complaint_id} 1 | ||
| 30 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | 33 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} |
| 31 | Log ${TENDER} | 34 | Log ${TENDER} |
| 32 | 35 | ||
| 33 | -Пошук мультилотового тендера по ідентифікатору | 36 | +Можливість знайти мультилотовий тендер по ідентифікатору |
| 34 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 37 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 35 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
| 36 | - ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 37 | - :FOR ${username} IN @{usernames} | 38 | + ... viewer tender_owner provider provider1 |
| 39 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 40 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 41 | + ... minimal | ||
| 42 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 43 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 38 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 44 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 39 | 45 | ||
| 40 | -Отримання тендера | ||
| 41 | - Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 42 | - Викликати для учасника ${tender_owner} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 43 | - | ||
| 44 | ####### | 46 | ####### |
| 45 | #Операції з лотом | 47 | #Операції з лотом |
| 46 | 48 | ||
| 47 | -Створення лоту | 49 | +Можливість створення лоту |
| 50 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 51 | + ... tender_owner | ||
| 52 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 53 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 48 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 54 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
| 49 | ${lot}= test lot data | 55 | ${lot}= test lot data |
| 50 | ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | 56 | ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} |
| @@ -54,12 +60,18 @@ ${complaint_id} 1 | @@ -54,12 +60,18 @@ ${complaint_id} 1 | ||
| 54 | log ${lotcreate} | 60 | log ${lotcreate} |
| 55 | 61 | ||
| 56 | Можливість видалення лоту | 62 | Можливість видалення лоту |
| 63 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 64 | + ... tender_owner | ||
| 65 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 57 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 66 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
| 58 | ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} | 67 | ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp0']} |
| 59 | ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} | 68 | ${lotdelete}= Викликати для учасника ${tender_owner} Видалити лот ${tender_data} ${lot} |
| 60 | Log ${lotdelete} | 69 | Log ${lotdelete} |
| 61 | 70 | ||
| 62 | -Повторне створення лоту | 71 | +Можливість повторого створення лоту |
| 72 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 73 | + ... tender_owner | ||
| 74 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 63 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 75 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
| 64 | ${lot}= test lot data | 76 | ${lot}= test lot data |
| 65 | ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} | 77 | ${lotcreate}= Викликати для учасника ${tender_owner} Створити лот ${tender_data} ${lot} |
| @@ -69,6 +81,9 @@ ${complaint_id} 1 | @@ -69,6 +81,9 @@ ${complaint_id} 1 | ||
| 69 | log ${lotcreate} | 81 | log ${lotcreate} |
| 70 | 82 | ||
| 71 | Можливість змінити цінову пропозицію у новому лоті до 8000 | 83 | Можливість змінити цінову пропозицію у новому лоті до 8000 |
| 84 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 85 | + ... tender_owner | ||
| 86 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 72 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 87 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
| 73 | Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | 88 | Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 |
| 74 | ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | 89 | ${fixlotto8000resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} |
| @@ -76,6 +91,9 @@ ${complaint_id} 1 | @@ -76,6 +91,9 @@ ${complaint_id} 1 | ||
| 76 | log ${fixlotto8000resp} | 91 | log ${fixlotto8000resp} |
| 77 | 92 | ||
| 78 | Можливість змінити цінову пропозицію у новому лоті до 100 | 93 | Можливість змінити цінову пропозицію у новому лоті до 100 |
| 94 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 95 | + ... tender_owner | ||
| 96 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 79 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 97 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
| 80 | Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 | 98 | Set To Dictionary ${USERS.users['${tender_owner}'].lotresponses['resp'].data.value} amount 8000 |
| 81 | ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} | 99 | ${fixlotto100resp}= Викликати для учасника ${tender_owner} Змінити лот ${tender_data} ${USERS.users['${tender_owner}'].lotresponses['resp']} |
| @@ -88,9 +106,14 @@ ${complaint_id} 1 | @@ -88,9 +106,14 @@ ${complaint_id} 1 | ||
| 88 | 106 | ||
| 89 | Можливість додати позицію закупівлі в тендер | 107 | Можливість додати позицію закупівлі в тендер |
| 90 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 108 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 109 | + ... tender_owner | ||
| 110 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 91 | Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 | 111 | Викликати для учасника ${tender_owner} Додати предмети закупівлі ${TENDER['TENDER_UAID']} 1 |
| 92 | 112 | ||
| 93 | -Добавити предмет закупівлі до лоту | 113 | +Можливість добавити предмет закупівлі до лоту |
| 114 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 115 | + ... tender_owner | ||
| 116 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 94 | ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | 117 | ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} |
| 95 | Log ${items} | 118 | Log ${items} |
| 96 | ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | 119 | ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} |
| @@ -99,11 +122,19 @@ ${complaint_id} 1 | @@ -99,11 +122,19 @@ ${complaint_id} 1 | ||
| 99 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items} | 122 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items} |
| 100 | 123 | ||
| 101 | Неможливість видалення лоту з прив’язаними предметами закупівлі | 124 | Неможливість видалення лоту з прив’язаними предметами закупівлі |
| 125 | + [Documentation] | ||
| 126 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
| 127 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 128 | + ... tender_owner | ||
| 129 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 102 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} | 130 | ${tender_data}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data} |
| 103 | ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} | 131 | ${lot}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp']} |
| 104 | Викликати для учасника ${tender_owner} Видалити лот shouldfail ${tender_data} ${lot} | 132 | Викликати для учасника ${tender_owner} Видалити лот shouldfail ${tender_data} ${lot} |
| 105 | 133 | ||
| 106 | Можливість видалити позиції закупівлі тендера | 134 | Можливість видалити позиції закупівлі тендера |
| 135 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 136 | + ... tender_owner | ||
| 137 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 107 | ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} | 138 | ${items}= Get Variable Value ${USERS.users['${tender_owner}'].tender_data.data['items']} |
| 108 | Log ${items} | 139 | Log ${items} |
| 109 | ${resp}= Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} | 140 | ${resp}= Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} items ${items[:-1]} |
| @@ -111,6 +142,8 @@ ${complaint_id} 1 | @@ -111,6 +142,8 @@ ${complaint_id} 1 | ||
| 111 | 142 | ||
| 112 | Можливість додати тендерну документацію лоту | 143 | Можливість додати тендерну документацію лоту |
| 113 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | 144 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ |
| 145 | + ... tender_owner | ||
| 146 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 114 | [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | 147 | [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі |
| 115 | ${filepath}= create_fake_doc | 148 | ${filepath}= create_fake_doc |
| 116 | ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} | 149 | ${lot_id}= Get Variable Value ${USERS.users['${tender_owner}'].lotresponses['resp'].data.id} |
| @@ -125,19 +158,28 @@ ${complaint_id} 1 | @@ -125,19 +158,28 @@ ${complaint_id} 1 | ||
| 125 | ####### | 158 | ####### |
| 126 | #Запитання до лоту | 159 | #Запитання до лоту |
| 127 | 160 | ||
| 128 | -Задати питання | 161 | +Можливість задати питання |
| 129 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 162 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
| 130 | - ${question}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} | ||
| 131 | - log ${question} | 163 | + ... provider |
| 164 | + ... ${USERS.users['${provider}'].broker} | ||
| 165 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 166 | + ${question}= Підготовка даних для запитання | ||
| 167 | + ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | ||
| 132 | ${now}= Get Current TZdate | 168 | ${now}= Get Current TZdate |
| 133 | - Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} | ||
| 134 | - | ||
| 135 | -Відповісти на запитання | 169 | + ${question.data.date}= Set variable ${now} |
| 170 | + ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} | ||
| 171 | + Set To Dictionary ${USERS.users['${provider}']} question_data ${question_data} | ||
| 172 | +Можливість відповісти на запитання | ||
| 136 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | 173 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання |
| 137 | - Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]} | 174 | + ... tender_owner |
| 175 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 176 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 177 | + ${answer}= Підготовка даних для відповіді на запитання | ||
| 178 | + ${answer_resp}= Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} | ||
| 138 | ${now}= Get Current TZdate | 179 | ${now}= Get Current TZdate |
| 139 | - Set To Dictionary ${ANSWERS[${question_id}-1].data} date ${now} | ||
| 140 | - | 180 | + ${answer.data.date}= Set variable ${now} |
| 181 | + ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} | ||
| 182 | + Set To Dictionary ${USERS.users['${provider}']} answer_data ${answer_data} | ||
| 141 | 183 | ||
| 142 | ###### | 184 | ###### |
| 143 | #Cкарга на лот | 185 | #Cкарга на лот |
| @@ -198,119 +240,157 @@ ${complaint_id} 1 | @@ -198,119 +240,157 @@ ${complaint_id} 1 | ||
| 198 | 240 | ||
| 199 | Відображення початку періоду прийому пропозицій оголошеного тендера | 241 | Відображення початку періоду прийому пропозицій оголошеного тендера |
| 200 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 242 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 201 | - ... viewer | 243 | + ... viewer provider provider1 |
| 202 | ... ${USERS.users['${viewer}'].broker} | 244 | ... ${USERS.users['${viewer}'].broker} |
| 245 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 203 | ... minimal | 246 | ... minimal |
| 204 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 205 | - :FOR ${username} IN @{usernames} | 247 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
| 248 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 206 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | 249 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate |
| 207 | 250 | ||
| 208 | Відображення закінчення періоду прийому пропозицій оголошеного тендера | 251 | Відображення закінчення періоду прийому пропозицій оголошеного тендера |
| 209 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 252 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 210 | - ... viewer | 253 | + ... viewer provider provider1 |
| 211 | ... ${USERS.users['${viewer}'].broker} | 254 | ... ${USERS.users['${viewer}'].broker} |
| 255 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 212 | ... minimal | 256 | ... minimal |
| 213 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 214 | - :FOR ${username} IN @{usernames} | 257 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
| 258 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 215 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | 259 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate |
| 216 | 260 | ||
| 217 | Неможливість подати цінову пропозицію до початку періоду подачі пропозицій | 261 | Неможливість подати цінову пропозицію до початку періоду подачі пропозицій |
| 262 | + [Documentation] | ||
| 263 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
| 218 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 264 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 265 | + ... prvider | ||
| 266 | + ... ${USERS.users['${provider}'].broker} | ||
| 267 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 219 | ${bid}= test lots bid data | 268 | ${bid}= test lots bid data |
| 220 | Log ${bid} | 269 | Log ${bid} |
| 221 | ${bidresponses}= Create Dictionary | 270 | ${bidresponses}= Create Dictionary |
| 222 | - ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
| 223 | - Set To Dictionary ${bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | 271 | + Set To Dictionary ${bidresponses} bid ${bid} |
| 224 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 272 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} |
| 273 | + ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
| 274 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} | ||
| 225 | log ${USERS.users['${provider}']} | 275 | log ${USERS.users['${provider}']} |
| 226 | 276 | ||
| 227 | Неможливість подати цінову пропозицію без прив’язки до лоту | 277 | Неможливість подати цінову пропозицію без прив’язки до лоту |
| 278 | + [Documentation] | ||
| 279 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
| 228 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 280 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 281 | + ... prvider | ||
| 282 | + ... ${USERS.users['${provider}'].broker} | ||
| 283 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 229 | Дочекатись дати початку прийому пропозицій ${provider} | 284 | Дочекатись дати початку прийому пропозицій ${provider} |
| 230 | ${bid}= test bid data | 285 | ${bid}= test bid data |
| 231 | Log ${bid} | 286 | Log ${bid} |
| 232 | ${bidresponses}= Create Dictionary | 287 | ${bidresponses}= Create Dictionary |
| 233 | - ${no_lot_bid_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
| 234 | - Set To Dictionary ${bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | 288 | + Set To Dictionary ${bidresponses} bid ${bid} |
| 235 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 289 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} |
| 290 | + ${no_lot_bid_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | ||
| 291 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} no_lot_bid_resp ${no_lot_bid_resp} | ||
| 236 | log ${USERS.users['${provider}']} | 292 | log ${USERS.users['${provider}']} |
| 237 | 293 | ||
| 238 | -Подати цінову пропозицію першим учасником | 294 | +Можливість подати цінову пропозицію першим учасником |
| 239 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 295 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 296 | + ... prvider | ||
| 297 | + ... ${USERS.users['${provider}'].broker} | ||
| 240 | ${bid}= test lots bid data | 298 | ${bid}= test lots bid data |
| 241 | Log ${bid} | 299 | Log ${bid} |
| 242 | - ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 243 | - Set Global Variable ${biddingresponse0} | ||
| 244 | - log ${biddingresponse0} | 300 | + ${bidresponses}= Create Dictionary |
| 301 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 302 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 303 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 304 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 305 | + log ${USERS.users['${provider}']} | ||
| 245 | 306 | ||
| 246 | Можливість скасувати цінову пропозицію | 307 | Можливість скасувати цінову пропозицію |
| 247 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | 308 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
| 248 | - ${biddingresponse_0}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponse0} | 309 | + ... prvider |
| 310 | + ... ${USERS.users['${provider}'].broker} | ||
| 311 | + ${canceledbidresp}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
| 312 | + Log ${canceledbidresp} | ||
| 249 | 313 | ||
| 250 | -Подати повторно цінову пропозицію першим учасником | 314 | +Можливість подати повторно цінову пропозицію першим учасником |
| 251 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 315 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 316 | + ... prvider | ||
| 317 | + ... ${USERS.users['${provider}'].broker} | ||
| 252 | Дочекатись дати початку прийому пропозицій ${provider} | 318 | Дочекатись дати початку прийому пропозицій ${provider} |
| 253 | ${bid}= test lots bid data | 319 | ${bid}= test lots bid data |
| 254 | Log ${bid} | 320 | Log ${bid} |
| 321 | + ${bidresponses}= Create Dictionary | ||
| 322 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 323 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 255 | ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | 324 | ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} |
| 256 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | 325 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} |
| 257 | - log ${resp} | ||
| 258 | log ${USERS.users['${provider}'].bidresponses} | 326 | log ${USERS.users['${provider}'].bidresponses} |
| 259 | 327 | ||
| 260 | Можливість змінити повторну цінову пропозицію до 2000 | 328 | Можливість змінити повторну цінову пропозицію до 2000 |
| 261 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 329 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 262 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} amount 2000 | ||
| 263 | - Log ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} | ||
| 264 | - ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
| 265 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto50000resp ${fixbidto50000resp} | ||
| 266 | - log ${fixbidto50000resp} | 330 | + ... prvider |
| 331 | + ... ${USERS.users['${provider}'].broker} | ||
| 332 | + ${fixbidto2000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 | ||
| 333 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto2000resp ${fixbidto2000resp} | ||
| 334 | + log ${fixbidto2000resp} | ||
| 267 | 335 | ||
| 268 | -Можливість змінити повторну цінову пропозицію до 100 | 336 | +Можливість змінити повторну цінову пропозицію до 10 |
| 269 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 337 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 270 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.lotValues[0].value} amount 100 | ||
| 271 | - Log ${USERS.users['${provider}'].bidresponses['fixbidto50000resp'].data.lotValues[0].value} | ||
| 272 | - ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 338 | + ... prvider |
| 339 | + ... ${USERS.users['${provider}'].broker} | ||
| 340 | + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} lotValues.0.value.amount 10 | ||
| 273 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | 341 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} |
| 274 | log ${fixbidto10resp} | 342 | log ${fixbidto10resp} |
| 275 | 343 | ||
| 276 | -Подати цінову пропозицію другим учасником | 344 | +Можливість подати цінову пропозицію другим учасником |
| 277 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | 345 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
| 346 | + ... prvider1 | ||
| 347 | + ... ${USERS.users['${provider1}'].broker} | ||
| 348 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
| 278 | Дочекатись дати початку прийому пропозицій ${provider1} | 349 | Дочекатись дати початку прийому пропозицій ${provider1} |
| 279 | ${bid}= test lots bid data | 350 | ${bid}= test lots bid data |
| 280 | Log ${bid} | 351 | Log ${bid} |
| 281 | ${bidresponses}= Create Dictionary | 352 | ${bidresponses}= Create Dictionary |
| 282 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 283 | - Set To Dictionary ${bidresponses} resp ${resp} | 353 | + Set To Dictionary ${bidresponses} bid ${bid} |
| 284 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | 354 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} |
| 355 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 356 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 285 | log ${resp} | 357 | log ${resp} |
| 286 | log ${USERS.users['${provider1}'].bidresponses} | 358 | log ${USERS.users['${provider1}'].bidresponses} |
| 287 | 359 | ||
| 288 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій | 360 | Неможливість побачити цінові пропозиції учасників під час прийому пропозицій |
| 289 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | 361 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
| 362 | + ... viewer | ||
| 363 | + ... ${USERS.users['${viewer}'].broker} | ||
| 364 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 290 | ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids | 365 | ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids |
| 291 | Should Be Equal ${bids} ${None} | 366 | Should Be Equal ${bids} ${None} |
| 292 | 367 | ||
| 293 | -Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | ||
| 294 | - [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 50000 після закінчення прийому пропозицій | 368 | +Неможливість змінити цінову пропозицію до 2000 після закінчення прийому пропозицій |
| 369 | + [Documentation] | ||
| 370 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
| 371 | + [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 2000 після закінчення прийому пропозицій | ||
| 372 | + ... provider1 | ||
| 373 | + ... ${USERS.users['${provider1}'].broker} | ||
| 374 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
| 295 | Дочекатись дати закінчення прийому пропозицій ${provider1} | 375 | Дочекатись дати закінчення прийому пропозицій ${provider1} |
| 296 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} amount 50000 | ||
| 297 | - Log ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} | ||
| 298 | - ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | ||
| 299 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto50000resp ${failfixbidto50000resp} | ||
| 300 | - log ${failfixbidto50000resp} | 376 | + ${failfixbidto2000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} lotValues.0.value.amount 2000 |
| 377 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto2000resp ${failfixbidto2000resp} | ||
| 378 | + log ${failfixbidto2000resp} | ||
| 301 | 379 | ||
| 302 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 380 | Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
| 381 | + [Documentation] | ||
| 382 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
| 303 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 383 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
| 304 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} amount 1 | ||
| 305 | - Log ${USERS.users['${provider1}'].bidresponses['resp'].data.lotValues[0].value} | ||
| 306 | - ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 384 | + ... provider1 |
| 385 | + ... ${USERS.users['${provider1}'].broker} | ||
| 386 | + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} lotValues.0.value.amount 1 | ||
| 307 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | 387 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} |
| 308 | log ${failfixbidto1resp} | 388 | log ${failfixbidto1resp} |
| 309 | 389 | ||
| 310 | Неможливість скасувати цінову пропозицію | 390 | Неможливість скасувати цінову пропозицію |
| 391 | + [Documentation] | ||
| 392 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | ||
| 311 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | 393 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію |
| 394 | + ... provider1 | ||
| 395 | + ... ${USERS.users['${provider1}'].broker} | ||
| 312 | ${biddingresponse}= Викликати для учасника ${provider1} Скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 396 | ${biddingresponse}= Викликати для учасника ${provider1} Скасувати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} |
| 313 | - | ||
| 314 | -Отримання тендера після закінчення прийому пропозицій | ||
| 315 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
| 316 | - Викликати для учасника ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
op_robot_tests/tests_files/openEU.robot
0 → 100644
| 1 | +*** Settings *** | ||
| 2 | +Resource keywords.robot | ||
| 3 | +Resource resource.robot | ||
| 4 | +Suite Setup Test Suite Setup | ||
| 5 | +Suite Teardown Test Suite Teardown | ||
| 6 | + | ||
| 7 | +*** Variables *** | ||
| 8 | +${mode} openeu | ||
| 9 | + | ||
| 10 | +${role} viewer | ||
| 11 | +${broker} Quinta | ||
| 12 | + | ||
| 13 | + | ||
| 14 | +*** Test Cases *** | ||
| 15 | +Можливість оголосити понадпороговий однопредметний тендер | ||
| 16 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 17 | + ... tender_owner | ||
| 18 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 19 | + ... minimal | ||
| 20 | + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера) | ||
| 21 | + ${tender_data}= Підготовка даних для створення тендера | ||
| 22 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | ||
| 23 | + ${LAST_MODIFICATION_DATE}= Get Current TZdate | ||
| 24 | + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | ||
| 25 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
| 26 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
| 27 | + Log ${TENDER} | ||
| 28 | + | ||
| 29 | +Пошук позапорогового однопредметного тендера по ідентифікатору | ||
| 30 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
| 31 | + ... viewer tender_owner provider provider1 | ||
| 32 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 33 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 34 | + ... minimal | ||
| 35 | + ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 36 | + :FOR ${username} IN @{usernames} | ||
| 37 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 38 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 39 | + | ||
| 40 | +Відображення типу закупівлі оголошеного тендер | ||
| 41 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 42 | + ... viewer | ||
| 43 | + ... ${USERS.users['${viewer}'].broker} | ||
| 44 | + Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procurementMethodType | ||
| 45 | + | ||
| 46 | +Відображення початку періоду прийому пропозицій оголошеного тендера | ||
| 47 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 48 | + ... viewer | ||
| 49 | + ... ${USERS.users['${viewer}'].broker} | ||
| 50 | + ... minimal | ||
| 51 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 52 | + :FOR ${username} IN @{usernames} | ||
| 53 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | ||
| 54 | + | ||
| 55 | +Відображення закінчення періоду прийому пропозицій оголошеного тендера | ||
| 56 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 57 | + ... viewer | ||
| 58 | + ... ${USERS.users['${viewer}'].broker} | ||
| 59 | + ... minimal | ||
| 60 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 61 | + :FOR ${username} IN @{usernames} | ||
| 62 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | ||
| 63 | + | ||
| 64 | +Відображення закінчення періоду подання скарг на оголошений тендер | ||
| 65 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 66 | + ... viewer | ||
| 67 | + ... ${USERS.users['${viewer}'].broker} | ||
| 68 | + ... minimal | ||
| 69 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 70 | + :FOR ${username} IN @{usernames} | ||
| 71 | + \ Викликати для учасника ${username} Отримати інформацію із тендера complaintPeriod.endDate | ||
| 72 | + | ||
| 73 | +Можливість подати вимогу на умови більше ніж за 10 днів до завершення періоду подання пропозицій | ||
| 74 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | ||
| 75 | + ... provider | ||
| 76 | + ... ${USERS.users['${provider}'].broker} | ||
| 77 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 78 | + ${claim}= Підготовка даних для подання скарги | ||
| 79 | + Set To Dictionary ${claim.data} status claim | ||
| 80 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${claim} | ||
| 81 | + ${complaints}= Create Dictionary | ||
| 82 | + Set To Dictionary ${complaints} claim0 ${claim} | ||
| 83 | + Set To Dictionary ${USERS.users['${provider}']} complaints ${complaints} | ||
| 84 | + | ||
| 85 | +Можливість скасувати вимогу на умови | ||
| 86 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | ||
| 87 | + ... provider | ||
| 88 | + ... ${USERS.users['${provider}'].broker} | ||
| 89 | + ${claim}= Get From Dictionary ${USERS.users['${provider}'].complaints} claim0 | ||
| 90 | + Set To Dictionary ${claim.data} status cancelled | ||
| 91 | + Set To Dictionary ${claim.data} cancellationReason test_draft_cancellation | ||
| 92 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${claim} | ||
| 93 | + | ||
| 94 | + | ||
| 95 | +Подати цінову пропозицію першим учасником після оголошення тендеру | ||
| 96 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 97 | + ... provider | ||
| 98 | + ... ${USERS.users['${provider}'].broker} | ||
| 99 | + ${bid}= test bid data | ||
| 100 | + Log ${bid} | ||
| 101 | + ${bidresponses}= Create Dictionary | ||
| 102 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 103 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 104 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 105 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 106 | + log ${resp} | ||
| 107 | + | ||
| 108 | +Можливість завантажити публічний документ до пропозиції першим учасником | ||
| 109 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
| 110 | + ... provider | ||
| 111 | + ... ${USERS.users['${provider}'].broker} | ||
| 112 | + log ${USERS.users['${provider}'].broker} | ||
| 113 | + ${filepath}= create_fake_doc | ||
| 114 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | ||
| 115 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
| 116 | + | ||
| 117 | +Можливість змінити документацію цінової пропозиції з публічної на приватну | ||
| 118 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
| 119 | + ... provider | ||
| 120 | + ... ${USERS.users['${provider}'].broker} | ||
| 121 | + log ${USERS.users['${provider}'].broker} | ||
| 122 | + ${privat_doc}= create_data_dict data.confidentialityRationale "Only our company sells badgers with pink hair." | ||
| 123 | + Set To Dictionary ${privat_doc.data} confidentiality buyerOnly | ||
| 124 | + ${bidid}= Get Variable Value ${USERS.users['${provider}'].bidresponses['resp'].data.id} | ||
| 125 | + ${docid}= Get Variable Value ${USERS.users['${provider}'].bidresponses['bid_doc_upload']['upload_response'].data.id} | ||
| 126 | + ${bid_doc_modified}= Викликати для учасника ${provider} Змінити документацію в ставці ${privat_doc} ${bidid} ${docid} | ||
| 127 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_modified ${bid_doc_modified} | ||
| 128 | + | ||
| 129 | +Можливість завантажити фінансовий документ до пропозиції першим учасником | ||
| 130 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
| 131 | + ... provider | ||
| 132 | + ... ${USERS.users['${provider}'].broker} | ||
| 133 | + log ${USERS.users['${provider}'].broker} | ||
| 134 | + ${filepath}= create_fake_doc | ||
| 135 | + ${doc_type}= Set variable financial_documents | ||
| 136 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
| 137 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
| 138 | + | ||
| 139 | +Можливість завантажити кваліфікаційний документ до пропозиції першим учасником | ||
| 140 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
| 141 | + ... provider | ||
| 142 | + ... ${USERS.users['${provider}'].broker} | ||
| 143 | + log ${USERS.users['${provider}'].broker} | ||
| 144 | + ${filepath}= create_fake_doc | ||
| 145 | + ${doc_type}= Set variable eligibility_documents | ||
| 146 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
| 147 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
| 148 | + | ||
| 149 | +Можливість завантажити документ для критеріїв прийнятності до пропозиції першим учасником | ||
| 150 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | ||
| 151 | + ... provider | ||
| 152 | + ... ${USERS.users['${provider}'].broker} | ||
| 153 | + log ${USERS.users['${provider}'].broker} | ||
| 154 | + ${filepath}= create_fake_doc | ||
| 155 | + ${doc_type}= Set variable qualification_documents | ||
| 156 | + ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} ${doc_type} | ||
| 157 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_upload ${bid_doc_upload} | ||
| 158 | + | ||
| 159 | +Подати цінову пропозицію другим учасником | ||
| 160 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 161 | + ... provider1 | ||
| 162 | + ... ${USERS.users['${provider1}'].broker} | ||
| 163 | + ${bid}= test bid data | ||
| 164 | + Log ${bid} | ||
| 165 | + ${bidresponses}= Create Dictionary | ||
| 166 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 167 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 168 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 169 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 170 | + log ${resp} | ||
| 171 | + | ||
| 172 | +Можливість редагувати однопредметний тендер більше ніж за 7 днів до завершення періоду подання пропозицій | ||
| 173 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 174 | + ... tender_owner | ||
| 175 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 176 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 177 | + | ||
| 178 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю | ||
| 179 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 180 | + ... provider provider1 | ||
| 181 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 182 | + ${usernames}= Create List ${provider} ${provider1} | ||
| 183 | + :FOR ${username} IN @{usernames} | ||
| 184 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 185 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 186 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
| 187 | + \ Should Be Equal ${bid.data.status} invalid | ||
| 188 | + \ Log ${bid} | ||
| 189 | + | ||
| 190 | + | ||
| 191 | +Оновити статус цінової пропозиції першого учасника | ||
| 192 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 193 | + ... provider | ||
| 194 | + ... ${USERS.users['${provider}'].broker} | ||
| 195 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status pending | ||
| 196 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | ||
| 197 | + log ${activestatusresp} | ||
| 198 | + | ||
| 199 | +Cкасувати цінову пропозицію другого учасника | ||
| 200 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | ||
| 201 | + ... provider1 | ||
| 202 | + ... ${USERS.users['${provider1}'].broker} | ||
| 203 | + ${bid}= Get Variable Value ${USERS.users['${provider1}'].bidresponses['resp']} | ||
| 204 | + ${bidresponses}= Викликати для учасника ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 205 | + | ||
| 206 | +Повторно подати цінову пропозицію другим учасником після першої зміни | ||
| 207 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 208 | + ... provider1 | ||
| 209 | + ... ${USERS.users['${provider1}'].broker} | ||
| 210 | + ${bid}= test bid data | ||
| 211 | + Log ${bid} | ||
| 212 | + ${bidresponses}= Create Dictionary | ||
| 213 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 214 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 215 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 216 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 217 | + log ${resp} | ||
| 218 | + | ||
| 219 | +Неможливість редагувати однопредметний тендер менше ніж за 7 днів до завершення періоду подання пропозицій | ||
| 220 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 221 | + ... tender_owner | ||
| 222 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 223 | + ${no_edit_time}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} -6 | ||
| 224 | + Дочекатись дати ${no_edit_time} | ||
| 225 | + Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} description description | ||
| 226 | + | ||
| 227 | +Неможливість подати вимогу на умови менше ніж за 10 днів до завершення періоду подання пропозицій | ||
| 228 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | ||
| 229 | + ... provider | ||
| 230 | + ... ${USERS.users['${provider}'].broker} | ||
| 231 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 232 | + ${claim}= Підготовка даних для подання скарги | ||
| 233 | + Set To Dictionary ${claim.data} status claim | ||
| 234 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${claim} | ||
| 235 | + | ||
| 236 | + | ||
| 237 | +Продовжити період редагування подання пропозиції на 7 днів | ||
| 238 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 239 | + ... tender_owner | ||
| 240 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 241 | + ${endDate}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} 7 | ||
| 242 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} tenderPeriod.endDate ${endDate} | ||
| 243 | + | ||
| 244 | + | ||
| 245 | +Можливість подати скаргу на умови більше ніж за 4 дні до завершення періоду подання пропозицій | ||
| 246 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
| 247 | + ... provider | ||
| 248 | + ... ${USERS.users['${provider}'].broker} | ||
| 249 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 250 | + Дочекатись синхронізації з майданчиком ${provider} | ||
| 251 | + ${complaint}= Підготовка даних для подання скарги | ||
| 252 | + Set To Dictionary ${complaint.data} status pending | ||
| 253 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${complaint} | ||
| 254 | + Set To Dictionary ${USERS.users['${provider}'].complaints} complaint ${complaint} | ||
| 255 | + | ||
| 256 | + | ||
| 257 | +Можливість скасувати скаргу на умови | ||
| 258 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | ||
| 259 | + ... provider | ||
| 260 | + ... ${USERS.users['${provider}'].broker} | ||
| 261 | + ${complaint}= Get From Dictionary ${USERS.users['${provider}'].complaints} complaint | ||
| 262 | + Set To Dictionary ${complaint.data} status cancelled | ||
| 263 | + Set To Dictionary ${complaint.data} cancellationReason test_draft_cancellation | ||
| 264 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${complaint} | ||
| 265 | + | ||
| 266 | + | ||
| 267 | + | ||
| 268 | +Можливість редагувати однопредметний тендер після продовження періоду подання пропозицій | ||
| 269 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 270 | + ... tender_owner | ||
| 271 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 272 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 273 | + | ||
| 274 | + | ||
| 275 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю після другої зміни | ||
| 276 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 277 | + ... provider provider1 | ||
| 278 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 279 | + ${usernames}= Create List ${provider} ${provider1} | ||
| 280 | + :FOR ${username} IN @{usernames} | ||
| 281 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 282 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 283 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
| 284 | + \ Should Be Equal ${bid.data.status} invalid | ||
| 285 | + \ Log ${bid} | ||
| 286 | + | ||
| 287 | + | ||
| 288 | +Можливість оновити статус цінової пропозиції першого учасника після другої зміни | ||
| 289 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 290 | + ... provider | ||
| 291 | + ... ${USERS.users['${provider}'].broker} | ||
| 292 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status pending | ||
| 293 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | ||
| 294 | + log ${activestatusresp} | ||
| 295 | + | ||
| 296 | + | ||
| 297 | +Повторно подати цінову пропозицію другим учасником після другої зміни | ||
| 298 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 299 | + ... provider1 | ||
| 300 | + ... ${USERS.users['${provider1}'].broker} | ||
| 301 | + ${bid}= test bid data | ||
| 302 | + Log ${bid} | ||
| 303 | + ${bidresponses}= Create Dictionary | ||
| 304 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 305 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 306 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 307 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 308 | + log ${resp} | ||
| 309 | + | ||
| 310 | + | ||
| 311 | +Неможливість подати скаргу на умови менше ніж за 4 дні до завершення періоду подання пропозицій | ||
| 312 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
| 313 | + ... provider | ||
| 314 | + ... ${USERS.users['${provider}'].broker} | ||
| 315 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 316 | + Дочекатись дати закінчення періоду подання скарг ${provider} | ||
| 317 | + Дочекатись синхронізації з майданчиком ${provider} | ||
| 318 | + ${complaint}= Підготовка даних для подання скарги | ||
| 319 | + Set To Dictionary ${complaint.data} status pending | ||
| 320 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${complaint} | ||
| 321 | + | ||
| 322 | +#### | ||
| 323 | +# Qualification | ||
| 324 | +Відображення статусу першої пропозиції кваліфікації | ||
| 325 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера | ||
| 326 | + ... tender_owner | ||
| 327 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 328 | + Дочекатись дати закінчення прийому пропозицій ${tender_owner} | ||
| 329 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 330 | + Звірити поле тендера із значенням ${tender_owner} pending qualifications[0].status | ||
| 331 | + | ||
| 332 | +Відображення статусу другої пропозиції кваліфікації | ||
| 333 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних оголошеного тендера | ||
| 334 | + ... tender_owner | ||
| 335 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 336 | + Дочекатись дати закінчення прийому пропозицій ${tender_owner} | ||
| 337 | + Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 338 | + Звірити поле тендера із значенням ${tender_owner} pending qualifications[1].status | ||
| 339 | + | ||
| 340 | +Можливість завантажити документ у кваліфікацію пропозиції першого учасника | ||
| 341 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
| 342 | + ... tender_owner | ||
| 343 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 344 | + log ${USERS.users['${tender_owner}'].broker} | ||
| 345 | + ${filepath}= create_fake_doc | ||
| 346 | + Викликати для учасника ${tender_owner} Завантажити документ у кваліфікацію ${filepath} ${TENDER['TENDER_UAID']} 0 | ||
| 347 | + | ||
| 348 | +Можливість підтвердити першу пропозицію кваліфікації | ||
| 349 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
| 350 | + ... tender_owner | ||
| 351 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 352 | + Викликати для учасника ${tender_owner} Підтвердити кваліфікацію ${TENDER['TENDER_UAID']} 0 | ||
| 353 | + | ||
| 354 | +Можливість завантажити документ у кваліфікацію пропозиції другого учасника | ||
| 355 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
| 356 | + ... tender_owner | ||
| 357 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 358 | + log ${USERS.users['${tender_owner}'].broker} | ||
| 359 | + ${filepath}= create_fake_doc | ||
| 360 | + Викликати для учасника ${tender_owner} Завантажити документ у кваліфікацію ${filepath} ${TENDER['TENDER_UAID']} 1 | ||
| 361 | + | ||
| 362 | +Можливість відхилити другу пропозицію кваліфікації | ||
| 363 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
| 364 | + ... tender_owner | ||
| 365 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 366 | + Викликати для учасника ${tender_owner} Відхилити кваліфікацію ${TENDER['TENDER_UAID']} 1 | ||
| 367 | + | ||
| 368 | +Можливість скасувати рішення кваліфікації для другої пропопозиції | ||
| 369 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
| 370 | + ... tender_owner | ||
| 371 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 372 | + Викликати для учасника ${tender_owner} Скасувати кваліфікацію ${TENDER['TENDER_UAID']} 1 | ||
| 373 | + | ||
| 374 | +Можливість підтвердити другу пропозицію кваліфікації | ||
| 375 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | ||
| 376 | + ... tender_owner | ||
| 377 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 378 | + Викликати для учасника ${tender_owner} Підтвердити кваліфікацію ${TENDER['TENDER_UAID']} 2 |
op_robot_tests/tests_files/openUA.robot
0 → 100644
| 1 | +*** Settings *** | ||
| 2 | +Resource keywords.robot | ||
| 3 | +Resource resource.robot | ||
| 4 | +Suite Setup Test Suite Setup | ||
| 5 | +Suite Teardown Test Suite Teardown | ||
| 6 | + | ||
| 7 | +*** Variables *** | ||
| 8 | +${mode} openua | ||
| 9 | + | ||
| 10 | +${role} viewer | ||
| 11 | +${broker} Quinta | ||
| 12 | + | ||
| 13 | + | ||
| 14 | +*** Test Cases *** | ||
| 15 | +Можливість оголосити понадпороговий однопредметний тендер | ||
| 16 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 17 | + ... tender_owner | ||
| 18 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 19 | + ... minimal | ||
| 20 | + [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера) | ||
| 21 | + ${tender_data}= Підготовка даних для створення тендера | ||
| 22 | + ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | ||
| 23 | + ${LAST_MODIFICATION_DATE}= Get Current TZdate | ||
| 24 | + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | ||
| 25 | + Set To Dictionary ${TENDER} TENDER_UAID ${TENDER_UAID} | ||
| 26 | + Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${LAST_MODIFICATION_DATE} | ||
| 27 | + Log ${TENDER} | ||
| 28 | + | ||
| 29 | +Пошук позапорогового однопредметного тендера по ідентифікатору | ||
| 30 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | ||
| 31 | + ... viewer tender_owner provider provider1 | ||
| 32 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 33 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 34 | + ... minimal | ||
| 35 | + ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 36 | + :FOR ${username} IN @{usernames} | ||
| 37 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 38 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 39 | + | ||
| 40 | +Відображення типу закупівлі оголошеного тендер | ||
| 41 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 42 | + ... viewer | ||
| 43 | + ... ${USERS.users['${viewer}'].broker} | ||
| 44 | + Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procurementMethodType | ||
| 45 | + | ||
| 46 | +Відображення початку періоду прийому пропозицій оголошеного тендера | ||
| 47 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 48 | + ... viewer | ||
| 49 | + ... ${USERS.users['${viewer}'].broker} | ||
| 50 | + ... minimal | ||
| 51 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 52 | + :FOR ${username} IN @{usernames} | ||
| 53 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | ||
| 54 | + | ||
| 55 | +Відображення закінчення періоду прийому пропозицій оголошеного тендера | ||
| 56 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | ||
| 57 | + ... viewer | ||
| 58 | + ... ${USERS.users['${viewer}'].broker} | ||
| 59 | + ... minimal | ||
| 60 | + ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 61 | + :FOR ${username} IN @{usernames} | ||
| 62 | + \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | ||
| 63 | + | ||
| 64 | +Можливість подати вимогу на умови більше ніж за 10 днів до завершення періоду подання пропозицій | ||
| 65 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | ||
| 66 | + ... provider | ||
| 67 | + ... ${USERS.users['${provider}'].broker} | ||
| 68 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 69 | + ${claim}= Підготовка даних для подання скарги | ||
| 70 | + Set To Dictionary ${claim.data} status claim | ||
| 71 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${claim} | ||
| 72 | + ${complaints}= Create Dictionary | ||
| 73 | + Set To Dictionary ${complaints} claim0 ${claim} | ||
| 74 | + Set To Dictionary ${USERS.users['${provider}']} complaints ${complaints} | ||
| 75 | + | ||
| 76 | +Можливість скасувати вимогу на умови | ||
| 77 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | ||
| 78 | + ... provider | ||
| 79 | + ... ${USERS.users['${provider}'].broker} | ||
| 80 | + ${claim}= Get From Dictionary ${USERS.users['${provider}'].complaints} claim0 | ||
| 81 | + Set To Dictionary ${claim.data} status cancelled | ||
| 82 | + Set To Dictionary ${claim.data} cancellationReason test_draft_cancellation | ||
| 83 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 0 ${claim} | ||
| 84 | + | ||
| 85 | + | ||
| 86 | +Подати цінову пропозицію першим учасником після оголошення тендеру | ||
| 87 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 88 | + ... provider | ||
| 89 | + ... ${USERS.users['${provider}'].broker} | ||
| 90 | + ${bid}= test bid data | ||
| 91 | + Log ${bid} | ||
| 92 | + ${bidresponses}= Create Dictionary | ||
| 93 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 94 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 95 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 96 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 97 | + log ${resp} | ||
| 98 | + | ||
| 99 | +Подати цінову пропозицію другим учасником | ||
| 100 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 101 | + ... provider1 | ||
| 102 | + ... ${USERS.users['${provider1}'].broker} | ||
| 103 | + ${bid}= test bid data | ||
| 104 | + Log ${bid} | ||
| 105 | + ${bidresponses}= Create Dictionary | ||
| 106 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 107 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 108 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 109 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 110 | + log ${resp} | ||
| 111 | + | ||
| 112 | +Можливість редагувати однопредметний тендер більше ніж за 7 днів до завершення періоду подання пропозицій | ||
| 113 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 114 | + ... tender_owner | ||
| 115 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 116 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 117 | + | ||
| 118 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю | ||
| 119 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 120 | + ... provider provider1 | ||
| 121 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 122 | + ${usernames}= Create List ${provider} ${provider1} | ||
| 123 | + :FOR ${username} IN @{usernames} | ||
| 124 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 125 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 126 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
| 127 | + \ Should Be Equal ${bid.data.status} invalid | ||
| 128 | + \ Log ${bid} | ||
| 129 | + | ||
| 130 | + | ||
| 131 | +Оновити статус цінової пропозиції першого учасника | ||
| 132 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 133 | + ... provider | ||
| 134 | + ... ${USERS.users['${provider}'].broker} | ||
| 135 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status active | ||
| 136 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | ||
| 137 | + log ${activestatusresp} | ||
| 138 | + | ||
| 139 | +Cкасувати цінову пропозицію другого учасника | ||
| 140 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість скасувати цінову пропозицію | ||
| 141 | + ... provider1 | ||
| 142 | + ... ${USERS.users['${provider1}'].broker} | ||
| 143 | + ${bid}= Get Variable Value ${USERS.users['${provider1}'].bidresponses['resp']} | ||
| 144 | + ${bidresponses}= Викликати для учасника ${provider1} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 145 | + | ||
| 146 | +Повторно подати цінову пропозицію другим учасником після першої зміни | ||
| 147 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 148 | + ... provider1 | ||
| 149 | + ... ${USERS.users['${provider1}'].broker} | ||
| 150 | + ${bid}= test bid data | ||
| 151 | + Log ${bid} | ||
| 152 | + ${bidresponses}= Create Dictionary | ||
| 153 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 154 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 155 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 156 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 157 | + log ${resp} | ||
| 158 | + | ||
| 159 | +Неможливість редагувати однопредметний тендер менше ніж за 7 днів до завершення періоду подання пропозицій | ||
| 160 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 161 | + ... tender_owner | ||
| 162 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 163 | + ${no_edit_time}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} -6 | ||
| 164 | + Дочекатись дати ${no_edit_time} | ||
| 165 | + Викликати для учасника ${tender_owner} Внести зміни в тендер shouldfail ${TENDER['TENDER_UAID']} description description | ||
| 166 | + | ||
| 167 | +Неможливість подати вимогу на умови менше ніж за 10 днів до завершення періоду подання пропозицій | ||
| 168 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати вимогу на умови | ||
| 169 | + ... provider | ||
| 170 | + ... ${USERS.users['${provider}'].broker} | ||
| 171 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 172 | + ${claim}= Підготовка даних для подання скарги | ||
| 173 | + Set To Dictionary ${claim.data} status claim | ||
| 174 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${claim} | ||
| 175 | + | ||
| 176 | + | ||
| 177 | +Продовжити період редагування подання пропозиції на 7 днів | ||
| 178 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 179 | + ... tender_owner | ||
| 180 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 181 | + ${endDate}= add_minutes_to_date ${USERS.users['${tender_owner}'].tender_data.data.tenderPeriod.endDate} 7 | ||
| 182 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} tenderPeriod.endDate ${endDate} | ||
| 183 | + | ||
| 184 | + | ||
| 185 | +Можливість подати скаргу на умови більше ніж за 4 дні до завершення періоду подання пропозицій | ||
| 186 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
| 187 | + ... provider | ||
| 188 | + ... ${USERS.users['${provider}'].broker} | ||
| 189 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 190 | + Дочекатись синхронізації з майданчиком ${provider} | ||
| 191 | + ${complaint}= Підготовка даних для подання скарги | ||
| 192 | + Set To Dictionary ${complaint.data} status pending | ||
| 193 | + Викликати для учасника ${provider} Подати скаргу ${TENDER['TENDER_UAID']} ${complaint} | ||
| 194 | + Set To Dictionary ${USERS.users['${provider}'].complaints} complaint ${complaint} | ||
| 195 | + | ||
| 196 | + | ||
| 197 | +Можливість скасувати скаргу на умови | ||
| 198 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати скаргу на умови | ||
| 199 | + ... provider | ||
| 200 | + ... ${USERS.users['${provider}'].broker} | ||
| 201 | + ${complaint}= Get From Dictionary ${USERS.users['${provider}'].complaints} complaint | ||
| 202 | + Set To Dictionary ${complaint.data} status cancelled | ||
| 203 | + Set To Dictionary ${complaint.data} cancellationReason test_draft_cancellation | ||
| 204 | + Викликати для учасника ${provider} Обробити скаргу ${TENDER['TENDER_UAID']} 1 ${complaint} | ||
| 205 | + | ||
| 206 | + | ||
| 207 | + | ||
| 208 | +Можливість редагувати однопредметний тендер після продовження періоду подання пропозицій | ||
| 209 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | ||
| 210 | + ... tender_owner | ||
| 211 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 212 | + Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | ||
| 213 | + | ||
| 214 | + | ||
| 215 | +Перевірити на зміну статус пропозицій після редагування інформації про закупівлю після другої зміни | ||
| 216 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 217 | + ... provider provider1 | ||
| 218 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 219 | + ${usernames}= Create List ${provider} ${provider1} | ||
| 220 | + :FOR ${username} IN @{usernames} | ||
| 221 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 222 | + \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | ||
| 223 | + \ ${bid}= Викликати для учасника ${username} Отримати пропозицію ${TENDER['TENDER_UAID']} | ||
| 224 | + \ Should Be Equal ${bid.data.status} invalid | ||
| 225 | + \ Log ${bid} | ||
| 226 | + | ||
| 227 | + | ||
| 228 | +Можливість оновити статус цінової пропозиції першого учасника після другої зміни | ||
| 229 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | ||
| 230 | + ... provider | ||
| 231 | + ... ${USERS.users['${provider}'].broker} | ||
| 232 | + ${activestatusresp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status active | ||
| 233 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} activestatusresp ${activestatusresp} | ||
| 234 | + log ${activestatusresp} | ||
| 235 | + | ||
| 236 | + | ||
| 237 | +Повторно подати цінову пропозицію другим учасником після другої зміни | ||
| 238 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 239 | + ... provider1 | ||
| 240 | + ... ${USERS.users['${provider1}'].broker} | ||
| 241 | + ${bid}= test bid data | ||
| 242 | + Log ${bid} | ||
| 243 | + ${bidresponses}= Create Dictionary | ||
| 244 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 245 | + Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | ||
| 246 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 247 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 248 | + log ${resp} | ||
| 249 | + | ||
| 250 | + | ||
| 251 | +Неможливість подати скаргу на умови менше ніж за 4 дні до завершення періоду подання пропозицій | ||
| 252 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати скаргу на умови | ||
| 253 | + ... provider | ||
| 254 | + ... ${USERS.users['${provider}'].broker} | ||
| 255 | + [Documentation] Користувач ${USERS.users['${provider}'].broker} намагається подати скаргу на умови оголошеної закупівлі | ||
| 256 | + Log ${USERS.users['${provider}'].tender_data.data.complaintPeriod.endDate} | ||
| 257 | + Дочекатись Дати ${USERS.users['${provider}'].tender_data.data.complaintPeriod.endDate} | ||
| 258 | + Дочекатись синхронізації з майданчиком ${provider} | ||
| 259 | + ${complaint}= Підготовка даних для подання скарги | ||
| 260 | + Set To Dictionary ${complaint.data} status pending | ||
| 261 | + Викликати для учасника ${provider} Подати скаргу shouldfail ${TENDER['TENDER_UAID']} ${complaint} |
| 1 | # -*- coding: utf-8 - | 1 | # -*- coding: utf-8 - |
| 2 | from datetime import timedelta | 2 | from datetime import timedelta |
| 3 | from dateutil.parser import parse | 3 | from dateutil.parser import parse |
| 4 | -from dpath.util import set as xpathset | 4 | +from dpath.util import new as xpathnew |
| 5 | from iso8601 import parse_date | 5 | from iso8601 import parse_date |
| 6 | from json import load | 6 | from json import load |
| 7 | from jsonpath_rw import parse as parse_path | 7 | from jsonpath_rw import parse as parse_path |
| @@ -16,6 +16,7 @@ from robot.output.loggerhelper import Message | @@ -16,6 +16,7 @@ from robot.output.loggerhelper import Message | ||
| 16 | from .initial_data import ( | 16 | from .initial_data import ( |
| 17 | auction_bid, | 17 | auction_bid, |
| 18 | create_fake_doc, | 18 | create_fake_doc, |
| 19 | + create_fake_sentence, | ||
| 19 | test_additional_items_data, | 20 | test_additional_items_data, |
| 20 | test_award_data, | 21 | test_award_data, |
| 21 | test_bid_data, | 22 | test_bid_data, |
| @@ -24,12 +25,12 @@ from .initial_data import ( | @@ -24,12 +25,12 @@ from .initial_data import ( | ||
| 24 | test_cancel_tender_data, | 25 | test_cancel_tender_data, |
| 25 | test_change_cancellation_document_field_data, | 26 | test_change_cancellation_document_field_data, |
| 26 | test_claim_answer_data, | 27 | test_claim_answer_data, |
| 27 | - test_claim_data, | ||
| 28 | - test_confirm_data, | ||
| 29 | test_claim_answer_satisfying_data, | 28 | test_claim_answer_satisfying_data, |
| 29 | + test_claim_data, | ||
| 30 | test_complaint_answer_data, | 30 | test_complaint_answer_data, |
| 31 | test_complaint_data, | 31 | test_complaint_data, |
| 32 | test_complaint_reply_data, | 32 | test_complaint_reply_data, |
| 33 | + test_confirm_data, | ||
| 33 | test_escalate_claim_data, | 34 | test_escalate_claim_data, |
| 34 | test_invalid_features_data, | 35 | test_invalid_features_data, |
| 35 | test_item_data, | 36 | test_item_data, |
| @@ -46,17 +47,24 @@ from .initial_data import ( | @@ -46,17 +47,24 @@ from .initial_data import ( | ||
| 46 | test_tender_data, | 47 | test_tender_data, |
| 47 | test_tender_data_limited, | 48 | test_tender_data_limited, |
| 48 | test_tender_data_multiple_items, | 49 | test_tender_data_multiple_items, |
| 49 | - test_tender_data_multiple_lots | 50 | + test_tender_data_multiple_lots, |
| 51 | + test_tender_data_openeu, | ||
| 52 | + test_tender_data_openua | ||
| 50 | ) | 53 | ) |
| 51 | from .local_time import get_now, TZ | 54 | from .local_time import get_now, TZ |
| 52 | import os | 55 | import os |
| 53 | from barbecue import chef | 56 | from barbecue import chef |
| 57 | +import re | ||
| 54 | 58 | ||
| 55 | 59 | ||
| 56 | def get_current_tzdate(): | 60 | def get_current_tzdate(): |
| 57 | return get_now().strftime('%Y-%m-%d %H:%M:%S.%f') | 61 | return get_now().strftime('%Y-%m-%d %H:%M:%S.%f') |
| 58 | 62 | ||
| 59 | 63 | ||
| 64 | +def add_minutes_to_date(date, minutes): | ||
| 65 | + return (parse_date(date) + timedelta(minutes=int(minutes))).isoformat() | ||
| 66 | + | ||
| 67 | + | ||
| 60 | def get_file_contents(path): | 68 | def get_file_contents(path): |
| 61 | with open(path, 'r') as f: | 69 | with open(path, 'r') as f: |
| 62 | return unicode(f.read()) or u'' | 70 | return unicode(f.read()) or u'' |
| @@ -71,7 +79,7 @@ def change_state(arguments): | @@ -71,7 +79,7 @@ def change_state(arguments): | ||
| 71 | return "pass" | 79 | return "pass" |
| 72 | 80 | ||
| 73 | 81 | ||
| 74 | -def compare_date(date1, date2): | 82 | +def compare_date(date1, date2, accuracy): |
| 75 | date1 = parse(date1) | 83 | date1 = parse(date1) |
| 76 | date2 = parse(date2) | 84 | date2 = parse(date2) |
| 77 | if date1.tzinfo is None: | 85 | if date1.tzinfo is None: |
| @@ -80,7 +88,7 @@ def compare_date(date1, date2): | @@ -80,7 +88,7 @@ def compare_date(date1, date2): | ||
| 80 | date2 = TZ.localize(date2) | 88 | date2 = TZ.localize(date2) |
| 81 | 89 | ||
| 82 | delta = (date1 - date2).total_seconds() | 90 | delta = (date1 - date2).total_seconds() |
| 83 | - if abs(delta) > 60: | 91 | + if abs(delta) > accuracy: |
| 84 | return False | 92 | return False |
| 85 | return True | 93 | return True |
| 86 | 94 | ||
| @@ -119,7 +127,7 @@ def log_object_data(data, file_name=None, format="yaml"): | @@ -119,7 +127,7 @@ def log_object_data(data, file_name=None, format="yaml"): | ||
| 119 | 127 | ||
| 120 | def load_initial_data_from(file_name): | 128 | def load_initial_data_from(file_name): |
| 121 | if not os.path.exists(file_name): | 129 | if not os.path.exists(file_name): |
| 122 | - file_name = os.path.join(os.path.dirname(__file__), 'data/{}'.format(file_name)) | 130 | + file_name = os.path.join(os.path.dirname(__file__), 'data', file_name) |
| 123 | with open(file_name) as file_obj: | 131 | with open(file_name) as file_obj: |
| 124 | if file_name.endswith(".json"): | 132 | if file_name.endswith(".json"): |
| 125 | return Munch.fromDict(load(file_obj)) | 133 | return Munch.fromDict(load(file_obj)) |
| @@ -127,14 +135,36 @@ def load_initial_data_from(file_name): | @@ -127,14 +135,36 @@ def load_initial_data_from(file_name): | ||
| 127 | return fromYAML(file_obj) | 135 | return fromYAML(file_obj) |
| 128 | 136 | ||
| 129 | 137 | ||
| 130 | -def prepare_test_tender_data(period_intervals, mode): | 138 | +def prepare_test_tender_data(procedure_intervals, mode): |
| 139 | + # Get actual intervals by mode name | ||
| 140 | + if mode in procedure_intervals: | ||
| 141 | + intervals = procedure_intervals[mode] | ||
| 142 | + else: | ||
| 143 | + intervals = procedure_intervals['default'] | ||
| 144 | + LOGGER.log_message(Message(intervals)) | ||
| 145 | + | ||
| 146 | + # Set acceleration value for certain modes | ||
| 147 | + if mode in ['openua', 'openeu']: | ||
| 148 | + assert isinstance(intervals['accelerator'], int), \ | ||
| 149 | + "Accelerator should be an 'int', " \ | ||
| 150 | + "not '{}'".format(type(intervals['accelerator']).__name__) | ||
| 151 | + assert intervals['accelerator'] >= 0, \ | ||
| 152 | + "Accelerator should not be less than 0" | ||
| 153 | + else: | ||
| 154 | + assert 'accelerator' not in intervals.keys(), \ | ||
| 155 | + "Accelerator is not available for mode '{0}'".format(mode) | ||
| 156 | + | ||
| 131 | if mode == 'single': | 157 | if mode == 'single': |
| 132 | - return munchify({'data': test_tender_data(period_intervals)}) | 158 | + return munchify({'data': test_tender_data(intervals)}) |
| 133 | elif mode == 'multi': | 159 | elif mode == 'multi': |
| 134 | - return munchify({'data': test_tender_data_multiple_items(period_intervals)}) | 160 | + return munchify({'data': test_tender_data_multiple_items(intervals)}) |
| 135 | elif mode == 'limited': | 161 | elif mode == 'limited': |
| 136 | - return munchify({'data': test_tender_data_limited(period_intervals)}) | ||
| 137 | - raise ValueError('Invalid mode for test_tender_data') | 162 | + return munchify({'data': test_tender_data_limited(intervals)}) |
| 163 | + elif mode == 'openua': | ||
| 164 | + return munchify({'data': test_tender_data_openua(intervals)}) | ||
| 165 | + elif mode == 'openeu': | ||
| 166 | + return munchify({'data': test_tender_data_openeu(intervals)}) | ||
| 167 | + raise ValueError("Invalid mode for prepare_test_tender_data") | ||
| 138 | 168 | ||
| 139 | 169 | ||
| 140 | def run_keyword_and_ignore_keyword_definitions(name, *args): | 170 | def run_keyword_and_ignore_keyword_definitions(name, *args): |
| @@ -175,7 +205,7 @@ def set_access_key(tender, access_token): | @@ -175,7 +205,7 @@ def set_access_key(tender, access_token): | ||
| 175 | 205 | ||
| 176 | 206 | ||
| 177 | def set_to_object(obj, attribute, value): | 207 | def set_to_object(obj, attribute, value): |
| 178 | - xpathset(obj, attribute.replace('.', '/'), value) | 208 | + xpathnew(obj, attribute, value, separator='.') |
| 179 | return obj | 209 | return obj |
| 180 | 210 | ||
| 181 | 211 | ||
| @@ -206,6 +236,74 @@ def merge_dicts(left, right): | @@ -206,6 +236,74 @@ def merge_dicts(left, right): | ||
| 206 | new.update(right) | 236 | new.update(right) |
| 207 | return new | 237 | return new |
| 208 | 238 | ||
| 239 | + | ||
| 240 | +def create_data_dict(path_to_value=None, value=None): | ||
| 241 | + data_dict = munchify({'data': {}}) | ||
| 242 | + if isinstance(path_to_value, basestring) and value: | ||
| 243 | + list_items = re.search('\d+', path_to_value) | ||
| 244 | + if list_items: | ||
| 245 | + list_items = list_items.group(0) | ||
| 246 | + path_to_value = path_to_value.split('[' + list_items + ']') | ||
| 247 | + path_to_value.insert(1, '.' + list_items) | ||
| 248 | + set_to_object(data_dict, path_to_value[0], []) | ||
| 249 | + set_to_object(data_dict, ''.join(path_to_value[:2]), {}) | ||
| 250 | + set_to_object(data_dict, ''.join(path_to_value), value) | ||
| 251 | + else: | ||
| 252 | + data_dict = set_to_object(data_dict, path_to_value, value) | ||
| 253 | + return data_dict | ||
| 254 | + | ||
| 255 | + | ||
| 256 | +def cancel_tender(cancellation_reason): | ||
| 257 | + return { | ||
| 258 | + 'data': { | ||
| 259 | + 'reason': cancellation_reason | ||
| 260 | + } | ||
| 261 | + } | ||
| 262 | + | ||
| 263 | + | ||
| 264 | +def confirm_supplier(supplier_id): | ||
| 265 | + return { | ||
| 266 | + "data": { | ||
| 267 | + "status": "active", | ||
| 268 | + "id": supplier_id | ||
| 269 | + } | ||
| 270 | + } | ||
| 271 | + | ||
| 272 | + | ||
| 273 | +def change_cancellation_document_field(key, value): | ||
| 274 | + data = { | ||
| 275 | + "data": { | ||
| 276 | + key: value | ||
| 277 | + } | ||
| 278 | + } | ||
| 279 | + return data | ||
| 280 | + | ||
| 281 | + | ||
| 282 | +def confirm_cancellation(cancellation_id): | ||
| 283 | + data = { | ||
| 284 | + "data": { | ||
| 285 | + "status": "active", | ||
| 286 | + "id": cancellation_id | ||
| 287 | + } | ||
| 288 | + } | ||
| 289 | + return data | ||
| 290 | + | ||
| 291 | + | ||
| 292 | +def confirm_contract(contract_id): | ||
| 293 | + data = { | ||
| 294 | + "data": { | ||
| 295 | + "id": contract_id, | ||
| 296 | + "status": "active" | ||
| 297 | + } | ||
| 298 | + } | ||
| 299 | + return data | ||
| 300 | + | ||
| 301 | + | ||
| 302 | +def additional_items_data(tender_id, access_token): | ||
| 303 | + data = {"access": {"token": access_token}, "data": {"id": tender_id, "items": [{"unit": {"code": "MON", "name": "month"}, "quantity": 9}]}} | ||
| 304 | + return data | ||
| 305 | + | ||
| 306 | + | ||
| 209 | def munch_dict(arg=None, data=False): | 307 | def munch_dict(arg=None, data=False): |
| 210 | if arg is None: | 308 | if arg is None: |
| 211 | arg = {} | 309 | arg = {} |
| @@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
| 6 | Library DebugLibrary | 6 | Library DebugLibrary |
| 7 | Resource keywords.robot | 7 | Resource keywords.robot |
| 8 | Resource resource.robot | 8 | Resource resource.robot |
| 9 | -Suite Setup TestSuiteSetup | ||
| 10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
| 10 | +Suite Teardown Test Suite Teardown | ||
| 11 | 11 | ||
| 12 | *** Variables *** | 12 | *** Variables *** |
| 13 | ${mode} single | 13 | ${mode} single |
| @@ -24,7 +24,7 @@ ${question_id} 0 | @@ -24,7 +24,7 @@ ${question_id} 0 | ||
| 24 | ... ${USERS.users['${tender_owner}'].broker} | 24 | ... ${USERS.users['${tender_owner}'].broker} |
| 25 | ... minimal | 25 | ... minimal |
| 26 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), | 26 | [Documentation] Створення закупівлі замовником, обовязково має повертати UAID закупівлі (номер тендера), |
| 27 | - ${tender_data}= Підготовка початкових даних | 27 | + ${tender_data}= Підготовка даних для створення тендера |
| 28 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} | 28 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} Створити тендер ${tender_data} |
| 29 | ${LAST_MODIFICATION_DATE}= Get Current TZdate | 29 | ${LAST_MODIFICATION_DATE}= Get Current TZdate |
| 30 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} | 30 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data ${tender_data} |
| @@ -33,9 +33,10 @@ ${question_id} 0 | @@ -33,9 +33,10 @@ ${question_id} 0 | ||
| 33 | Log ${TENDER} | 33 | Log ${TENDER} |
| 34 | 34 | ||
| 35 | Можливість додати тендерну документацію | 35 | Можливість додати тендерну документацію |
| 36 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ | ||
| 37 | - ... tender_owner | ||
| 38 | - ... ${USERS.users['${tender_owner}'].broker} | 36 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість завантажити документ |
| 37 | + ... tender_owner | ||
| 38 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 39 | + ... critical level 2 | ||
| 39 | [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі | 40 | [Documentation] Закупівельник ${USERS.users['${tender_owner}'].broker} завантажує документацію до оголошеної закупівлі |
| 40 | ${filepath}= create_fake_doc | 41 | ${filepath}= create_fake_doc |
| 41 | ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']} | 42 | ${doc_upload_reply}= Викликати для учасника ${tender_owner} Завантажити документ ${filepath} ${TENDER['TENDER_UAID']} |
| @@ -46,12 +47,12 @@ ${question_id} 0 | @@ -46,12 +47,12 @@ ${question_id} 0 | ||
| 46 | 47 | ||
| 47 | Можливість знайти однопредметний тендер по ідентифікатору | 48 | Можливість знайти однопредметний тендер по ідентифікатору |
| 48 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору | 49 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера по ідентифікатору |
| 49 | - ... viewer | ||
| 50 | - ... ${USERS.users['${viewer}'].broker} | 50 | + ... viewer tender_owner provider provider1 |
| 51 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 52 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 51 | ... minimal | 53 | ... minimal |
| 52 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
| 53 | - ${usernames}= Create List ${viewer} ${tender_owner} ${provider} ${provider1} | ||
| 54 | - :FOR ${username} IN @{usernames} | 54 | + :FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1} |
| 55 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 55 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | 56 | \ Викликати для учасника ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
| 56 | 57 | ||
| 57 | ###### | 58 | ###### |
| @@ -61,35 +62,39 @@ ${question_id} 0 | @@ -61,35 +62,39 @@ ${question_id} 0 | ||
| 61 | 62 | ||
| 62 | Відображення заголовку оголошеного тендера | 63 | Відображення заголовку оголошеного тендера |
| 63 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 64 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 64 | - ... viewer | ||
| 65 | - ... ${USERS.users['${viewer}'].broker} | 65 | + ... viewer provider provider1 |
| 66 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 66 | ... minimal | 67 | ... minimal |
| 67 | - ${usernames}= Create List ${viewer} ${provider} | ||
| 68 | - :FOR ${username} IN @{usernames} | 68 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
| 69 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 69 | \ Звірити поле тендера ${username} ${USERS.users['${tender_owner}'].initial_data} title | 70 | \ Звірити поле тендера ${username} ${USERS.users['${tender_owner}'].initial_data} title |
| 70 | 71 | ||
| 71 | Відображення опису оголошеного тендера | 72 | Відображення опису оголошеного тендера |
| 72 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 73 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 73 | ... viewer | 74 | ... viewer |
| 74 | ... ${USERS.users['${viewer}'].broker} | 75 | ... ${USERS.users['${viewer}'].broker} |
| 76 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 75 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} description | 77 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} description |
| 76 | 78 | ||
| 77 | Відображення бюджету оголошеного тендера | 79 | Відображення бюджету оголошеного тендера |
| 78 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 80 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 79 | ... viewer | 81 | ... viewer |
| 80 | ... ${USERS.users['${viewer}'].broker} | 82 | ... ${USERS.users['${viewer}'].broker} |
| 83 | + ... critical level 2 | ||
| 81 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} value.amount | 84 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} value.amount |
| 82 | 85 | ||
| 83 | Відображення tenderID оголошеного тендера | 86 | Відображення tenderID оголошеного тендера |
| 84 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 87 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 85 | ... viewer | 88 | ... viewer |
| 86 | ... ${USERS.users['${viewer}'].broker} | 89 | ... ${USERS.users['${viewer}'].broker} |
| 90 | + ... critical level 2 | ||
| 87 | Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} tenderID | 91 | Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} tenderID |
| 88 | 92 | ||
| 89 | Відображення procuringEntity.name оголошеного тендера | 93 | Відображення procuringEntity.name оголошеного тендера |
| 90 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 94 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 91 | ... viewer | 95 | ... viewer |
| 92 | ... ${USERS.users['${viewer}'].broker} | 96 | ... ${USERS.users['${viewer}'].broker} |
| 97 | + ... critical level 2 | ||
| 93 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procuringEntity.name | 98 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} procuringEntity.name |
| 94 | 99 | ||
| 95 | Відображення початку періоду уточнення оголошеного тендера | 100 | Відображення початку періоду уточнення оголошеного тендера |
| @@ -107,20 +112,20 @@ ${question_id} 0 | @@ -107,20 +112,20 @@ ${question_id} 0 | ||
| 107 | 112 | ||
| 108 | Відображення початку періоду прийому пропозицій оголошеного тендера | 113 | Відображення початку періоду прийому пропозицій оголошеного тендера |
| 109 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 114 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 110 | - ... viewer | ||
| 111 | - ... ${USERS.users['${viewer}'].broker} | 115 | + ... viewer provider provider1 |
| 116 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 112 | ... minimal | 117 | ... minimal |
| 113 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 114 | - :FOR ${username} IN @{usernames} | 118 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
| 119 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 115 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate | 120 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.startDate |
| 116 | 121 | ||
| 117 | Відображення закінчення періоду прийому пропозицій оголошеного тендера | 122 | Відображення закінчення періоду прийому пропозицій оголошеного тендера |
| 118 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера | 123 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера |
| 119 | - ... viewer | ||
| 120 | - ... ${USERS.users['${viewer}'].broker} | 124 | + ... viewer provider provider1 |
| 125 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 121 | ... minimal | 126 | ... minimal |
| 122 | - ${usernames}= Create List ${viewer} ${provider} ${provider1} | ||
| 123 | - :FOR ${username} IN @{usernames} | 127 | + :FOR ${username} IN ${viewer} ${provider} ${provider1} |
| 128 | + \ Дочекатись синхронізації з майданчиком ${username} | ||
| 124 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate | 129 | \ Звірити дату тендера ${username} ${USERS.users['${tender_owner}'].initial_data} tenderPeriod.endDate |
| 125 | 130 | ||
| 126 | Відображення мінімального кроку оголошеного тендера | 131 | Відображення мінімального кроку оголошеного тендера |
| @@ -133,6 +138,8 @@ ${question_id} 0 | @@ -133,6 +138,8 @@ ${question_id} 0 | ||
| 133 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер | 138 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість оголосити тендер |
| 134 | ... tender_owner | 139 | ... tender_owner |
| 135 | ... ${USERS.users['${tender_owner}'].broker} | 140 | ... ${USERS.users['${tender_owner}'].broker} |
| 141 | + ... critical level 2 | ||
| 142 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 136 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description | 143 | Викликати для учасника ${tender_owner} Внести зміни в тендер ${TENDER['TENDER_UAID']} description description |
| 137 | 144 | ||
| 138 | ####### | 145 | ####### |
| @@ -143,12 +150,15 @@ ${question_id} 0 | @@ -143,12 +150,15 @@ ${question_id} 0 | ||
| 143 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 150 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 144 | ... viewer | 151 | ... viewer |
| 145 | ... ${USERS.users['${viewer}'].broker} | 152 | ... ${USERS.users['${viewer}'].broker} |
| 153 | + ... critical level 2 | ||
| 154 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 146 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].description | 155 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].description |
| 147 | 156 | ||
| 148 | Відображення дати доставки позицій закупівлі однопредметного тендера | 157 | Відображення дати доставки позицій закупівлі однопредметного тендера |
| 149 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 158 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 150 | ... viewer | 159 | ... viewer |
| 151 | ... ${USERS.users['${viewer}'].broker} | 160 | ... ${USERS.users['${viewer}'].broker} |
| 161 | + ... critical level 3 | ||
| 152 | Звірити дату тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryDate.endDate | 162 | Звірити дату тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryDate.endDate |
| 153 | 163 | ||
| 154 | Відображення координат широти доставки позицій закупівлі однопредметного тендера | 164 | Відображення координат широти доставки позицій закупівлі однопредметного тендера |
| @@ -167,6 +177,7 @@ ${question_id} 0 | @@ -167,6 +177,7 @@ ${question_id} 0 | ||
| 167 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 177 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 168 | ... viewer | 178 | ... viewer |
| 169 | ... ${USERS.users['${viewer}'].broker} | 179 | ... ${USERS.users['${viewer}'].broker} |
| 180 | + ... critical level 3 | ||
| 170 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryAddress.countryName | 181 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryAddress.countryName |
| 171 | 182 | ||
| 172 | Відображення пошт. коду доставки позицій закупівлі однопредметного тендера | 183 | Відображення пошт. коду доставки позицій закупівлі однопредметного тендера |
| @@ -179,6 +190,7 @@ ${question_id} 0 | @@ -179,6 +190,7 @@ ${question_id} 0 | ||
| 179 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 190 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 180 | ... viewer | 191 | ... viewer |
| 181 | ... ${USERS.users['${viewer}'].broker} | 192 | ... ${USERS.users['${viewer}'].broker} |
| 193 | + ... critical level 3 | ||
| 182 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryAddress.region | 194 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].deliveryAddress.region |
| 183 | 195 | ||
| 184 | Відображення locality адреси доставки позицій закупівлі однопредметного тендера | 196 | Відображення locality адреси доставки позицій закупівлі однопредметного тендера |
| @@ -203,12 +215,14 @@ ${question_id} 0 | @@ -203,12 +215,14 @@ ${question_id} 0 | ||
| 203 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 215 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 204 | ... viewer | 216 | ... viewer |
| 205 | ... ${USERS.users['${viewer}'].broker} | 217 | ... ${USERS.users['${viewer}'].broker} |
| 218 | + ... critical level 3 | ||
| 206 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].classification.id | 219 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].classification.id |
| 207 | 220 | ||
| 208 | Відображення опису класифікації позицій закупівлі однопредметного тендера | 221 | Відображення опису класифікації позицій закупівлі однопредметного тендера |
| 209 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 222 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 210 | ... viewer | 223 | ... viewer |
| 211 | ... ${USERS.users['${viewer}'].broker} | 224 | ... ${USERS.users['${viewer}'].broker} |
| 225 | + ... critical level 3 | ||
| 212 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].classification.description | 226 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].classification.description |
| 213 | 227 | ||
| 214 | Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера | 228 | Відображення схеми додаткової класифікації позицій закупівлі однопредметного тендера |
| @@ -221,18 +235,21 @@ ${question_id} 0 | @@ -221,18 +235,21 @@ ${question_id} 0 | ||
| 221 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 235 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 222 | ... viewer | 236 | ... viewer |
| 223 | ... ${USERS.users['${viewer}'].broker} | 237 | ... ${USERS.users['${viewer}'].broker} |
| 238 | + ... critical level 3 | ||
| 224 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].additionalClassifications[0].id | 239 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].additionalClassifications[0].id |
| 225 | 240 | ||
| 226 | Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера | 241 | Відображення опису додаткової класифікації позицій закупівлі однопредметного тендера |
| 227 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 242 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 228 | ... viewer | 243 | ... viewer |
| 229 | ... ${USERS.users['${viewer}'].broker} | 244 | ... ${USERS.users['${viewer}'].broker} |
| 245 | + ... critical level 3 | ||
| 230 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].additionalClassifications[0].description | 246 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].additionalClassifications[0].description |
| 231 | 247 | ||
| 232 | Відображення назви одиниці позицій закупівлі однопредметного тендера | 248 | Відображення назви одиниці позицій закупівлі однопредметного тендера |
| 233 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 249 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 234 | ... viewer | 250 | ... viewer |
| 235 | ... ${USERS.users['${viewer}'].broker} | 251 | ... ${USERS.users['${viewer}'].broker} |
| 252 | + ... critical level 3 | ||
| 236 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].unit.name | 253 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].unit.name |
| 237 | 254 | ||
| 238 | Відображення коду одиниці позицій закупівлі однопредметного тендера | 255 | Відображення коду одиниці позицій закупівлі однопредметного тендера |
| @@ -245,6 +262,7 @@ ${question_id} 0 | @@ -245,6 +262,7 @@ ${question_id} 0 | ||
| 245 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера | 262 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення полів предметів однопредметного тендера |
| 246 | ... viewer | 263 | ... viewer |
| 247 | ... ${USERS.users['${viewer}'].broker} | 264 | ... ${USERS.users['${viewer}'].broker} |
| 265 | + ... critical level 3 | ||
| 248 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].quantity | 266 | Звірити поле тендера ${viewer} ${USERS.users['${tender_owner}'].initial_data} items[0].quantity |
| 249 | 267 | ||
| 250 | ####### | 268 | ####### |
| @@ -254,38 +272,51 @@ ${question_id} 0 | @@ -254,38 +272,51 @@ ${question_id} 0 | ||
| 254 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 272 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
| 255 | ... provider | 273 | ... provider |
| 256 | ... ${USERS.users['${provider}'].broker} | 274 | ... ${USERS.users['${provider}'].broker} |
| 257 | - Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} | 275 | + ... critical level 2 |
| 276 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 277 | + ${question}= Підготовка даних для запитання | ||
| 278 | + ${question_resp}= Викликати для учасника ${provider} Задати питання ${TENDER['TENDER_UAID']} ${question} | ||
| 258 | ${now}= Get Current TZdate | 279 | ${now}= Get Current TZdate |
| 259 | - Set To Dictionary ${QUESTIONS[${question_id}].data} date ${now} | 280 | + ${question.data.date}= Set variable ${now} |
| 281 | + ${question_data}= Create Dictionary question=${question} question_resp=${question_resp} | ||
| 282 | + ${question_data}= munch_dict arg=${question_data} | ||
| 283 | + Set To Dictionary ${USERS.users['${provider}']} question_data=${question_data} | ||
| 260 | 284 | ||
| 261 | Відображення заголовку анонімного питання без відповіді | 285 | Відображення заголовку анонімного питання без відповіді |
| 262 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей | 286 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей |
| 263 | ... viewer | 287 | ... viewer |
| 264 | ... ${USERS.users['${viewer}'].broker} | 288 | ... ${USERS.users['${viewer}'].broker} |
| 265 | - Дочекатись синхронізації з майданчиком ${viewer} | 289 | + ... critical level 2 |
| 290 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 266 | Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | 291 | Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} |
| 267 | - Звірити поле тендера із значенням ${viewer} ${QUESTIONS[${question_id}].data.title} questions[${question_id}].title | 292 | + Звірити поле тендера із значенням ${viewer} ${USERS.users['${provider}'].question_data.question.data.title} questions[${question_id}].title |
| 268 | 293 | ||
| 269 | Відображення опису анонімного питання без відповіді | 294 | Відображення опису анонімного питання без відповіді |
| 270 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей | 295 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей |
| 271 | ... viewer | 296 | ... viewer |
| 272 | ... ${USERS.users['${viewer}'].broker} | 297 | ... ${USERS.users['${viewer}'].broker} |
| 273 | - Звірити поле тендера із значенням ${viewer} ${QUESTIONS[${question_id}].data.description} questions[${question_id}].description | 298 | + ... critical level 2 |
| 299 | + Звірити поле тендера із значенням ${viewer} ${USERS.users['${provider}'].question_data.question.data.description} questions[${question_id}].description | ||
| 274 | 300 | ||
| 275 | Відображення дати анонімного питання без відповіді | 301 | Відображення дати анонімного питання без відповіді |
| 276 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей | 302 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей |
| 277 | ... viewer | 303 | ... viewer |
| 278 | ... ${USERS.users['${viewer}'].broker} | 304 | ... ${USERS.users['${viewer}'].broker} |
| 279 | - Звірити дату тендера із значенням ${viewer} ${QUESTIONS[${question_id}].data.date} questions[${question_id}].date | 305 | + Звірити дату тендера із значенням ${viewer} ${USERS.users['${provider}'].question_data.question.data.date} questions[${question_id}].date |
| 280 | 306 | ||
| 281 | Неможливість подати цінову пропозицію до початку періоду подачі пропозицій першим учасником | 307 | Неможливість подати цінову пропозицію до початку періоду подачі пропозицій першим учасником |
| 282 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 308 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 283 | ... provider | 309 | ... provider |
| 284 | ... ${USERS.users['${provider}'].broker} | 310 | ... ${USERS.users['${provider}'].broker} |
| 311 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 285 | ${bid}= test bid data | 312 | ${bid}= test bid data |
| 286 | Log ${bid} | 313 | Log ${bid} |
| 314 | + ${bidresponses}= Create Dictionary | ||
| 315 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 316 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 287 | ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} | 317 | ${bid_before_bidperiod_resp}= Викликати для учасника ${provider} Подати цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${bid} |
| 288 | - Log ${bid_before_bidperiod_resp} | 318 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_before_bidperiod_resp ${bid_before_bidperiod_resp} |
| 319 | + log ${USERS.users['${provider}']} | ||
| 289 | 320 | ||
| 290 | ####### | 321 | ####### |
| 291 | #Відображення відповіді на запитання | 322 | #Відображення відповіді на запитання |
| @@ -294,34 +325,45 @@ ${question_id} 0 | @@ -294,34 +325,45 @@ ${question_id} 0 | ||
| 294 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання | 325 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість відповісти на запитання |
| 295 | ... tender_owner | 326 | ... tender_owner |
| 296 | ... ${USERS.users['${tender_owner}'].broker} | 327 | ... ${USERS.users['${tender_owner}'].broker} |
| 297 | - Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} 0 ${ANSWERS[0]} | 328 | + ... critical level 2 |
| 329 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 330 | + ${answer}= Підготовка даних для відповіді на запитання | ||
| 331 | + ${answer_resp}= Викликати для учасника ${tender_owner} Відповісти на питання ${TENDER['TENDER_UAID']} ${USERS.users['${provider}']['question_data']['question_resp']} ${answer} | ||
| 298 | ${now}= Get Current TZdate | 332 | ${now}= Get Current TZdate |
| 299 | - Set To Dictionary ${ANSWERS[${question_id}].data} date ${now} | 333 | + ${answer.data.date}= Set variable ${now} |
| 334 | + ${answer_data}= Create Dictionary answer=${answer} answer_resp=${answer_resp} | ||
| 335 | + Set To Dictionary ${USERS.users['${provider}']} answer_data ${answer_data} | ||
| 300 | 336 | ||
| 301 | Відображення відповіді на запитання | 337 | Відображення відповіді на запитання |
| 302 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання | 338 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання |
| 303 | ... viewer | 339 | ... viewer |
| 304 | ... ${USERS.users['${viewer}'].broker} | 340 | ... ${USERS.users['${viewer}'].broker} |
| 305 | - Дочекатись синхронізації з майданчиком ${viewer} | 341 | + ... critical level 2 |
| 342 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 306 | Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} | 343 | Викликати для учасника ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} |
| 307 | - Звірити поле тендера із значенням ${viewer} ${ANSWERS[${question_id}].data.answer} questions[${question_id}].answer | 344 | + Звірити поле тендера із значенням ${viewer} ${USERS.users['${provider}']['answer_data']['answer'].data.answer} questions[${question_id}].answer |
| 308 | 345 | ||
| 309 | Можливість подати цінову пропозицію першим учасником | 346 | Можливість подати цінову пропозицію першим учасником |
| 310 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 347 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 311 | ... provider | 348 | ... provider |
| 312 | ... ${USERS.users['${provider}'].broker} | 349 | ... ${USERS.users['${provider}'].broker} |
| 350 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 313 | Дочекатись дати початку прийому пропозицій ${provider} | 351 | Дочекатись дати початку прийому пропозицій ${provider} |
| 314 | ${bid}= test bid data | 352 | ${bid}= test bid data |
| 315 | Log ${bid} | 353 | Log ${bid} |
| 316 | - ${biddingresponse0}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 317 | - Set Global Variable ${biddingresponse0} | ||
| 318 | - log ${biddingresponse0} | 354 | + ${bidresponses}= Create Dictionary |
| 355 | + Set To Dictionary ${bidresponses} bid ${bid} | ||
| 356 | + Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | ||
| 357 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 358 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 359 | + log ${USERS.users['${provider}'].bidresponses} | ||
| 319 | 360 | ||
| 320 | Можливість скасувати цінову пропозицію | 361 | Можливість скасувати цінову пропозицію |
| 321 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію | 362 | [Tags] ${USERS.users['${provider}'].broker}: Можливість скасувати цінову пропозицію |
| 322 | - ... provider | ||
| 323 | - ... ${USERS.users['${provider}'].broker} | ||
| 324 | - ${biddingresponse_0}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${biddingresponse0} | 363 | + ... provider |
| 364 | + ... ${USERS.users['${provider}'].broker} | ||
| 365 | + ${canceledbidresp}= Викликати для учасника ${provider} Скасувати цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | ||
| 366 | + Log ${canceledbidresp} | ||
| 325 | 367 | ||
| 326 | Можливість подати повторно цінову пропозицію першим учасником | 368 | Можливість подати повторно цінову пропозицію першим учасником |
| 327 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | 369 | [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| @@ -332,18 +374,17 @@ ${question_id} 0 | @@ -332,18 +374,17 @@ ${question_id} 0 | ||
| 332 | ${bid}= test bid data | 374 | ${bid}= test bid data |
| 333 | Log ${bid} | 375 | Log ${bid} |
| 334 | ${bidresponses}= Create Dictionary | 376 | ${bidresponses}= Create Dictionary |
| 335 | - ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 336 | - Set To Dictionary ${bidresponses} resp ${resp} | 377 | + Set To Dictionary ${bidresponses} bid ${bid} |
| 337 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} | 378 | Set To Dictionary ${USERS.users['${provider}']} bidresponses ${bidresponses} |
| 379 | + ${resp}= Викликати для учасника ${provider} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 380 | + Set To Dictionary ${USERS.users['${provider}'].bidresponses} resp ${resp} | ||
| 338 | log ${USERS.users['${provider}'].bidresponses} | 381 | log ${USERS.users['${provider}'].bidresponses} |
| 339 | 382 | ||
| 340 | Можливість змінити повторну цінову пропозицію до 50000 | 383 | Можливість змінити повторну цінову пропозицію до 50000 |
| 341 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 384 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 342 | ... provider | 385 | ... provider |
| 343 | ... ${USERS.users['${provider}'].broker} | 386 | ... ${USERS.users['${provider}'].broker} |
| 344 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.value} amount 50000 | ||
| 345 | - Log ${USERS.users['${provider}'].bidresponses['resp'].data.value} | ||
| 346 | - ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 387 | + ${fixbidto50000resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} value.amount 50000 |
| 347 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto50000resp ${fixbidto50000resp} | 388 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto50000resp ${fixbidto50000resp} |
| 348 | log ${fixbidto50000resp} | 389 | log ${fixbidto50000resp} |
| 349 | 390 | ||
| @@ -351,9 +392,7 @@ ${question_id} 0 | @@ -351,9 +392,7 @@ ${question_id} 0 | ||
| 351 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію | 392 | [Tags] ${USERS.users['${provider}'].broker}: Можливість змінити цінову пропозицію |
| 352 | ... provider | 393 | ... provider |
| 353 | ... ${USERS.users['${provider}'].broker} | 394 | ... ${USERS.users['${provider}'].broker} |
| 354 | - Set To Dictionary ${USERS.users['${provider}'].bidresponses['resp'].data.value} amount 10 | ||
| 355 | - Log ${USERS.users['${provider}'].bidresponses['fixbidto50000resp'].data.value} | ||
| 356 | - ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} ${USERS.users['${provider}'].bidresponses['resp']} | 395 | + ${fixbidto10resp}= Викликати для учасника ${provider} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} value.amount 10 |
| 357 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} | 396 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} fixbidto10resp ${fixbidto10resp} |
| 358 | log ${fixbidto10resp} | 397 | log ${fixbidto10resp} |
| 359 | 398 | ||
| @@ -361,6 +400,7 @@ ${question_id} 0 | @@ -361,6 +400,7 @@ ${question_id} 0 | ||
| 361 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця | 400 | [Tags] ${USERS.users['${provider}'].broker}: Можливість прийняти пропозицію переможця |
| 362 | ... provider | 401 | ... provider |
| 363 | ... ${USERS.users['${provider}'].broker} | 402 | ... ${USERS.users['${provider}'].broker} |
| 403 | + ... critical level 2 | ||
| 364 | log ${USERS.users['${provider}'].broker} | 404 | log ${USERS.users['${provider}'].broker} |
| 365 | ${filepath}= create_fake_doc | 405 | ${filepath}= create_fake_doc |
| 366 | ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | 406 | ${bid_doc_upload}= Викликати для учасника ${provider} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} |
| @@ -379,24 +419,27 @@ ${question_id} 0 | @@ -379,24 +419,27 @@ ${question_id} 0 | ||
| 379 | 419 | ||
| 380 | Неможливість задати запитання після закінчення періоду уточнень | 420 | Неможливість задати запитання після закінчення періоду уточнень |
| 381 | [Documentation] | 421 | [Documentation] |
| 382 | - ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" | 422 | + ... "shouldfail" argument as first switches the behaviour of keyword and "Викликати для учасника" to "fail if passed" |
| 383 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання | 423 | [Tags] ${USERS.users['${provider}'].broker}: Можливість задати запитання |
| 384 | ... provider | 424 | ... provider |
| 385 | ... ${USERS.users['${provider}'].broker} | 425 | ... ${USERS.users['${provider}'].broker} |
| 386 | - ${resp}= Викликати для учасника ${provider} Задати питання shouldfail ${TENDER['TENDER_UAID']} ${QUESTIONS[${question_id}]} | 426 | + ${question}= Підготовка даних для запитання |
| 427 | + Викликати для учасника ${provider} Задати питання shouldfail ${TENDER['TENDER_UAID']} ${question} | ||
| 387 | 428 | ||
| 388 | Можливість подати цінову пропозицію другим учасником | 429 | Можливість подати цінову пропозицію другим учасником |
| 389 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | 430 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
| 390 | ... provider1 | 431 | ... provider1 |
| 391 | ... ${USERS.users['${provider1}'].broker} | 432 | ... ${USERS.users['${provider1}'].broker} |
| 392 | ... minimal | 433 | ... minimal |
| 434 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
| 393 | Дочекатись дати початку прийому пропозицій ${provider1} | 435 | Дочекатись дати початку прийому пропозицій ${provider1} |
| 394 | ${bid}= test bid data | 436 | ${bid}= test bid data |
| 395 | Log ${bid} | 437 | Log ${bid} |
| 396 | ${bidresponses}= Create Dictionary | 438 | ${bidresponses}= Create Dictionary |
| 397 | - ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 398 | - Set To Dictionary ${bidresponses} resp ${resp} | 439 | + Set To Dictionary ${bidresponses} bid ${bid} |
| 399 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} | 440 | Set To Dictionary ${USERS.users['${provider1}']} bidresponses ${bidresponses} |
| 441 | + ${resp}= Викликати для учасника ${provider1} Подати цінову пропозицію ${TENDER['TENDER_UAID']} ${bid} | ||
| 442 | + Set To Dictionary ${USERS.users['${provider1}'].bidresponses} resp ${resp} | ||
| 400 | log ${resp} | 443 | log ${resp} |
| 401 | log ${USERS.users['${provider1}'].bidresponses} | 444 | log ${USERS.users['${provider1}'].bidresponses} |
| 402 | 445 | ||
| @@ -404,14 +447,16 @@ ${question_id} 0 | @@ -404,14 +447,16 @@ ${question_id} 0 | ||
| 404 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | 447 | [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
| 405 | ... viewer | 448 | ... viewer |
| 406 | ... ${USERS.users['${viewer}'].broker} | 449 | ... ${USERS.users['${viewer}'].broker} |
| 450 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 407 | ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids | 451 | ${bids}= Викликати для учасника ${viewer} Отримати інформацію із тендера bids |
| 408 | - ${bool}= Convert To Boolean ${bids} | ||
| 409 | - Should Be Equal ${bool} ${False} | 452 | + Should Not Be True ${bids} |
| 410 | 453 | ||
| 411 | Можливість завантажити документ другим учасником | 454 | Можливість завантажити документ другим учасником |
| 412 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість прийняти пропозицію переможця | 455 | [Tags] ${USERS.users['${provider1}'].broker}: Можливість прийняти пропозицію переможця |
| 413 | ... provider1 | 456 | ... provider1 |
| 414 | ... ${USERS.users['${provider1}'].broker} | 457 | ... ${USERS.users['${provider1}'].broker} |
| 458 | + ... critical level 2 | ||
| 459 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
| 415 | log ${USERS.users['${provider1}'].broker} | 460 | log ${USERS.users['${provider1}'].broker} |
| 416 | ${filepath}= create_fake_doc | 461 | ${filepath}= create_fake_doc |
| 417 | ${bid_doc_upload}= Викликати для учасника ${provider1} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} | 462 | ${bid_doc_upload}= Викликати для учасника ${provider1} Завантажити документ в ставку ${filepath} ${TENDER['TENDER_UAID']} |
| @@ -422,9 +467,7 @@ ${question_id} 0 | @@ -422,9 +467,7 @@ ${question_id} 0 | ||
| 422 | ... provider1 | 467 | ... provider1 |
| 423 | ... ${USERS.users['${provider1}'].broker} | 468 | ... ${USERS.users['${provider1}'].broker} |
| 424 | Дочекатись дати закінчення прийому пропозицій ${provider1} | 469 | Дочекатись дати закінчення прийому пропозицій ${provider1} |
| 425 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.value} amount 50000 | ||
| 426 | - Log ${USERS.users['${provider1}'].bidresponses['resp'].data.value} | ||
| 427 | - ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 470 | + ${failfixbidto50000resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} value.amount 50000 |
| 428 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto50000resp ${failfixbidto50000resp} | 471 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto50000resp ${failfixbidto50000resp} |
| 429 | log ${failfixbidto50000resp} | 472 | log ${failfixbidto50000resp} |
| 430 | 473 | ||
| @@ -432,9 +475,7 @@ ${question_id} 0 | @@ -432,9 +475,7 @@ ${question_id} 0 | ||
| 432 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій | 475 | [Tags] ${USERS.users['${provider1}'].broker}: Неможливість змінити цінову пропозицію до 1 після закінчення прийому пропозицій |
| 433 | ... provider1 | 476 | ... provider1 |
| 434 | ... ${USERS.users['${provider1}'].broker} | 477 | ... ${USERS.users['${provider1}'].broker} |
| 435 | - Set To Dictionary ${USERS.users['${provider1}'].bidresponses['resp'].data.value} amount 1 | ||
| 436 | - Log ${USERS.users['${provider1}'].bidresponses['resp'].data.value} | ||
| 437 | - ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} ${USERS.users['${provider1}'].bidresponses['resp']} | 478 | + ${failfixbidto1resp}= Викликати для учасника ${provider1} Змінити цінову пропозицію shouldfail ${TENDER['TENDER_UAID']} value.amount 1 |
| 438 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} | 479 | Set To Dictionary ${USERS.users['${provider1}'].bidresponses} failfixbidto1resp ${failfixbidto1resp} |
| 439 | log ${failfixbidto1resp} | 480 | log ${failfixbidto1resp} |
| 440 | 481 | ||
| @@ -463,28 +504,30 @@ ${question_id} 0 | @@ -463,28 +504,30 @@ ${question_id} 0 | ||
| 463 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_modified_failed ${bid_doc_modified_failed} | 504 | Set To Dictionary ${USERS.users['${provider}'].bidresponses} bid_doc_modified_failed ${bid_doc_modified_failed} |
| 464 | 505 | ||
| 465 | Можливість вичитати посилання на аукціон для глядача | 506 | Можливість вичитати посилання на аукціон для глядача |
| 466 | - [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію | ||
| 467 | - ... viewer | ||
| 468 | - ... ${USERS.users['${viewer}'].broker} | ||
| 469 | - ... minimal | 507 | + [Tags] ${USERS.users['${viewer}'].broker}: Можливість подати цінову пропозицію |
| 508 | + ... viewer | ||
| 509 | + ... ${USERS.users['${viewer}'].broker} | ||
| 510 | + ... minimal | ||
| 511 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 470 | Дочекатись дати закінчення прийому пропозицій ${viewer} | 512 | Дочекатись дати закінчення прийому пропозицій ${viewer} |
| 471 | - Дочекатись синхронізації з майданчиком ${viewer} | ||
| 472 | Sleep 120 | 513 | Sleep 120 |
| 473 | ${url}= Викликати для учасника ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} | 514 | ${url}= Викликати для учасника ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} |
| 474 | Log URL аукціону для глядача: ${url} | 515 | Log URL аукціону для глядача: ${url} |
| 475 | 516 | ||
| 476 | Можливість вичитати посилання на участь в аукціоні для першого учасника | 517 | Можливість вичитати посилання на участь в аукціоні для першого учасника |
| 477 | - [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію | ||
| 478 | - ... provider | ||
| 479 | - ... ${USERS.users['${provider}'].broker} | ||
| 480 | - ... minimal | 518 | + [Tags] ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію |
| 519 | + ... provider | ||
| 520 | + ... ${USERS.users['${provider}'].broker} | ||
| 521 | + ... minimal | ||
| 522 | + [Setup] Дочекатись синхронізації з майданчиком ${provider} | ||
| 481 | ${url}= Викликати для учасника ${provider} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} | 523 | ${url}= Викликати для учасника ${provider} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} |
| 482 | Log URL аукціону для першого учасника: ${url} | 524 | Log URL аукціону для першого учасника: ${url} |
| 483 | 525 | ||
| 484 | Можливість вичитати посилання на участь в аукціоні для другого учасника | 526 | Можливість вичитати посилання на участь в аукціоні для другого учасника |
| 485 | - [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію | ||
| 486 | - ... provider1 | ||
| 487 | - ... ${USERS.users['${provider1}'].broker} | ||
| 488 | - ... minimal | 527 | + [Tags] ${USERS.users['${provider1}'].broker}: Можливість подати цінову пропозицію |
| 528 | + ... provider1 | ||
| 529 | + ... ${USERS.users['${provider1}'].broker} | ||
| 530 | + ... minimal | ||
| 531 | + [Setup] Дочекатись синхронізації з майданчиком ${provider1} | ||
| 489 | ${url}= Викликати для учасника ${provider1} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} | 532 | ${url}= Викликати для учасника ${provider1} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} |
| 490 | Log URL аукціону для другого учасника: ${url} | 533 | Log URL аукціону для другого учасника: ${url} |
| @@ -6,8 +6,8 @@ Library Selenium2Library | @@ -6,8 +6,8 @@ Library Selenium2Library | ||
| 6 | Library DebugLibrary | 6 | Library DebugLibrary |
| 7 | Resource keywords.robot | 7 | Resource keywords.robot |
| 8 | Resource resource.robot | 8 | Resource resource.robot |
| 9 | -Suite Setup TestSuiteSetup | ||
| 10 | -Suite Teardown Close all browsers | 9 | +Suite Setup Test Suite Setup |
| 10 | +Suite Teardown Test Suite Teardown | ||
| 11 | 11 | ||
| 12 | *** Variables *** | 12 | *** Variables *** |
| 13 | ${mode} single | 13 | ${mode} single |
| @@ -20,7 +20,7 @@ ${broker} Quinta | @@ -20,7 +20,7 @@ ${broker} Quinta | ||
| 20 | ... tender_owner | 20 | ... tender_owner |
| 21 | ... ${USERS.users['${tender_owner}'].broker} | 21 | ... ${USERS.users['${tender_owner}'].broker} |
| 22 | ... from-0.12 | 22 | ... from-0.12 |
| 23 | - ${tender_data}= Підготовка початкових даних | 23 | + ${tender_data}= Підготовка даних для створення тендера |
| 24 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} | 24 | ${TENDER_UAID}= Викликати для учасника ${tender_owner} |
| 25 | ... Створити тендер | 25 | ... Створити тендер |
| 26 | ... ${tender_data} | 26 | ... ${tender_data} |
| @@ -58,7 +58,7 @@ ${broker} Quinta | @@ -58,7 +58,7 @@ ${broker} Quinta | ||
| 58 | ... ${USERS.users['${provider}'].broker} | 58 | ... ${USERS.users['${provider}'].broker} |
| 59 | ... from-0.12 | 59 | ... from-0.12 |
| 60 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 60 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
| 61 | - ${claim}= test_claim_data | 61 | + ${claim}= Підготовка даних для подання вимоги |
| 62 | ${claim_resp}= Викликати для учасника ${provider} | 62 | ${claim_resp}= Викликати для учасника ${provider} |
| 63 | ... Створити вимогу | 63 | ... Створити вимогу |
| 64 | ... ${TENDER['TENDER_UAID']} | 64 | ... ${TENDER['TENDER_UAID']} |
| @@ -358,7 +358,7 @@ ${broker} Quinta | @@ -358,7 +358,7 @@ ${broker} Quinta | ||
| 358 | ... provider | 358 | ... provider |
| 359 | ... ${USERS.users['${provider}'].broker} | 359 | ... ${USERS.users['${provider}'].broker} |
| 360 | ... from-0.12 | 360 | ... from-0.12 |
| 361 | - ${claim}= test_claim_data | 361 | + ${claim}= Підготовка даних для подання вимоги |
| 362 | ${claim_resp}= Викликати для учасника ${provider} | 362 | ${claim_resp}= Викликати для учасника ${provider} |
| 363 | ... Створити вимогу | 363 | ... Створити вимогу |
| 364 | ... ${TENDER['TENDER_UAID']} | 364 | ... ${TENDER['TENDER_UAID']} |
| @@ -436,7 +436,7 @@ ${broker} Quinta | @@ -436,7 +436,7 @@ ${broker} Quinta | ||
| 436 | ... provider | 436 | ... provider |
| 437 | ... ${USERS.users['${provider}'].broker} | 437 | ... ${USERS.users['${provider}'].broker} |
| 438 | ... from-0.12 | 438 | ... from-0.12 |
| 439 | - ${claim}= test_claim_data | 439 | + ${claim}= Підготовка даних для подання вимоги |
| 440 | ${claim_resp}= Викликати для учасника ${provider} | 440 | ${claim_resp}= Викликати для учасника ${provider} |
| 441 | ... Створити вимогу | 441 | ... Створити вимогу |
| 442 | ... ${TENDER['TENDER_UAID']} | 442 | ... ${TENDER['TENDER_UAID']} |
| @@ -503,7 +503,7 @@ ${broker} Quinta | @@ -503,7 +503,7 @@ ${broker} Quinta | ||
| 503 | ... provider | 503 | ... provider |
| 504 | ... ${USERS.users['${provider}'].broker} | 504 | ... ${USERS.users['${provider}'].broker} |
| 505 | ... from-0.12 | 505 | ... from-0.12 |
| 506 | - ${claim}= test_claim_data | 506 | + ${claim}= Підготовка даних для подання вимоги |
| 507 | ${claim_resp}= Викликати для учасника ${provider} | 507 | ${claim_resp}= Викликати для учасника ${provider} |
| 508 | ... Створити вимогу | 508 | ... Створити вимогу |
| 509 | ... ${TENDER['TENDER_UAID']} | 509 | ... ${TENDER['TENDER_UAID']} |
| @@ -580,7 +580,7 @@ ${broker} Quinta | @@ -580,7 +580,7 @@ ${broker} Quinta | ||
| 580 | ... provider | 580 | ... provider |
| 581 | ... ${USERS.users['${provider}'].broker} | 581 | ... ${USERS.users['${provider}'].broker} |
| 582 | ... from-0.12 | 582 | ... from-0.12 |
| 583 | - ${claim}= test_claim_data | 583 | + ${claim}= Підготовка даних для подання вимоги |
| 584 | ${claim_resp}= Викликати для учасника ${provider} | 584 | ${claim_resp}= Викликати для учасника ${provider} |
| 585 | ... Створити вимогу | 585 | ... Створити вимогу |
| 586 | ... ${TENDER['TENDER_UAID']} | 586 | ... ${TENDER['TENDER_UAID']} |
Please
register
or
login
to post a comment