Commit 2f16f03cb686c23e7debcfbf6f211974ea8f1136

Authored by AlexDiatlov
2 parents d5358ce9 8c4ed65c

Merge branch 'master' of https://github.com/ProzorroUKR/robot_tests into feature/pq

@@ -2127,6 +2127,21 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status @@ -2127,6 +2127,21 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
2127 Remove File ${file_path} 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 Можливість змінити документацію цінової пропозиції користувачем ${username} 2145 Можливість змінити документацію цінової пропозиції користувачем ${username}
2131 ${file_path} ${file_name} ${file_content}= create_fake_doc 2146 ${file_path} ${file_name} ${file_content}= create_fake_doc
2132 ${doc_id}= get_id_from_string ${file_name} 2147 ${doc_id}= get_id_from_string ${file_name}
@@ -2150,6 +2165,18 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status @@ -2150,6 +2165,18 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
2150 Set To Dictionary ${USERS.users['${username}']} bid_document_modified=${bid_document_modified_data} 2165 Set To Dictionary ${USERS.users['${username}']} bid_document_modified=${bid_document_modified_data}
2151 Remove File ${file_path} 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 # Cancellations 2181 # Cancellations
2155 ############################################################################################## 2182 ##############################################################################################
@@ -1688,6 +1688,25 @@ Library openprocurement_client.utils @@ -1688,6 +1688,25 @@ Library openprocurement_client.utils
1688 [Return] ${uploaded_file} 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 [Arguments] ${username} ${tender_uaid} ${path} ${doc_id} ${doc_type}=documents 1711 [Arguments] ${username} ${tender_uaid} ${path} ${doc_id} ${doc_type}=documents
1693 ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id} 1712 ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id}
@@ -1728,6 +1747,26 @@ Library openprocurement_client.utils @@ -1728,6 +1747,26 @@ Library openprocurement_client.utils
1728 [Return] ${uploaded_file} 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 [Arguments] ${username} ${tender_uaid} ${doc_data} ${doc_id} 1771 [Arguments] ${username} ${tender_uaid} ${doc_data} ${doc_id}
1733 ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id} 1772 ${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid'].data.id}
@@ -303,11 +303,19 @@ def test_tender_data_planning(params): @@ -303,11 +303,19 @@ def test_tender_data_planning(params):
303 } 303 }
304 }, 304 },
305 "procuringEntity": { 305 "procuringEntity": {
  306 + #"kind": "general",
306 "identifier": { 307 "identifier": {
307 "scheme": "UA-EDR", 308 "scheme": "UA-EDR",
308 "id": random.choice(["13313462", "00037256"]), 309 "id": random.choice(["13313462", "00037256"]),
309 "legalName": random.choice([u"Київський Тестовий Ліцей", u"Київська Тестова міська клінічна лікарня"]), 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 "tender": { 320 "tender": {
313 "procurementMethod": "", 321 "procurementMethod": "",
@@ -321,6 +329,12 @@ def test_tender_data_planning(params): @@ -321,6 +329,12 @@ def test_tender_data_planning(params):
321 "buyers": [] 329 "buyers": []
322 } 330 }
323 data["procuringEntity"]["name"] = data["procuringEntity"]["identifier"]["legalName"] 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 buyers = test_buyers_data() 338 buyers = test_buyers_data()
325 buyers["name"] = buyers["identifier"]["legalName"] 339 buyers["name"] = buyers["identifier"]["legalName"]
326 data['buyers'].append(buyers) 340 data['buyers'].append(buyers)
@@ -377,22 +391,46 @@ def test_tender_data_limited(params, plan_data): @@ -377,22 +391,46 @@ def test_tender_data_limited(params, plan_data):
377 data.update({"procurementMethodType": params['mode'], "procurementMethod": "limited"}) 391 data.update({"procurementMethodType": params['mode'], "procurementMethod": "limited"})
378 if params['mode'] == "negotiation": 392 if params['mode'] == "negotiation":
379 cause_variants = ( 393 cause_variants = (
380 - "artContestIP",  
381 - "noCompetition", 394 + "resolvingInsolvency",
  395 + "artPurchase",
  396 + "contestWinner",
  397 + "technicalReasons",
  398 + "intProperty",
  399 + "lastHope",
382 "twiceUnsuccessful", 400 "twiceUnsuccessful",
383 "additionalPurchase", 401 "additionalPurchase",
384 "additionalConstruction", 402 "additionalConstruction",
385 "stateLegalServices" 403 "stateLegalServices"
386 ) 404 )
387 cause = fake.random_element(cause_variants) 405 cause = fake.random_element(cause_variants)
  406 + data.update({
  407 + "cause": cause,
  408 + "causeDescription": fake.description()
  409 + })
388 elif params['mode'] == "negotiation.quick": 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 cause = fake.random_element(cause_variants) 427 cause = fake.random_element(cause_variants)
392 data.update({ 428 data.update({
393 "cause": cause, 429 "cause": cause,
394 "causeDescription": fake.description() 430 "causeDescription": fake.description()
395 }) 431 })
  432 + #if params['mode'] in ("negotiation", "negotiation.quick"):
  433 + #cause = fake.random_element(cause_variants)
396 return munchify(data) 434 return munchify(data)
397 435
398 436
@@ -1066,10 +1104,18 @@ def invalid_gmdn_data(): @@ -1066,10 +1104,18 @@ def invalid_gmdn_data():
1066 1104
1067 def test_buyers_data(): 1105 def test_buyers_data():
1068 buyers = { 1106 buyers = {
  1107 + "kind": "general",
1069 "identifier": { 1108 "identifier": {
1070 "scheme": "UA-EDR", 1109 "scheme": "UA-EDR",
1071 "id": random.choice(["13313462", "00037256"]), 1110 "id": random.choice(["13313462", "00037256"]),
1072 "legalName": random.choice([u"Київський Тестовий Ліцей", u"Київська Тестова міська клінічна лікарня"]), 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 return munchify(buyers) 1121 return munchify(buyers)
@@ -182,8 +182,10 @@ Get Broker Property By Username @@ -182,8 +182,10 @@ Get Broker Property By Username
182 Run Keyword And Ignore Error Set To Dictionary ${artifact} tender_owner_access_token=${USERS.users['${tender_owner}'].access_token} 182 Run Keyword And Ignore Error Set To Dictionary ${artifact} tender_owner_access_token=${USERS.users['${tender_owner}'].access_token}
183 Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_access_token=${USERS.users['${provider}'].access_token} 183 Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_access_token=${USERS.users['${provider}'].access_token}
184 Run Keyword And Ignore Error Set To Dictionary ${artifact} provider1_access_token=${USERS.users['${provider1}'].access_token} 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 Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_bid_id=${USERS.users['${provider}'].bid_id} 186 Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_bid_id=${USERS.users['${provider}'].bid_id}
186 Run Keyword And Ignore Error Set To Dictionary ${artifact} provider1_bid_id=${USERS.users['${provider1}'].bid_id} 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 Run Keyword And Ignore Error Set To Dictionary ${artifact} 189 Run Keyword And Ignore Error Set To Dictionary ${artifact}
188 ... tender_file_properties=${USERS.users['${tender_owner}'].tender_document.file_properties} 190 ... tender_file_properties=${USERS.users['${tender_owner}'].tender_document.file_properties}
189 ... lot_file_properties=${USERS.users['${tender_owner}'].lots_documents[0].file_properties} 191 ... lot_file_properties=${USERS.users['${tender_owner}'].lots_documents[0].file_properties}
@@ -21,6 +21,9 @@ ${VAT_INCLUDED} ${True} @@ -21,6 +21,9 @@ ${VAT_INCLUDED} ${True}
21 ${ROAD_INDEX} ${False} 21 ${ROAD_INDEX} ${False}
22 ${GMDN_INDEX} ${False} 22 ${GMDN_INDEX} ${False}
23 ${PLAN_TENDER} ${True} 23 ${PLAN_TENDER} ${True}
  24 +${BID_AMOUNT_1} ${500}
  25 +${BID_AMOUNT_2} ${1000}
  26 +${BID_AMOUNT_3} ${1500}
24 27
25 *** Test Cases *** 28 *** Test Cases ***
26 Можливість оголосити тендер 29 Можливість оголосити тендер
@@ -2044,7 +2047,7 @@ ${PLAN_TENDER} ${True} @@ -2044,7 +2047,7 @@ ${PLAN_TENDER} ${True}
2044 ... critical 2047 ... critical
2045 [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} 2048 [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']}
2046 [Teardown] Оновити LAST_MODIFICATION_DATE 2049 [Teardown] Оновити LAST_MODIFICATION_DATE
2047 - Можливість подати цінову пропозицію на суму 500 користувачем ${provider} 2050 + Можливість подати цінову пропозицію на суму ${BID_AMOUNT_1} користувачем ${provider}
2048 2051
2049 2052
2050 Можливість зменшити пропозицію на 5% першим учасником 2053 Можливість зменшити пропозицію на 5% першим учасником
@@ -2096,7 +2099,7 @@ ${PLAN_TENDER} ${True} @@ -2096,7 +2099,7 @@ ${PLAN_TENDER} ${True}
2096 ... critical 2099 ... critical
2097 [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} 2100 [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']}
2098 [Teardown] Оновити LAST_MODIFICATION_DATE 2101 [Teardown] Оновити LAST_MODIFICATION_DATE
2099 - Можливість подати цінову пропозицію на суму 1000 користувачем ${provider1} 2102 + Можливість подати цінову пропозицію на суму ${BID_AMOUNT_2} користувачем ${provider1}
2100 2103
2101 2104
2102 Можливість зменшити пропозицію на 5% другим учасником 2105 Можливість зменшити пропозицію на 5% другим учасником
@@ -2127,7 +2130,7 @@ ${PLAN_TENDER} ${True} @@ -2127,7 +2130,7 @@ ${PLAN_TENDER} ${True}
2127 ... critical 2130 ... critical
2128 [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} 2131 [Setup] Дочекатись дати початку прийому пропозицій ${provider} ${TENDER['TENDER_UAID']}
2129 [Teardown] Оновити LAST_MODIFICATION_DATE 2132 [Teardown] Оновити LAST_MODIFICATION_DATE
2130 - Можливість подати цінову пропозицію на суму 1500 користувачем ${provider2} 2133 + Можливість подати цінову пропозицію на суму ${BID_AMOUNT_3} користувачем ${provider2}
2131 2134
2132 ############################################################################################## 2135 ##############################################################################################
2133 # ABOVETRHESHOLD BIDDING 2136 # ABOVETRHESHOLD BIDDING
@@ -228,7 +228,15 @@ ${award_index} ${0} @@ -228,7 +228,15 @@ ${award_index} ${0}
228 Повідомлення в awards про невіповідність пропозиції 0 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 [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції 240 [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції
233 ... provider 241 ... provider
234 ... ${USERS.users['${provider}'].broker} 242 ... ${USERS.users['${provider}'].broker}
@@ -248,6 +256,26 @@ ${award_index} ${0} @@ -248,6 +256,26 @@ ${award_index} ${0}
248 Можливість змінити документацію цінової пропозиції при усуненні невідповідності користувачем ${provider} 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 [Tags] ${USERS.users['${tender_owner}'].broker}: Перевірка користувача по ЄДРПОУ 280 [Tags] ${USERS.users['${tender_owner}'].broker}: Перевірка користувача по ЄДРПОУ
253 ... tender_owner 281 ... tender_owner
  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