diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index 7bc1a0ce4..8421c0e36 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -351,6 +351,18 @@ Resource resource.robot Remove File ${file_path} +Можливість завантажити протокол пролонгації в контракт ${contract_index} користувачем ${username} + ${prolongation_protocol_path} ${file_title} ${file_content}= create_fake_doc + Run As ${username} Завантажити протокол пролонгації в контракт ${TENDER['TENDER_UAID']} ${prolongation_protocol_path} ${contract_index} + Remove File ${prolongation_protocol_path} + + +Звірити відображення поля ${field} пролонгації для користувача ${username} + Звірити поле пролонгації ${username} ${TENDER['TENDER_UAID']} + ... ${USERS.users['${tender_owner}'].prolongation_data} + ... ${field} + + Можливість укласти угоду для закупівлі Run as ${tender_owner} ... Підтвердити підписання контракту diff --git a/op_robot_tests/tests_files/brokers/openprocurement_client.robot b/op_robot_tests/tests_files/brokers/openprocurement_client.robot index 74e091597..5266ba9e5 100644 --- a/op_robot_tests/tests_files/brokers/openprocurement_client.robot +++ b/op_robot_tests/tests_files/brokers/openprocurement_client.robot @@ -634,6 +634,47 @@ Library openprocurement_client.utils Log ${reply} +Продовжити період підписання договору + [Arguments] ${username} ${tender_uaid} ${prolongation_data} ${contract_index} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${contract_id}= Get Variable Value ${tender['data']['contracts'][${contract_index}]['id']} + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} + ${reply}= Call Method ${USERS.users['${username}'].client} create_prolongation ${tender} ${contract_id} ${prolongation_data} + # we need this to have prlongation id in `Завантажити протокол пролонгації в контракт` and `Підтвердити пролонгацію` keywords + ${empty_list}= Create List + ${prolongations}= Get variable value ${USERS.users['${username}'].prolongations} ${empty_list} + Append to list ${prolongations} ${reply} + Set to dictionary ${USERS.users['${username}']} prolongations=${prolongations} + Log ${prolongations} + Log ${reply} + + +Завантажити протокол пролонгації в контракт + [Arguments] ${username} ${tender_uaid} ${document} ${contract_index} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${contract_id}= Get Variable Value ${tender.data.contracts[${contract_index}].id} + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} + ${doc_created}= Call Method ${USERS.users['${username}'].client} upload_prolongation_document ${document} ${tender} ${contract_id} ${USERS.users['${username}'].prolongations[-1].data.id} + Set To Dictionary ${doc_created['data']} documentType=prolongationProtocol + ${reply_doc_patch}= Call Method ${USERS.users['${username}'].client} patch_prolongation_document ${tender} ${doc_created} ${contract_id} ${USERS.users['${username}'].prolongations[-1].data.id} + Log ${doc_created} + Log ${reply_doc_patch} + + +Підтвердити пролонгацію + [Arguments] ${username} ${tender_uaid} ${contract_index} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${contract_id}= Get Variable Value ${tender.data.contracts[${contract_index}].id} + ${data}= Create Dictionary status=applied + ${data}= Create Dictionary data=${data} + ${prolongations}= Get variable value ${USERS.users['${username}'].prolongations} + ${prolongation}= munchify ${prolongations[-1]} + Log ${prolongation} + ${reply}= Call Method ${USERS.users['${username}'].client} patch_prolongation ${tender} ${contract_id} ${USERS.users['${username}'].prolongations[-1].data.id} ${data} + Log ${data} + Log ${reply} + + Підтвердити підписання контракту [Documentation] ... [Arguments] Username, tender uaid, contract number diff --git a/op_robot_tests/tests_files/contract_signing.robot b/op_robot_tests/tests_files/contract_signing.robot index 57d6f7444..549375586 100644 --- a/op_robot_tests/tests_files/contract_signing.robot +++ b/op_robot_tests/tests_files/contract_signing.robot @@ -22,6 +22,82 @@ Suite Teardown Test Suite Teardown # CONTRACT ############################################################################################## +Можливість продовжити період підписання договору + [Tags] ${USERS.users['${tender_owner}'].broker}: Продовження періоду підписання договору + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... prolongation + ${prolongation_data}= Підготувати дані для пролонгації ${tender_owner} + Run As ${tender_owner} Продовжити період підписання договору ${TENDER['TENDER_UAID']} ${prolongation_data} -1 + + +Можливість завантажити протокол, що санкціонує пролонгацію + [Tags] ${USERS.users['${tender_owner}'].broker}: Продовження періоду підписання договору + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... prolongation + [Teardown] Оновити LMD і дочекатись синхронізації ${tender_owner} + Можливість завантажити протокол пролонгації в контракт -1 користувачем ${tender_owner} + + +Відображення номера рішення пролонгації + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних пролонгації + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... prolongation_view + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення поля decisionID пролонгації для користувача ${viewer} + + +Відображення опису пояснення причини пролонгації + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних пролонгації + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... prolongation_view + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення поля description пролонгації для користувача ${viewer} + + +Відображення дати рішення ФГВФО стосовно пролонгації + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних пролонгації + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... prolongation_view + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення поля datePublished пролонгації для користувача ${viewer} + + +Відображення причини пролонгації підписання договору + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних пролонгації + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... prolongation_view + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення поля reason пролонгації для користувача ${viewer} + + +Можливість підтвердити пролонгацію підписання договору + [Tags] ${USERS.users['${tender_owner}'].broker}: Продовження періоду підписання договору + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... prolongation + [Teardown] Оновити LMD і дочекатись синхронізації ${tender_owner} + Run As ${tender_owner} Підтвердити пролонгацію ${TENDER['TENDER_UAID']} -1 + + +Відображення підтвердженого статусу пролонгації + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних пролонгації + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... prolongation_view + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити поле пролонганції підписання угоди із значенням + ... ${viewer} + ... ${TENDER['TENDER_UAID']} + ... applied + ... status + + Можливість вказати дату отримання оплати [Tags] ${USERS.users['${tender_owner}'].broker}: Процес укладання угоди ... tender_owner @@ -42,11 +118,33 @@ Suite Teardown Test Suite Teardown Звірити відображення поля contracts[-1].datePaid тендера із ${USERS.users['${tender_owner}'].datePaid} для користувача ${viewer} +Можливість повторно продовжити період підписання договору + [Tags] ${USERS.users['${tender_owner}'].broker}: Продовження періоду підписання договору + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... prolongation + ${prolongation_data}= Підготувати дані для пролонгації ${tender_owner} + Run As ${tender_owner} Продовжити період підписання договору ${TENDER['TENDER_UAID']} ${prolongation_data} -1 + Можливість завантажити протокол пролонгації в контракт -1 користувачем ${tender_owner} + Run As ${tender_owner} Підтвердити пролонгацію ${TENDER['TENDER_UAID']} -1 + + +Неможливість втретє продовжити період підписання договору + [Tags] ${USERS.users['${tender_owner}'].broker}: Продовження періоду підписання договору + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... prolongation + ${prolongation_data}= Підготувати дані для пролонгації ${tender_owner} + Run As ${tender_owner} Продовжити період підписання договору ${TENDER['TENDER_UAID']} ${prolongation_data} -1 + Можливість завантажити протокол пролонгації в контракт -1 користувачем ${tender_owner} + Require Failure ${tender_owner} Підтвердити пролонгацію ${TENDER['TENDER_UAID']} -1 + + Можливість завантажити угоду до лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Завантаження документів щодо угоди - ... tender_owner - ... ${USERS.users['${tender_owner}'].broker} - ... contract_sign_upload + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... contract_sign_upload [Teardown] Оновити LMD і дочекатись синхронізації ${tender_owner} ${file_path} ${file_title} ${file_content}= create_fake_doc Run As ${tender_owner} Завантажити угоду до тендера ${TENDER['TENDER_UAID']} -1 ${file_path} @@ -55,18 +153,18 @@ Suite Teardown Test Suite Teardown Можливість укласти угоду для лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Процес укладання угоди - ... tender_owner - ... ${USERS.users['${tender_owner}'].broker} - ... contract_sign level1 + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... contract_sign level1 [Teardown] Оновити LAST_MODIFICATION_DATE Run As ${tender_owner} Підтвердити підписання контракту ${TENDER['TENDER_UAID']} -1 Відображення статусу підписаної угоди [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди - ... viewer - ... ${USERS.users['${viewer}'].broker} - ... contract_sign_view + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... contract_sign_view [Setup] Дочекатись синхронізації з майданчиком ${viewer} Run As ${viewer} Оновити сторінку з тендером ${TENDER['TENDER_UAID']} Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']} active contracts[-1].status @@ -74,7 +172,7 @@ Suite Teardown Test Suite Teardown Відображення статусу завершення лоту [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту - ... viewer - ... ${USERS.users['${viewer}'].broker} - ... tender_view + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view Звірити статус завершення тендера ${viewer} ${TENDER['TENDER_UAID']} diff --git a/op_robot_tests/tests_files/data/brokers.yaml b/op_robot_tests/tests_files/data/brokers.yaml index c16f92389..4bb4e5fb1 100644 --- a/op_robot_tests/tests_files/data/brokers.yaml +++ b/op_robot_tests/tests_files/data/brokers.yaml @@ -30,8 +30,8 @@ Default: # Please refer to API documentation to find out what's this accelerator: 1440 dgfFinancialAssets: - accelerator: 1440 - auction: [25, 30] + accelerator: 1440 + auction: [25, 30] dgfOtherAssets: accelerator: 1440 auction: [25, 30] diff --git a/op_robot_tests/tests_files/initial_data.py b/op_robot_tests/tests_files/initial_data.py index 5e56ec968..616012978 100644 --- a/op_robot_tests/tests_files/initial_data.py +++ b/op_robot_tests/tests_files/initial_data.py @@ -51,7 +51,7 @@ def create_fake_dgfID(): def create_fake_date(): - return get_now().strftime('%Y-%m-%d') + return get_now().isoformat() def create_fake_dgfDecisionID(): @@ -301,6 +301,20 @@ def test_item_data_financial(cav): return munchify(data) +def test_prolongation_data(): + return munchify( + { + "data": + { + "description": fake.description(), + "decisionID": fake.dgfDecisionID(), + "datePublished": create_fake_date(), + "reason": random.choice(["dgfPaymentImpossibility", "dgfLackOfDocuments", "dgfLegalObstacles", "other"]), + "status": "draft" + } + }) + + def test_tender_data_dgf_other(params, submissionMethodDetails): data = test_tender_data(params, [], submissionMethodDetails) diff --git a/op_robot_tests/tests_files/keywords.robot b/op_robot_tests/tests_files/keywords.robot index 5ebf082a0..9afc34b9e 100644 --- a/op_robot_tests/tests_files/keywords.robot +++ b/op_robot_tests/tests_files/keywords.robot @@ -255,6 +255,27 @@ Get Broker Property By Username [Return] ${cancellation_data} +Підготувати дані для пролонгації + [Arguments] ${username} + ${prolongation_data}= test_prolongation_data + Set To Dictionary ${USERS.users['${username}']} prolongation_data=${prolongation_data} + Log ${prolongation_data} + [Return] ${prolongation_data} + + +Звірити поле пролонгації + [Arguments] ${username} ${tender_uaid} ${prolongation_data} ${field} + ${left}= get_from_object ${prolongation_data.data} ${field} + Звірити поле пролонганції підписання угоди із значенням ${username} ${tender_uaid} ${left} ${field} + + +Звірити поле пролонганції підписання угоди із значенням + [Arguments] ${username} ${tender_uaid} ${left} ${field} + ${field}= Evaluate "{}{}{}".format('contracts[-1].', 'prolongations[-1].', '${field}') + ${right}= Отримати дані із тендера ${username} ${tender_uaid} ${field} + Порівняти об'єкти ${left} ${right} + + Адаптувати дані для оголошення тендера [Arguments] ${tender_data} # munchify is used to make deep copy of ${tender_data} diff --git a/op_robot_tests/tests_files/service_keywords.py b/op_robot_tests/tests_files/service_keywords.py index ac12d1774..34b9e81ce 100644 --- a/op_robot_tests/tests_files/service_keywords.py +++ b/op_robot_tests/tests_files/service_keywords.py @@ -43,6 +43,7 @@ test_tender_data_dgf_financial, test_tender_data_dgf_other, test_tender_data_dgf_insider, + test_prolongation_data, create_fake_dgfID, create_fake_dgfDecisionID, create_fake_tenderAttempts, diff --git a/robot_tests_arguments/dgf_financial_second_award_complete.txt b/robot_tests_arguments/dgf_financial_second_award_complete.txt index c8509cb4a..0bba67f18 100644 --- a/robot_tests_arguments/dgf_financial_second_award_complete.txt +++ b/robot_tests_arguments/dgf_financial_second_award_complete.txt @@ -31,6 +31,8 @@ -i confirm_second_award -i second_award_active_status +-i prolongation +-i prolongation_view -i datePaid -i contract_sign -i contract_sign_upload