Showing
11 changed files
with
321 additions
and
62 deletions
| @@ -19,6 +19,7 @@ eggs = | @@ -19,6 +19,7 @@ eggs = | ||
| 19 | robotframework-debuglibrary | 19 | robotframework-debuglibrary |
| 20 | robot_tests.broker.alltenders | 20 | robot_tests.broker.alltenders |
| 21 | robot_tests.broker.dzo | 21 | robot_tests.broker.dzo |
| 22 | + robot_tests.broker.25h8 | ||
| 22 | robot_tests.broker.ztv | 23 | robot_tests.broker.ztv |
| 23 | robot_tests.broker.etender | 24 | robot_tests.broker.etender |
| 24 | robot_tests.broker.newtend | 25 | robot_tests.broker.newtend |
| @@ -33,6 +34,8 @@ eggs = | @@ -33,6 +34,8 @@ eggs = | ||
| 33 | robot_tests.broker.proztorg | 34 | robot_tests.broker.proztorg |
| 34 | robot_tests.broker.uub | 35 | robot_tests.broker.uub |
| 35 | robot_tests.broker.aps | 36 | robot_tests.broker.aps |
| 37 | + robot_tests.broker.kapitalist | ||
| 38 | + robot_tests.broker.pzo | ||
| 36 | 39 | ||
| 37 | interpreter = python_interpreter | 40 | interpreter = python_interpreter |
| 38 | # The following piece of code changes the default output format of Munch | 41 | # The following piece of code changes the default output format of Munch |
| @@ -57,6 +60,7 @@ barbecue = git ${remotes:gh}openprocurement/barbecue.git | @@ -57,6 +60,7 @@ barbecue = git ${remotes:gh}openprocurement/barbecue.git | ||
| 57 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git | 60 | openprocurement_client = git ${remotes:gh}openprocurement/openprocurement.client.python.git |
| 58 | robot_tests.broker.alltenders = git ${remotes:gh}openprocurement/robot_tests.broker.alltenders.git | 61 | robot_tests.broker.alltenders = git ${remotes:gh}openprocurement/robot_tests.broker.alltenders.git |
| 59 | robot_tests.broker.dzo = git ${remotes:gh}openprocurement/robot_tests.broker.dzo.git | 62 | robot_tests.broker.dzo = git ${remotes:gh}openprocurement/robot_tests.broker.dzo.git |
| 63 | +robot_tests.broker.25h8 = git ${remotes:gh}openprocurement/robot_tests.broker.25h8.git | ||
| 60 | robot_tests.broker.ztv = git ${remotes:gh}openprocurement/robot_tests.broker.ztv.git | 64 | robot_tests.broker.ztv = git ${remotes:gh}openprocurement/robot_tests.broker.ztv.git |
| 61 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git | 65 | robot_tests.broker.etender = git ${remotes:gh}openprocurement/robot_tests.broker.etender.git |
| 62 | robot_tests.broker.newtend = git ${remotes:gh}openprocurement/robot_tests.broker.newtend.git | 66 | robot_tests.broker.newtend = git ${remotes:gh}openprocurement/robot_tests.broker.newtend.git |
| @@ -71,6 +75,8 @@ robot_tests.broker.zakpro = git ${remotes:gh}openprocurement/robot_tests.b | @@ -71,6 +75,8 @@ robot_tests.broker.zakpro = git ${remotes:gh}openprocurement/robot_tests.b | ||
| 71 | robot_tests.broker.proztorg = git ${remotes:gh}openprocurement/robot_tests.broker.proztorg.git | 75 | robot_tests.broker.proztorg = git ${remotes:gh}openprocurement/robot_tests.broker.proztorg.git |
| 72 | robot_tests.broker.uub = git ${remotes:gh}openprocurement/robot_tests.broker.uub.git | 76 | robot_tests.broker.uub = git ${remotes:gh}openprocurement/robot_tests.broker.uub.git |
| 73 | robot_tests.broker.aps = git ${remotes:gh}openprocurement/robot_tests.broker.aps.git | 77 | robot_tests.broker.aps = git ${remotes:gh}openprocurement/robot_tests.broker.aps.git |
| 78 | +robot_tests.broker.kapitalist = git ${remotes:gh}openprocurement/robot_tests.broker.kapitalist.git | ||
| 79 | +robot_tests.broker.pzo = git ${remotes:gh}openprocurement/robot_tests.broker.pzo.git | ||
| 74 | 80 | ||
| 75 | [versions] | 81 | [versions] |
| 76 | Faker = 0.7.7 | 82 | Faker = 0.7.7 |
| @@ -25,6 +25,17 @@ Resource resource.robot | @@ -25,6 +25,17 @@ Resource resource.robot | ||
| 25 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | 25 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
| 26 | 26 | ||
| 27 | 27 | ||
| 28 | +Можливість перевірити завантаження документів через Document Service | ||
| 29 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 30 | + \ ${status}= Run Keyword And Return Status List Should Contain Value ${USERS.users['${username}'].tender_data.data} documents | ||
| 31 | + \ Run Keyword If ${status} Exit For Loop | ||
| 32 | + ${documents}= Get From Dictionary ${USERS.users['${username}'].tender_data.data} documents | ||
| 33 | + ${doc_number}= Get Length ${documents} | ||
| 34 | + :FOR ${doc_index} IN RANGE ${doc_number} | ||
| 35 | + \ ${document_url}= Get From Dictionary ${USERS.users['${username}'].tender_data.data.documents[${doc_index}]} url | ||
| 36 | + \ Should Match Regexp ${document_url} ^https?:\/\/public.docs(?:-sandbox)?\.openprocurement\.org\/get\/([0-9A-Fa-f]{32}) msg=Not a Document Service Upload | ||
| 37 | + | ||
| 38 | + | ||
| 28 | Можливість знайти тендер по ідентифікатору для усіх користувачів | 39 | Можливість знайти тендер по ідентифікатору для усіх користувачів |
| 29 | :FOR ${username} IN ${tender_owner} ${provider} ${provider1} ${viewer} | 40 | :FOR ${username} IN ${tender_owner} ${provider} ${provider1} ${viewer} |
| 30 | \ Можливість знайти тендер по ідентифікатору для користувача ${username} | 41 | \ Можливість знайти тендер по ідентифікатору для користувача ${username} |
| @@ -9,16 +9,16 @@ ${MODE} belowThreshold | @@ -9,16 +9,16 @@ ${MODE} belowThreshold | ||
| 9 | 9 | ||
| 10 | ${NUMBER_OF_ITEMS} ${1} | 10 | ${NUMBER_OF_ITEMS} ${1} |
| 11 | ${NUMBER_OF_LOTS} ${1} | 11 | ${NUMBER_OF_LOTS} ${1} |
| 12 | -${TENDER_MEAT} ${1} | ||
| 13 | -${ITEM_MEAT} ${1} | ||
| 14 | -${LOT_MEAT} ${1} | 12 | +${TENDER_MEAT} ${0} |
| 13 | +${ITEM_MEAT} ${0} | ||
| 14 | +${LOT_MEAT} ${0} | ||
| 15 | ${lot_index} ${0} | 15 | ${lot_index} ${0} |
| 16 | ${award_index} ${0} | 16 | ${award_index} ${0} |
| 17 | 17 | ||
| 18 | *** Test Cases *** | 18 | *** Test Cases *** |
| 19 | 19 | ||
| 20 | ############################################################################################## | 20 | ############################################################################################## |
| 21 | -# CREATE AND FIND TENDER | 21 | +# CREATE AND FIND TENDER LOT VIEW |
| 22 | ############################################################################################## | 22 | ############################################################################################## |
| 23 | 23 | ||
| 24 | Можливість оголосити однопредметний тендер | 24 | Можливість оголосити однопредметний тендер |
| @@ -42,6 +42,16 @@ ${award_index} ${0} | @@ -42,6 +42,16 @@ ${award_index} ${0} | ||
| 42 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} | 42 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} |
| 43 | Можливість знайти тендер по ідентифікатору для усіх користувачів | 43 | Можливість знайти тендер по ідентифікатору для усіх користувачів |
| 44 | 44 | ||
| 45 | + | ||
| 46 | +Відображення заголовку лотів | ||
| 47 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення лоту тендера | ||
| 48 | + ... viewer tender_owner provider provider1 | ||
| 49 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 50 | + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} | ||
| 51 | + ... lot_view level1 | ||
| 52 | + ... critical | ||
| 53 | + Звірити відображення поля title усіх лотів для усіх користувачів | ||
| 54 | + | ||
| 45 | ############################################################################################## | 55 | ############################################################################################## |
| 46 | # CREATE, ANSWER AND CONFIRM CLAIM | 56 | # CREATE, ANSWER AND CONFIRM CLAIM |
| 47 | ############################################################################################## | 57 | ############################################################################################## |
| @@ -175,16 +185,6 @@ ${award_index} ${0} | @@ -175,16 +185,6 @@ ${award_index} ${0} | ||
| 175 | Можливість створити вимогу про виправлення умов ${lot_index} лоту із документацією | 185 | Можливість створити вимогу про виправлення умов ${lot_index} лоту із документацією |
| 176 | 186 | ||
| 177 | 187 | ||
| 178 | -Відображення стосунку вимоги до лоту | ||
| 179 | - [Tags] ${USERS.users['${viewer}'].broker}: Відображення оскарження | ||
| 180 | - ... viewer | ||
| 181 | - ... ${USERS.users['${viewer}'].broker} | ||
| 182 | - ... lot_complaint | ||
| 183 | - ... non-critical | ||
| 184 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 185 | - Звірити відображення поля relatedLot вимоги про виправлення умов ${lot_index} лоту із ${USERS.users['${provider}'].lot_claim_data.claim.data.relatedLot} для користувача ${viewer} | ||
| 186 | - | ||
| 187 | - | ||
| 188 | Можливість відповісти на вимогу про виправлення умов лоту | 188 | Можливість відповісти на вимогу про виправлення умов лоту |
| 189 | [Tags] ${USERS.users['${tender_owner}'].broker}: Процес оскарження | 189 | [Tags] ${USERS.users['${tender_owner}'].broker}: Процес оскарження |
| 190 | ... tender_owner | 190 | ... tender_owner |
| @@ -448,6 +448,19 @@ ${award_index} ${0} | @@ -448,6 +448,19 @@ ${award_index} ${0} | ||
| 448 | Дочекатись дати початку періоду кваліфікації ${provider1} ${TENDER['TENDER_UAID']} | 448 | Дочекатись дати початку періоду кваліфікації ${provider1} ${TENDER['TENDER_UAID']} |
| 449 | 449 | ||
| 450 | 450 | ||
| 451 | +Можливість підтвердити учасника | ||
| 452 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Процес кваліфікації | ||
| 453 | + ... tender_owner | ||
| 454 | + ... ${USERS.users['${tender_owner}'].broker} | ||
| 455 | + ... qualification_approve_first_award level1 | ||
| 456 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | ||
| 457 | + [Teardown] Оновити LAST_MODIFICATION_DATE | ||
| 458 | + ${file_path} ${file_name} ${file_content}= create_fake_doc | ||
| 459 | + Run As ${tender_owner} Завантажити документ рішення кваліфікаційної комісії ${file_path} ${TENDER['TENDER_UAID']} 0 | ||
| 460 | + Run As ${tender_owner} Підтвердити постачальника ${TENDER['TENDER_UAID']} 0 | ||
| 461 | + Remove File ${file_path} | ||
| 462 | + | ||
| 463 | + | ||
| 451 | Можливість створити вимогу про виправлення визначення переможця, додати до неї документацію і подати її користувачем | 464 | Можливість створити вимогу про виправлення визначення переможця, додати до неї документацію і подати її користувачем |
| 452 | [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження | 465 | [Tags] ${USERS.users['${provider}'].broker}: Процес оскарження |
| 453 | ... provider | 466 | ... provider |
| @@ -89,6 +89,60 @@ DZO: | @@ -89,6 +89,60 @@ DZO: | ||
| 89 | provider1: DZO_Provider1 | 89 | provider1: DZO_Provider1 |
| 90 | viewer: DZO_Viewer | 90 | viewer: DZO_Viewer |
| 91 | timeout_on_wait: 300 | 91 | timeout_on_wait: 300 |
| 92 | +b25h8: | ||
| 93 | + intervals: | ||
| 94 | + default: | ||
| 95 | + accelerator: 720 | ||
| 96 | + enquiry: [0, 50] | ||
| 97 | + tender: [0, 15] | ||
| 98 | + belowThreshold: | ||
| 99 | + accelerator: 60 | ||
| 100 | + enquiry: [0, 60] | ||
| 101 | + tender: [0, 15] | ||
| 102 | + openua: | ||
| 103 | + accelerator: 720 | ||
| 104 | + tender: [0, 70] | ||
| 105 | + openeu: | ||
| 106 | + accelerator: 720 | ||
| 107 | + tender: [0, 61] | ||
| 108 | + negotiation: | ||
| 109 | + accelerator: 720 | ||
| 110 | + enquiry: [0, 20] | ||
| 111 | + tender: [0, 20] | ||
| 112 | + keywords_file: 25h8 | ||
| 113 | + roles: | ||
| 114 | + tender_owner: u25h8_Owner | ||
| 115 | + provider: u25h8_Provider | ||
| 116 | + provider1: u25h8_Provider1 | ||
| 117 | + viewer: u25h8_Viewer | ||
| 118 | + timeout_on_wait: 180 | ||
| 119 | +tenderonline: | ||
| 120 | + intervals: | ||
| 121 | + default: | ||
| 122 | + accelerator: 720 | ||
| 123 | + enquiry: [0, 50] | ||
| 124 | + tender: [0, 15] | ||
| 125 | + belowThreshold: | ||
| 126 | + accelerator: 60 | ||
| 127 | + enquiry: [0, 60] | ||
| 128 | + tender: [0, 15] | ||
| 129 | + openua: | ||
| 130 | + accelerator: 720 | ||
| 131 | + tender: [0, 70] | ||
| 132 | + openeu: | ||
| 133 | + accelerator: 720 | ||
| 134 | + tender: [0, 62] | ||
| 135 | + negotiation: | ||
| 136 | + accelerator: 720 | ||
| 137 | + enquiry: [0, 20] | ||
| 138 | + tender: [0, 20] | ||
| 139 | + keywords_file: tenderonline | ||
| 140 | + roles: | ||
| 141 | + tender_owner: tenderonline_Owner | ||
| 142 | + provider: tenderonline_Provider | ||
| 143 | + provider1: tenderonline_Provider1 | ||
| 144 | + viewer: tenderonline_Viewer | ||
| 145 | + timeout_on_wait: 180 | ||
| 92 | ztv: | 146 | ztv: |
| 93 | intervals: | 147 | intervals: |
| 94 | default: | 148 | default: |
| @@ -111,12 +165,12 @@ Newtend: | @@ -111,12 +165,12 @@ Newtend: | ||
| 111 | PrivatMarket: | 165 | PrivatMarket: |
| 112 | intervals: | 166 | intervals: |
| 113 | default: | 167 | default: |
| 114 | - enquiry: [0, 15] | ||
| 115 | - tender: [0, 15] | 168 | + enquiry: [0, 18] |
| 169 | + tender: [0, 18] | ||
| 116 | keywords_file: privatmarket | 170 | keywords_file: privatmarket |
| 117 | roles: | 171 | roles: |
| 118 | provider: PrivatMarket_Provider | 172 | provider: PrivatMarket_Provider |
| 119 | - provider1: PrivatMarket_Provider1 | 173 | + tender_owner: PrivatMarket_Owner |
| 120 | viewer: PrivatMarket_Viewer | 174 | viewer: PrivatMarket_Viewer |
| 121 | timeout_on_wait: 30 | 175 | timeout_on_wait: 30 |
| 122 | Prom: | 176 | Prom: |
| @@ -244,14 +298,19 @@ APStender: | @@ -244,14 +298,19 @@ APStender: | ||
| 244 | alltenders: | 298 | alltenders: |
| 245 | intervals: | 299 | intervals: |
| 246 | default: | 300 | default: |
| 301 | + accelerator: 1440 | ||
| 302 | + enquiry: [0, 15] | ||
| 303 | + tender: [0, 20] | ||
| 304 | + belowThreshold: | ||
| 305 | + accelerator: 1440 | ||
| 247 | enquiry: [0, 10] | 306 | enquiry: [0, 10] |
| 248 | - tender: [0, 30] | 307 | + tender: [0, 15] |
| 308 | + openua: | ||
| 309 | + accelerator: 1440 | ||
| 310 | + tender: [0, 20] | ||
| 249 | openeu: | 311 | openeu: |
| 250 | - accelerator: 3600 | ||
| 251 | - tender: [1, 14] | ||
| 252 | - single: | ||
| 253 | - enquiry: [0, 7] | ||
| 254 | - tender: [0, 9] | 312 | + accelerator: 1440 |
| 313 | + tender: [0, 30] | ||
| 255 | keywords_file: alltenders | 314 | keywords_file: alltenders |
| 256 | homepage: 'https://prozorro.shadowy.eu/?mode=test¬ification=off' | 315 | homepage: 'https://prozorro.shadowy.eu/?mode=test¬ification=off' |
| 257 | roles: | 316 | roles: |
| @@ -259,5 +318,42 @@ alltenders: | @@ -259,5 +318,42 @@ alltenders: | ||
| 259 | provider1: alltenders_Provider2 | 318 | provider1: alltenders_Provider2 |
| 260 | tender_owner: alltenders_Owner | 319 | tender_owner: alltenders_Owner |
| 261 | viewer: alltenders_Viewer | 320 | viewer: alltenders_Viewer |
| 262 | - timeout_on_wait: 70 | ||
| 263 | - | ||
| 321 | + timeout_on_wait: 65 | ||
| 322 | +Kapitalist: | ||
| 323 | + intervals: | ||
| 324 | + default: | ||
| 325 | + enquiry: [0, 15] | ||
| 326 | + tender: [0, 20] | ||
| 327 | + accelerator: 1440 | ||
| 328 | + keywords_file: kapitalist | ||
| 329 | + roles: | ||
| 330 | + tender_owner: kapitalist_Owner | ||
| 331 | + provider: kapitalist_Provider | ||
| 332 | + provider1: kapitalist_Provider1 | ||
| 333 | + viewer: kapitalist_Viewer | ||
| 334 | + timeout_on_wait: 80 | ||
| 335 | +pzo: | ||
| 336 | + intervals: | ||
| 337 | + default: | ||
| 338 | + enquiry: [0, 20] | ||
| 339 | + tender: [0, 20] | ||
| 340 | + accelerator: 1440 | ||
| 341 | + belowThreshold: | ||
| 342 | + enquiry: [0, 25] | ||
| 343 | + tender: [0, 25] | ||
| 344 | + accelerator: 180 | ||
| 345 | + openua: | ||
| 346 | + tender: [0, 25] | ||
| 347 | + accelerator: 1440 | ||
| 348 | + openeu: | ||
| 349 | + tender: [0, 25] | ||
| 350 | + accelerator: 1440 | ||
| 351 | + keywords_file: pzo | ||
| 352 | + homepage: 'http://dev.pzo.com.ua/tenders' | ||
| 353 | + syncpage: 'http://dev.pzo.com.ua/develop/sync?psw=369369' | ||
| 354 | + roles: | ||
| 355 | + provider: pzo_Provider1 | ||
| 356 | + provider1: pzo_Provider2 | ||
| 357 | + tender_owner: pzo_Owner | ||
| 358 | + viewer: pzo_Viewer | ||
| 359 | + timeout_on_wait: 1 |
| @@ -80,6 +80,66 @@ users: | @@ -80,6 +80,66 @@ users: | ||
| 80 | browser: firefox | 80 | browser: firefox |
| 81 | position: [0, 0] | 81 | position: [0, 0] |
| 82 | size: [1366, 800] | 82 | size: [1366, 800] |
| 83 | + u25h8_Owner: | ||
| 84 | + broker: b25h8 | ||
| 85 | + homepage: "http://25h8.byustudio.in.ua" | ||
| 86 | + login: prozorroytenderowner@gmail.com | ||
| 87 | + password: 123456 | ||
| 88 | + browser: firefox | ||
| 89 | + position: [0, 0] | ||
| 90 | + size: [1366, 800] | ||
| 91 | + u25h8_Provider: | ||
| 92 | + broker: b25h8 | ||
| 93 | + homepage: "http://25h8.byustudio.in.ua" | ||
| 94 | + login: prozorroyprovider1@gmail.com | ||
| 95 | + password: 123456 | ||
| 96 | + browser: firefox | ||
| 97 | + position: [0, 0] | ||
| 98 | + size: [1366, 800] | ||
| 99 | + u25h8_Provider1: | ||
| 100 | + broker: b25h8 | ||
| 101 | + homepage: "http://25h8.byustudio.in.ua" | ||
| 102 | + login: prozorroyprovider2@gmail.com | ||
| 103 | + password: 123456 | ||
| 104 | + browser: firefox | ||
| 105 | + position: [0, 0] | ||
| 106 | + size: [1366, 800] | ||
| 107 | + u25h8_Viewer: | ||
| 108 | + broker: b25h8 | ||
| 109 | + homepage: "http://25h8.byustudio.in.ua" | ||
| 110 | + browser: firefox | ||
| 111 | + position: [0, 0] | ||
| 112 | + size: [1366, 800] | ||
| 113 | + tenderonline_Owner: | ||
| 114 | + broker: tenderonline | ||
| 115 | + homepage: "http://tender-online.com.ua" | ||
| 116 | + login: prozorroytenderowner@gmail.com | ||
| 117 | + password: 123456 | ||
| 118 | + browser: firefox | ||
| 119 | + position: [0, 0] | ||
| 120 | + size: [1366, 800] | ||
| 121 | + tenderonline_Provider: | ||
| 122 | + broker: tenderonline | ||
| 123 | + homepage: "http://tender-online.com.ua" | ||
| 124 | + login: prozorroyprovider1@gmail.com | ||
| 125 | + password: 123456 | ||
| 126 | + browser: firefox | ||
| 127 | + position: [0, 0] | ||
| 128 | + size: [1366, 800] | ||
| 129 | + tenderonline_Provider1: | ||
| 130 | + broker: tenderonline | ||
| 131 | + homepage: "http://tender-online.com.ua" | ||
| 132 | + login: prozorroyprovider2@gmail.com | ||
| 133 | + password: 123456 | ||
| 134 | + browser: firefox | ||
| 135 | + position: [0, 0] | ||
| 136 | + size: [1366, 800] | ||
| 137 | + tenderonline_Viewer: | ||
| 138 | + broker: tenderonline | ||
| 139 | + homepage: "http://tender-online.com.ua" | ||
| 140 | + browser: firefox | ||
| 141 | + position: [0, 0] | ||
| 142 | + size: [1366, 800] | ||
| 83 | ztv_Owner: | 143 | ztv_Owner: |
| 84 | broker: ztv | 144 | broker: ztv |
| 85 | homepage: "http://ztv.byustudio.in.ua/web/" | 145 | homepage: "http://ztv.byustudio.in.ua/web/" |
| @@ -134,28 +194,31 @@ users: | @@ -134,28 +194,31 @@ users: | ||
| 134 | size: [800, 700] | 194 | size: [800, 700] |
| 135 | PrivatMarket_Viewer: | 195 | PrivatMarket_Viewer: |
| 136 | broker: PrivatMarket | 196 | broker: PrivatMarket |
| 137 | - homepage: "https://pmarket-rc-2.privatbank.ua/business/tenders" | 197 | + homepage: "https://rc.privatmarket.ua/business/tenders" |
| 198 | + email: pbecommercetest2@ukr.net | ||
| 199 | + login: 380270010001 | ||
| 200 | + password: password0001 | ||
| 138 | browser: chrome | 201 | browser: chrome |
| 139 | - position: [-1500, 0] | ||
| 140 | - size: [1000, 1000] | 202 | + position: [0, 0] |
| 203 | + size: [1920, 1080] | ||
| 141 | PrivatMarket_Provider: | 204 | PrivatMarket_Provider: |
| 142 | broker: PrivatMarket | 205 | broker: PrivatMarket |
| 143 | - homepage: "https://pmarket-rc-2.privatbank.ua/business/tenders" | 206 | + homepage: "https://rc.privatmarket.ua/business/tenders" |
| 144 | email: pbecommercetest2@ukr.net | 207 | email: pbecommercetest2@ukr.net |
| 145 | - login: +380639405094 | ||
| 146 | - password: password5094 | ||
| 147 | - browser: chrome | ||
| 148 | - position: [-1500, 0] | ||
| 149 | - size: [1000, 1000] | ||
| 150 | - PrivatMarket_Provider1: | 208 | + login: 380270010002 |
| 209 | + password: password0002 | ||
| 210 | + browser: firefox | ||
| 211 | + position: [0, 0] | ||
| 212 | + size: [1920, 1080] | ||
| 213 | + PrivatMarket_Owner: | ||
| 151 | broker: PrivatMarket | 214 | broker: PrivatMarket |
| 152 | - homepage: "https://pmarket-rc-2.privatbank.ua/business/tenders" | 215 | + homepage: "https://rc.privatmarket.ua/business/tenders" |
| 153 | email: pbecommercetest1@ukr.net | 216 | email: pbecommercetest1@ukr.net |
| 154 | - login: +380980704168 | ||
| 155 | - password: password4168 | ||
| 156 | - browser: chrome | ||
| 157 | - position: [-1500, 0] | ||
| 158 | - size: [1000, 1000] | 217 | + login: 380270010003 |
| 218 | + password: password0003 | ||
| 219 | + browser: firefox | ||
| 220 | + position: [0, 0] | ||
| 221 | + size: [1920, 1080] | ||
| 159 | Prom_Owner: | 222 | Prom_Owner: |
| 160 | broker: Prom | 223 | broker: Prom |
| 161 | homepage: "http://zakupki.dz-test.net/" | 224 | homepage: "http://zakupki.dz-test.net/" |
| @@ -449,4 +512,65 @@ users: | @@ -449,4 +512,65 @@ users: | ||
| 449 | browser: chrome | 512 | browser: chrome |
| 450 | position: [0, 0] | 513 | position: [0, 0] |
| 451 | size: [1210, 800] | 514 | size: [1210, 800] |
| 452 | - | 515 | + kapitalist_Owner: |
| 516 | + broker: Kapitalist | ||
| 517 | + homepage: "https://prozorro.kapital-ist.kiev.ua/" | ||
| 518 | + login: qa_test@binka.me | ||
| 519 | + password: Password1- | ||
| 520 | + browser: chrome | ||
| 521 | + position: [0, 0] | ||
| 522 | + size: [1366, 800] | ||
| 523 | + kapitalist_Provider: | ||
| 524 | + broker: Kapitalist | ||
| 525 | + homepage: "https://prozorro.kapital-ist.kiev.ua/" | ||
| 526 | + login: provider_user@binka.me | ||
| 527 | + password: Password1- | ||
| 528 | + browser: chrome | ||
| 529 | + position: [0, 0] | ||
| 530 | + size: [1366, 800] | ||
| 531 | + kapitalist_Provider1: | ||
| 532 | + broker: Kapitalist | ||
| 533 | + homepage: "https://prozorro.kapital-ist.kiev.ua/" | ||
| 534 | + login: provider1_user@binka.me | ||
| 535 | + password: Password1- | ||
| 536 | + browser: chrome | ||
| 537 | + position: [0, 0] | ||
| 538 | + size: [1366, 800] | ||
| 539 | + kapitalist_Viewer: | ||
| 540 | + broker: Kapitalist | ||
| 541 | + homepage: "https://prozorro.kapital-ist.kiev.ua/" | ||
| 542 | + browser: chrome | ||
| 543 | + position: [0, 0] | ||
| 544 | + size: [1366, 800] | ||
| 545 | + pzo_Owner: | ||
| 546 | + broker: pzo | ||
| 547 | + homepage: "http://dev.pzo.com.ua/user/tenders" | ||
| 548 | + login: slam_ua@mail.ru | ||
| 549 | + password: 'qwe123qwe' | ||
| 550 | + browser: chrome | ||
| 551 | + position: [0, 0] | ||
| 552 | + size: [1000, 500] | ||
| 553 | + pzo_Provider: | ||
| 554 | + broker: pzo | ||
| 555 | + homepage: "http://dev.pzo.com.ua/user/bids" | ||
| 556 | + login: nik.urgant@mail.ru | ||
| 557 | + password: 'qwe123qwe' | ||
| 558 | + browser: chrome | ||
| 559 | + position: [0, 0] | ||
| 560 | + size: [1000, 500] | ||
| 561 | + pzo_Provider1: | ||
| 562 | + broker: pzo | ||
| 563 | + homepage: "http://dev.pzo.com.ua/user/bids" | ||
| 564 | + login: maks.sotnikov.62@mail.ru | ||
| 565 | + password: 'qwe123qwe' | ||
| 566 | + browser: chrome | ||
| 567 | + position: [0, 0] | ||
| 568 | + size: [1000, 500] | ||
| 569 | + pzo_Viewer: | ||
| 570 | + broker: pzo | ||
| 571 | + homepage: "http://dev.pzo.com.ua/user/tenders" | ||
| 572 | + login: belitskiy.vadim@mail.ru | ||
| 573 | + password: 'qwe123qwe' | ||
| 574 | + browser: chrome | ||
| 575 | + position: [0, 0] | ||
| 576 | + size: [1000, 500] |
| @@ -9,7 +9,7 @@ from faker.providers.company.en_US import Provider as CompanyProviderEnUs | @@ -9,7 +9,7 @@ from faker.providers.company.en_US import Provider as CompanyProviderEnUs | ||
| 9 | from faker.providers.company.ru_RU import Provider as CompanyProviderRuRu | 9 | from faker.providers.company.ru_RU import Provider as CompanyProviderRuRu |
| 10 | from munch import munchify | 10 | from munch import munchify |
| 11 | from op_faker import OP_Provider | 11 | from op_faker import OP_Provider |
| 12 | -from .local_time import get_now | 12 | +from .local_time import get_now, TZ |
| 13 | 13 | ||
| 14 | 14 | ||
| 15 | fake_en = Factory.create(locale='en_US') | 15 | fake_en = Factory.create(locale='en_US') |
| @@ -107,7 +107,7 @@ def test_tender_data(params, | @@ -107,7 +107,7 @@ def test_tender_data(params, | ||
| 107 | period_dict[period_name + "Period"] = {} | 107 | period_dict[period_name + "Period"] = {} |
| 108 | for i, j in zip(range(2), ("start", "end")): | 108 | for i, j in zip(range(2), ("start", "end")): |
| 109 | inc_dt += timedelta(minutes=params['intervals'][period_name][i]) | 109 | inc_dt += timedelta(minutes=params['intervals'][period_name][i]) |
| 110 | - period_dict[period_name + "Period"][j + "Date"] = inc_dt.isoformat() | 110 | + period_dict[period_name + "Period"][j + "Date"] = inc_dt.astimezone(TZ).isoformat() |
| 111 | data.update(period_dict) | 111 | data.update(period_dict) |
| 112 | cpv_group = fake.cpv()[:4] | 112 | cpv_group = fake.cpv()[:4] |
| 113 | if params.get('number_of_lots'): | 113 | if params.get('number_of_lots'): |
| @@ -327,8 +327,8 @@ def test_item_data(cpv=None): | @@ -327,8 +327,8 @@ def test_item_data(cpv=None): | ||
| 327 | data["description_ru"] = field_with_id("i", data["description_ru"]) | 327 | data["description_ru"] = field_with_id("i", data["description_ru"]) |
| 328 | days = fake.random_int(min=1, max=30) | 328 | days = fake.random_int(min=1, max=30) |
| 329 | data["deliveryDate"] = { | 329 | data["deliveryDate"] = { |
| 330 | - "startDate": (get_now() + timedelta(days=days)).isoformat(), | ||
| 331 | - "endDate": (get_now() + timedelta(days=days)).isoformat() | 330 | + "startDate": (get_now() + timedelta(days=days)).astimezone(TZ).isoformat(), |
| 331 | + "endDate": (get_now() + timedelta(days=days)).astimezone(TZ).isoformat() | ||
| 332 | } | 332 | } |
| 333 | data["deliveryAddress"]["countryName_en"] = translate_country_en(data["deliveryAddress"]["countryName"]) | 333 | data["deliveryAddress"]["countryName_en"] = translate_country_en(data["deliveryAddress"]["countryName"]) |
| 334 | data["deliveryAddress"]["countryName_ru"] = translate_country_ru(data["deliveryAddress"]["countryName"]) | 334 | data["deliveryAddress"]["countryName_ru"] = translate_country_ru(data["deliveryAddress"]["countryName"]) |
| @@ -405,7 +405,7 @@ def test_tender_data_openeu(params, submissionMethodDetails): | @@ -405,7 +405,7 @@ def test_tender_data_openeu(params, submissionMethodDetails): | ||
| 405 | data['procuringEntity']['name_en'] = fake_en.name() | 405 | data['procuringEntity']['name_en'] = fake_en.name() |
| 406 | data['procuringEntity']['contactPoint']['name_en'] = fake_en.name() | 406 | data['procuringEntity']['contactPoint']['name_en'] = fake_en.name() |
| 407 | data['procuringEntity']['contactPoint']['availableLanguage'] = "en" | 407 | data['procuringEntity']['contactPoint']['availableLanguage'] = "en" |
| 408 | - data['procuringEntity']['identifier']['legalName_en'] = "Institution \"Vinnytsia City Council primary and secondary general school № 10\"" | 408 | + data['procuringEntity']['identifier']['legalName_en'] = u"Institution \"Vinnytsia City Council primary and secondary general school № 10\"" |
| 409 | data['procuringEntity']['kind'] = 'general' | 409 | data['procuringEntity']['kind'] = 'general' |
| 410 | return data | 410 | return data |
| 411 | 411 |
| @@ -674,6 +674,15 @@ ${ITEM_MEAT} ${False} | @@ -674,6 +674,15 @@ ${ITEM_MEAT} ${False} | ||
| 674 | Звірити відображення поля contracts[0].status тендера із pending для користувача ${viewer} | 674 | Звірити відображення поля contracts[0].status тендера із pending для користувача ${viewer} |
| 675 | 675 | ||
| 676 | 676 | ||
| 677 | +Відображення закінчення періоду подачі скарг на пропозицію | ||
| 678 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних тендера | ||
| 679 | + ... tender_owner viewer | ||
| 680 | + ... ${USERS.users['${tender_owner}'].broker} ${USERS.users['${viewer}'].broker} | ||
| 681 | + ... tender_view | ||
| 682 | + :FOR ${username} IN ${viewer} ${tender_owner} | ||
| 683 | + \ Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} awards[0].complaintPeriod.endDate | ||
| 684 | + | ||
| 685 | + | ||
| 677 | Можливість укласти угоду для переговорної процедури | 686 | Можливість укласти угоду для переговорної процедури |
| 678 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для процедури | 687 | [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість укласти угоду для процедури |
| 679 | ... ${tender_owner} | 688 | ... ${tender_owner} |
| @@ -2805,7 +2805,7 @@ | @@ -2805,7 +2805,7 @@ | ||
| 2805 | { | 2805 | { |
| 2806 | "scheme": "ДК003", | 2806 | "scheme": "ДК003", |
| 2807 | "id": "3475", | 2807 | "id": "3475", |
| 2808 | - "description": "Спортивні тренери, інструктори-методисти та професійні спортсмени" | 2808 | + "description": "Спортивні тренери, інструктори-методисти та професійні спортсмени" |
| 2809 | } | 2809 | } |
| 2810 | ], | 2810 | ], |
| 2811 | "classification": { | 2811 | "classification": { |
| @@ -1841,6 +1841,7 @@ ${ITEM_MEAT} ${True} | @@ -1841,6 +1841,7 @@ ${ITEM_MEAT} ${True} | ||
| 1841 | ... viewer | 1841 | ... viewer |
| 1842 | ... ${USERS.users['${viewer}'].broker} | 1842 | ... ${USERS.users['${viewer}'].broker} |
| 1843 | ... auction_url | 1843 | ... auction_url |
| 1844 | + ... critical | ||
| 1844 | [Setup] Дочекатись дати початку періоду аукціону ${viewer} ${TENDER['TENDER_UAID']} | 1845 | [Setup] Дочекатись дати початку періоду аукціону ${viewer} ${TENDER['TENDER_UAID']} |
| 1845 | Можливість отримати посилання на аукціон для глядача | 1846 | Можливість отримати посилання на аукціон для глядача |
| 1846 | 1847 | ||
| @@ -1850,6 +1851,7 @@ ${ITEM_MEAT} ${True} | @@ -1850,6 +1851,7 @@ ${ITEM_MEAT} ${True} | ||
| 1850 | ... provider | 1851 | ... provider |
| 1851 | ... ${USERS.users['${provider}'].broker} | 1852 | ... ${USERS.users['${provider}'].broker} |
| 1852 | ... auction_url | 1853 | ... auction_url |
| 1854 | + ... critical | ||
| 1853 | [Setup] Дочекатись синхронізації з майданчиком ${provider} | 1855 | [Setup] Дочекатись синхронізації з майданчиком ${provider} |
| 1854 | Можливість отримати посилання на аукціон для учасника ${provider} | 1856 | Можливість отримати посилання на аукціон для учасника ${provider} |
| 1855 | 1857 | ||
| @@ -1859,6 +1861,7 @@ ${ITEM_MEAT} ${True} | @@ -1859,6 +1861,7 @@ ${ITEM_MEAT} ${True} | ||
| 1859 | ... provider1 | 1861 | ... provider1 |
| 1860 | ... ${USERS.users['${provider1}'].broker} | 1862 | ... ${USERS.users['${provider1}'].broker} |
| 1861 | ... auction_url | 1863 | ... auction_url |
| 1864 | + ... critical | ||
| 1862 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} | 1865 | [Setup] Дочекатись синхронізації з майданчиком ${provider1} |
| 1863 | Можливість отримати посилання на аукціон для учасника ${provider1} | 1866 | Можливість отримати посилання на аукціон для учасника ${provider1} |
| 1864 | 1867 | ||
| @@ -2004,14 +2007,7 @@ ${ITEM_MEAT} ${True} | @@ -2004,14 +2007,7 @@ ${ITEM_MEAT} ${True} | ||
| 2004 | 2007 | ||
| 2005 | Перевірка завантаження документів до тендера через Document Service | 2008 | Перевірка завантаження документів до тендера через Document Service |
| 2006 | [Tags] ${USERS.users['${viewer}'].broker}: Document Service | 2009 | [Tags] ${USERS.users['${viewer}'].broker}: Document Service |
| 2007 | - ... viewer | ||
| 2008 | - ... ${USERS.users['${tender_owner}'].broker} | 2010 | + ... viewer tender_owner |
| 2011 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | ||
| 2009 | ... document_service | 2012 | ... document_service |
| 2010 | - [Setup] Дочекатись синхронізації з майданчиком ${viewer} | ||
| 2011 | - ${documents}= Get From Dictionary ${USERS.users['${tender_owner}'].tender_data.data} documents | ||
| 2012 | - ${doc_number}= Get Length ${documents} | ||
| 2013 | - Log ${documents} | ||
| 2014 | - :FOR ${doc_index} IN RANGE ${doc_number} | ||
| 2015 | - \ ${document_url}= Get From Dictionary ${documents[${doc_index}]} url | ||
| 2016 | - \ Should Match Regexp ${document_url} ^https?:\/\/public.docs(?:-sandbox)?\.openprocurement\.org\/get\/([0-9A-Fa-f]{32}) msg=Not a Document Service Upload | ||
| 2017 | - # Url pattern may differ, because document service is being developed | 2013 | + Можливість перевірити завантаження документів через Document Service |
| @@ -242,7 +242,9 @@ def compute_intrs(brokers_data, used_brokers): | @@ -242,7 +242,9 @@ def compute_intrs(brokers_data, used_brokers): | ||
| 242 | does not contain ``Default`` entry. | 242 | does not contain ``Default`` entry. |
| 243 | Using `load_data_from` with ``mode='brokers'`` is recommended. | 243 | Using `load_data_from` with ``mode='brokers'`` is recommended. |
| 244 | """ | 244 | """ |
| 245 | - def recur(l, r): | 245 | + keys_to_prefer_lesser = ('accelerator',) |
| 246 | + | ||
| 247 | + def recur(l, r, prefer_greater_numbers=True): | ||
| 246 | l, r = deepcopy(l), deepcopy(r) | 248 | l, r = deepcopy(l), deepcopy(r) |
| 247 | if isinstance(l, list) and isinstance(r, list) and len(l) == len(r): | 249 | if isinstance(l, list) and isinstance(r, list) and len(l) == len(r): |
| 248 | lst = [] | 250 | lst = [] |
| @@ -253,13 +255,15 @@ def compute_intrs(brokers_data, used_brokers): | @@ -253,13 +255,15 @@ def compute_intrs(brokers_data, used_brokers): | ||
| 253 | if l == r: | 255 | if l == r: |
| 254 | return l | 256 | return l |
| 255 | if l > r: | 257 | if l > r: |
| 256 | - return l | 258 | + return l if prefer_greater_numbers else r |
| 257 | if l < r: | 259 | if l < r: |
| 258 | - return r | 260 | + return r if prefer_greater_numbers else l |
| 259 | elif isinstance(l, dict) and isinstance(r, dict): | 261 | elif isinstance(l, dict) and isinstance(r, dict): |
| 260 | for k, v in r.iteritems(): | 262 | for k, v in r.iteritems(): |
| 261 | if k not in l.keys(): | 263 | if k not in l.keys(): |
| 262 | l[k] = v | 264 | l[k] = v |
| 265 | + elif k in keys_to_prefer_lesser: | ||
| 266 | + l[k] = recur(l[k], v, prefer_greater_numbers=False) | ||
| 263 | else: | 267 | else: |
| 264 | l[k] = recur(l[k], v) | 268 | l[k] = recur(l[k], v) |
| 265 | return l | 269 | return l |
Please
register
or
login
to post a comment