Commit 2f16f03cb686c23e7debcfbf6f211974ea8f1136
Merge branch 'master' of https://github.com/ProzorroUKR/robot_tests into feature/pq
Showing
7 changed files
with
174 additions
and
8 deletions
... | ... | @@ -2127,6 +2127,21 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status |
2127 | 2127 | Remove File ${file_path} |
2128 | 2128 | |
2129 | 2129 | |
2130 | +Можливість завантажити обгрунтування аномально низької ціни до пропозиції учасником | |
2131 | + [Arguments] ${username} ${doc_name} ${doc_type}=${NONE} | |
2132 | + ${file_path} ${file_name} ${file_content}= create_fake_doc | |
2133 | + ${doc_id}= get_id_from_string ${file_name} | |
2134 | + ${bid_document_data}= Create Dictionary | |
2135 | + ... doc_name=${file_name} | |
2136 | + ... doc_content=${file_content} | |
2137 | + ... doc_id=${doc_id} | |
2138 | + Run As ${username} Завантажити документ в ставку обгрунтування аномально низької ціни ${file_path} ${TENDER['TENDER_UAID']} ${doc_name} ${doc_type} | |
2139 | + Set To Dictionary ${USERS.users['${username}']} bid_document=${bid_document_data} | |
2140 | + #Set To Dictionary ${USERS.users['${username}']} bidresponses=${bid_doc_upload} | |
2141 | + #Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} | |
2142 | + Remove File ${file_path} | |
2143 | + | |
2144 | + | |
2130 | 2145 | Можливість змінити документацію цінової пропозиції користувачем ${username} |
2131 | 2146 | ${file_path} ${file_name} ${file_content}= create_fake_doc |
2132 | 2147 | ${doc_id}= get_id_from_string ${file_name} |
... | ... | @@ -2150,6 +2165,18 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status |
2150 | 2165 | Set To Dictionary ${USERS.users['${username}']} bid_document_modified=${bid_document_modified_data} |
2151 | 2166 | Remove File ${file_path} |
2152 | 2167 | |
2168 | + | |
2169 | +Можливість змінити документацію обгрунтування аномально низької ціни користувачем ${username} | |
2170 | + ${file_path} ${file_name} ${file_content}= create_fake_doc | |
2171 | + ${doc_id}= get_id_from_string ${file_name} | |
2172 | + ${bid_document_modified_data}= Create Dictionary | |
2173 | + ... doc_name=${file_name} | |
2174 | + ... doc_content=${file_content} | |
2175 | + ... doc_id=${doc_id} | |
2176 | + Run As ${username} Змінити документ в ставці при обгрунтуванні аномально низької ціни ${TENDER['TENDER_UAID']} ${file_path} ${USERS.users['${username}']['bid_document']['doc_id']} | |
2177 | + Set To Dictionary ${USERS.users['${username}']} bid_document_modified=${bid_document_modified_data} | |
2178 | + Remove File ${file_path} | |
2179 | + | |
2153 | 2180 | ############################################################################################## |
2154 | 2181 | # Cancellations |
2155 | 2182 | ############################################################################################## | ... | ... |
... | ... | @@ -1688,6 +1688,25 @@ Library openprocurement_client.utils |
1688 | 1688 | [Return] ${uploaded_file} |
1689 | 1689 | |
1690 | 1690 | |
1691 | +Завантажити документ в ставку обгрунтування аномально низької ціни | |
1692 | + [Arguments] ${username} ${path} ${tender_uaid} ${doc_name}=documents ${doc_type}=${None} | |
1693 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | |
1694 | + ${bid_id}= set variable ${tender.data.awards[0].bid_id} | |
1695 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}']['access_token']} | |
1696 | + ${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document | |
1697 | + ... ${path} | |
1698 | + ... ${tender.data.id} | |
1699 | + ... ${bid_id} | |
1700 | + ... doc_type=${doc_type} | |
1701 | + ... access_token=${tender.access.token} | |
1702 | + ... subitem_name=${doc_name} | |
1703 | + ${uploaded_file} = Create Dictionary | |
1704 | + ... filepath=${path} | |
1705 | + ... upload_response=${response} | |
1706 | + Log object data ${uploaded_file} | |
1707 | + [Return] ${uploaded_file} | |
1708 | + | |
1709 | + | |
1691 | 1710 | Змінити документ в ставці |
1692 | 1711 | [Arguments] ${username} ${tender_uaid} ${path} ${doc_id} ${doc_type}=documents |
1693 | 1712 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id} |
... | ... | @@ -1728,6 +1747,26 @@ Library openprocurement_client.utils |
1728 | 1747 | [Return] ${uploaded_file} |
1729 | 1748 | |
1730 | 1749 | |
1750 | +Змінити документ в ставці при обгрунтуванні аномально низької ціни | |
1751 | + [Arguments] ${username} ${tender_uaid} ${path} ${doc_id} ${doc_type}=documents | |
1752 | + ${bid_id}= openprocurement_client.Отримати інформацію із пропозиції ${username} ${tender_uaid} id | |
1753 | + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} | |
1754 | + ${tender}= set_access_key ${tender} ${USERS.users['${username}']['access_token']} | |
1755 | + ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} | |
1756 | + ${bid_doc}= get_document_by_id ${bid.data} ${doc_id} | |
1757 | + ${response}= Call Method ${USERS.users['${username}'].client} update_bid_document | |
1758 | + ... ${path} | |
1759 | + ... ${tender.data.id} | |
1760 | + ... ${bid_id} | |
1761 | + ... ${bid_doc['id']} | |
1762 | + ... access_token=${tender.access.token} | |
1763 | + ${uploaded_file} = Create Dictionary | |
1764 | + ... filepath=${path} | |
1765 | + ... upload_response=${response} | |
1766 | + Log object data ${uploaded_file} | |
1767 | + [Return] ${uploaded_file} | |
1768 | + | |
1769 | + | |
1731 | 1770 | Змінити документацію в ставці |
1732 | 1771 | [Arguments] ${username} ${tender_uaid} ${doc_data} ${doc_id} |
1733 | 1772 | ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id} | ... | ... |
... | ... | @@ -303,11 +303,19 @@ def test_tender_data_planning(params): |
303 | 303 | } |
304 | 304 | }, |
305 | 305 | "procuringEntity": { |
306 | + #"kind": "general", | |
306 | 307 | "identifier": { |
307 | 308 | "scheme": "UA-EDR", |
308 | 309 | "id": random.choice(["13313462", "00037256"]), |
309 | 310 | "legalName": random.choice([u"Київський Тестовий Ліцей", u"Київська Тестова міська клінічна лікарня"]), |
310 | 311 | }, |
312 | + "address": { | |
313 | + "countryName": "Україна", | |
314 | + "postalCode": "01220", | |
315 | + "region": "м. Київ", | |
316 | + "streetAddress": "вул. Банкова, 11, корпус 1", | |
317 | + "locality": "м. Київ" | |
318 | + } | |
311 | 319 | }, |
312 | 320 | "tender": { |
313 | 321 | "procurementMethod": "", |
... | ... | @@ -321,6 +329,12 @@ def test_tender_data_planning(params): |
321 | 329 | "buyers": [] |
322 | 330 | } |
323 | 331 | data["procuringEntity"]["name"] = data["procuringEntity"]["identifier"]["legalName"] |
332 | + if params.get("mode") == "aboveThresholdUA.defense": | |
333 | + data["procuringEntity"]["kind"] = "defense" | |
334 | + elif params.get("mode") in ["belowThreshold", "reporting"]: | |
335 | + data["procuringEntity"]["kind"] = "other" | |
336 | + else: | |
337 | + data["procuringEntity"]["kind"] = random.choice(["general", "special", "central", "authority", "social"]) | |
324 | 338 | buyers = test_buyers_data() |
325 | 339 | buyers["name"] = buyers["identifier"]["legalName"] |
326 | 340 | data['buyers'].append(buyers) |
... | ... | @@ -377,22 +391,46 @@ def test_tender_data_limited(params, plan_data): |
377 | 391 | data.update({"procurementMethodType": params['mode'], "procurementMethod": "limited"}) |
378 | 392 | if params['mode'] == "negotiation": |
379 | 393 | cause_variants = ( |
380 | - "artContestIP", | |
381 | - "noCompetition", | |
394 | + "resolvingInsolvency", | |
395 | + "artPurchase", | |
396 | + "contestWinner", | |
397 | + "technicalReasons", | |
398 | + "intProperty", | |
399 | + "lastHope", | |
382 | 400 | "twiceUnsuccessful", |
383 | 401 | "additionalPurchase", |
384 | 402 | "additionalConstruction", |
385 | 403 | "stateLegalServices" |
386 | 404 | ) |
387 | 405 | cause = fake.random_element(cause_variants) |
406 | + data.update({ | |
407 | + "cause": cause, | |
408 | + "causeDescription": fake.description() | |
409 | + }) | |
388 | 410 | elif params['mode'] == "negotiation.quick": |
389 | - cause_variants = ('quick',) | |
390 | - if params['mode'] in ("negotiation", "negotiation.quick"): | |
411 | + cause_variants = ( | |
412 | + "resolvingInsolvency", | |
413 | + "artPurchase", | |
414 | + "contestWinner", | |
415 | + "technicalReasons", | |
416 | + "intProperty", | |
417 | + "lastHope", | |
418 | + "twiceUnsuccessful", | |
419 | + "additionalPurchase", | |
420 | + "additionalConstruction", | |
421 | + "stateLegalServices", | |
422 | + "emergency", | |
423 | + "humanitarianAid", | |
424 | + "contractCancelled", | |
425 | + "activeComplaint" | |
426 | + ) | |
391 | 427 | cause = fake.random_element(cause_variants) |
392 | 428 | data.update({ |
393 | 429 | "cause": cause, |
394 | 430 | "causeDescription": fake.description() |
395 | 431 | }) |
432 | + #if params['mode'] in ("negotiation", "negotiation.quick"): | |
433 | + #cause = fake.random_element(cause_variants) | |
396 | 434 | return munchify(data) |
397 | 435 | |
398 | 436 | |
... | ... | @@ -1066,10 +1104,18 @@ def invalid_gmdn_data(): |
1066 | 1104 | |
1067 | 1105 | def test_buyers_data(): |
1068 | 1106 | buyers = { |
1107 | + "kind": "general", | |
1069 | 1108 | "identifier": { |
1070 | 1109 | "scheme": "UA-EDR", |
1071 | 1110 | "id": random.choice(["13313462", "00037256"]), |
1072 | 1111 | "legalName": random.choice([u"Київський Тестовий Ліцей", u"Київська Тестова міська клінічна лікарня"]), |
1112 | + }, | |
1113 | + "address": { | |
1114 | + "countryName": "Україна", | |
1115 | + "postalCode": "01220", | |
1116 | + "region": "м. Київ", | |
1117 | + "streetAddress": "вул. Банкова, 11, корпус 1", | |
1118 | + "locality": "м. Київ" | |
1073 | 1119 | } |
1074 | 1120 | } |
1075 | 1121 | return munchify(buyers) | ... | ... |
... | ... | @@ -182,8 +182,10 @@ Get Broker Property By Username |
182 | 182 | Run Keyword And Ignore Error Set To Dictionary ${artifact} tender_owner_access_token=${USERS.users['${tender_owner}'].access_token} |
183 | 183 | Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_access_token=${USERS.users['${provider}'].access_token} |
184 | 184 | Run Keyword And Ignore Error Set To Dictionary ${artifact} provider1_access_token=${USERS.users['${provider1}'].access_token} |
185 | + Run Keyword And Ignore Error Set To Dictionary ${artifact} provider2_access_token=${USERS.users['${provider1}'].access_token} | |
185 | 186 | Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_bid_id=${USERS.users['${provider}'].bid_id} |
186 | 187 | Run Keyword And Ignore Error Set To Dictionary ${artifact} provider1_bid_id=${USERS.users['${provider1}'].bid_id} |
188 | + Run Keyword And Ignore Error Set To Dictionary ${artifact} provider2_bid_id=${USERS.users['${provider1}'].bid_id} | |
187 | 189 | Run Keyword And Ignore Error Set To Dictionary ${artifact} |
188 | 190 | ... tender_file_properties=${USERS.users['${tender_owner}'].tender_document.file_properties} |
189 | 191 | ... lot_file_properties=${USERS.users['${tender_owner}'].lots_documents[0].file_properties} | ... | ... |
... | ... | @@ -21,6 +21,9 @@ ${VAT_INCLUDED} ${True} |
21 | 21 | ${ROAD_INDEX} ${False} |
22 | 22 | ${GMDN_INDEX} ${False} |
23 | 23 | ${PLAN_TENDER} ${True} |
24 | +${BID_AMOUNT_1} ${500} | |
25 | +${BID_AMOUNT_2} ${1000} | |
26 | +${BID_AMOUNT_3} ${1500} | |
24 | 27 | |
25 | 28 | *** Test Cases *** |
26 | 29 | Можливість оголосити тендер |
... | ... | @@ -2044,7 +2047,7 @@ ${PLAN_TENDER} ${True} |
2044 | 2047 | ... critical |
2045 | 2048 | [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} |
2046 | 2049 | [Teardown] Оновити LAST_MODIFICATION_DATE |
2047 | - Можливість подати цінову пропозицію на суму 500 користувачем ${provider} | |
2050 | + Можливість подати цінову пропозицію на суму ${BID_AMOUNT_1} користувачем ${provider} | |
2048 | 2051 | |
2049 | 2052 | |
2050 | 2053 | Можливість зменшити пропозицію на 5% першим учасником |
... | ... | @@ -2096,7 +2099,7 @@ ${PLAN_TENDER} ${True} |
2096 | 2099 | ... critical |
2097 | 2100 | [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} |
2098 | 2101 | [Teardown] Оновити LAST_MODIFICATION_DATE |
2099 | - Можливість подати цінову пропозицію на суму 1000 користувачем ${provider1} | |
2102 | + Можливість подати цінову пропозицію на суму ${BID_AMOUNT_2} користувачем ${provider1} | |
2100 | 2103 | |
2101 | 2104 | |
2102 | 2105 | Можливість зменшити пропозицію на 5% другим учасником |
... | ... | @@ -2127,7 +2130,7 @@ ${PLAN_TENDER} ${True} |
2127 | 2130 | ... critical |
2128 | 2131 | [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} |
2129 | 2132 | [Teardown] Оновити LAST_MODIFICATION_DATE |
2130 | - Можливість подати цінову пропозицію на суму 1500 користувачем ${provider2} | |
2133 | + Можливість подати цінову пропозицію на суму ${BID_AMOUNT_3} користувачем ${provider2} | |
2131 | 2134 | |
2132 | 2135 | ############################################################################################## |
2133 | 2136 | # ABOVETRHESHOLD BIDDING | ... | ... |
... | ... | @@ -228,7 +228,15 @@ ${award_index} ${0} |
228 | 228 | Повідомлення в awards про невіповідність пропозиції 0 |
229 | 229 | |
230 | 230 | |
231 | -Можливість завантажити документ в пропозицію першим учасником | |
231 | +Неможливість визначити переможця до завершення dueDate | |
232 | + [Tags] ${USERS.users['${tender_owner}'].broker}: | |
233 | + ... tender_owner | |
234 | + ... ${USERS.users['${tender_owner}'].broker} | |
235 | + ... qualification_approve_award_dueDate_error | |
236 | + run keyword and expect error * Підтвердити постачальника ${tender_owner} ${TENDER['TENDER_UAID']} 0 | |
237 | + | |
238 | + | |
239 | +Можливість завантажити документ в пропозицію учасником 24 години | |
232 | 240 | [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції |
233 | 241 | ... provider |
234 | 242 | ... ${USERS.users['${provider}'].broker} |
... | ... | @@ -248,6 +256,26 @@ ${award_index} ${0} |
248 | 256 | Можливість змінити документацію цінової пропозиції при усуненні невідповідності користувачем ${provider} |
249 | 257 | |
250 | 258 | |
259 | +Можливість завантажити документ в пропозицію учасником аномально низька ціна | |
260 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | |
261 | + ... provider | |
262 | + ... ${USERS.users['${provider}'].broker} | |
263 | + ... add_doc_to_bid_by_provider_alp_qualification | |
264 | + ... critical | |
265 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
266 | + Можливість завантажити обгрунтування аномально низької ціни до пропозиції учасником ${provider} documents evidence | |
267 | + | |
268 | + | |
269 | +Можливість змінити документацію цінової пропозиції учасником аномально низька ціна | |
270 | + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції | |
271 | + ... provider | |
272 | + ... ${USERS.users['${provider}'].broker} | |
273 | + ... change_doc_to_bid_by_provider_alp_qualification | |
274 | + ... critical | |
275 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
276 | + Можливість змінити документацію обгрунтування аномально низької ціни користувачем ${provider} | |
277 | + | |
278 | + | |
251 | 279 | Можливість дочекатися перевірки переможців по ЄДРПОУ |
252 | 280 | [Tags] ${USERS.users['${tender_owner}'].broker}: Перевірка користувача по ЄДРПОУ |
253 | 281 | ... tender_owner | ... | ... |
robot_tests_arguments/alp.txt
0 → 100644
1 | +-v MODE:openua | |
2 | + | |
3 | +-v NUMBER_OF_ITEMS:1 | |
4 | +-v NUMBER_OF_LOTS:1 | |
5 | + | |
6 | +-v TENDER_MEAT:False | |
7 | +-v ITEM_MEAT:False | |
8 | +-v LOT_MEAT:False | |
9 | + | |
10 | +-i create_tender | |
11 | +-i find_tender | |
12 | + | |
13 | +-i make_bid_fixed_amount_by_provider | |
14 | +-i make_bid_fixed_amount_by_provider1 | |
15 | +-i make_bid_fixed_amount_by_provider2 | |
16 | + | |
17 | +-i wait_active_qualification_start | |
18 | +-i qualification_approve_award_dueDate_error | |
19 | +-i add_doc_to_bid_by_provider_alp_qualification | |
20 | +-i qualification_add_doc_to_first_award | |
21 | +-i qualification_approve_first_award | ... | ... |
Please
register
or
login
to post a comment