diff --git a/op_robot_tests/tests_files/awarding.robot b/op_robot_tests/tests_files/awarding.robot index 4d5cb6c6d..6abd9cb77 100644 --- a/op_robot_tests/tests_files/awarding.robot +++ b/op_robot_tests/tests_files/awarding.robot @@ -135,6 +135,15 @@ ${NUMBER_OF_AWARDS} ${1} Звірити відображення поля awards[0].status тендера із active для користувача ${viewer} +Можливість завантажити документ про дискваліфікацію + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_rejectionProtocol + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити протокол скасування в авард 0 користувачем ${tender_owner} + + Можливість дискваліфікувати першого кандидата [Tags] ${USERS.users['${tender_owner}'].broker}: Процес кваліфікації ... tender_owner diff --git a/op_robot_tests/tests_files/base_keywords.robot b/op_robot_tests/tests_files/base_keywords.robot index 295b6cc0d..90d9148f5 100644 --- a/op_robot_tests/tests_files/base_keywords.robot +++ b/op_robot_tests/tests_files/base_keywords.robot @@ -99,6 +99,20 @@ Resource resource.robot Порівняти об'єкти ${len_of_items_before_patch} ${len_of_items_after_patch} +Звірити відображення зміненого поля ${field} предмета ${index} для користувача ${username} + ${item_id}= get_id_from_object ${USERS.users['${viewer}'].tender_data.data['items'][${index}]} + ${field_value}= Run As ${viewer} Отримати інформацію із предмету ${TENDER['TENDER_UAID']} ${item_id} ${field} + Порівняти об'єкти ${field_value} ${USERS.users['${tender_owner}'].initial_data.data['items'][${index}].${field}} + Set_To_Object ${USERS.users['${username}'].tender_data.data['items'][${index}]} ${field} ${field_value} + + + +Можливість змінити поле ${field_name} предмета ${index} на ${field_value} + ${item_id}= get_id_from_object ${USERS.users['${viewer}'].tender_data.data['items'][${index}]} + Run As ${tender_owner} Внести зміни в предмет ${item_id} ${TENDER['TENDER_UAID']} ${field_name} ${field_value} + Set_To_Object ${USERS.users['${tender_owner}'].initial_data.data['items'][${index}]} ${field_name} ${field_value} + + Неможливість додати документацію до лоту ${len_of_documents_before_patch}= Run As ${tender_owner} Отримати кількість документів в тендері ${TENDER['TENDER_UAID']} ${file_path} ${file_name} ${file_content}= create_fake_doc @@ -282,6 +296,8 @@ Resource resource.robot ############################################################################################## Можливість подати цінову пропозицію користувачем ${username} + Run Keyword If '${mode}' == 'geb' + ... Дочекатись дати закінчення періоду редагування лоту ${tender_owner} ${TENDER['TENDER_UAID']} ${bid}= Підготувати дані для подання пропозиції ${username} ${bidresponses}= Create Dictionary bid=${bid} Set To Dictionary ${USERS.users['${username}']} bidresponses=${bidresponses} @@ -323,6 +339,13 @@ Resource resource.robot Remove File ${file_path} +Можливість завантажити документ з типом ${doc_type} в пропозицію користувачем ${username} + ${file_path} ${file_name} ${file_content}= create_fake_doc + ${bid_doc_upload}= Run As ${username} Завантажити документ в ставку з типом ${TENDER['TENDER_UAID']} ${file_path} ${doc_type} + Set To Dictionary ${USERS.users['${username}'].bidresponses} bid_doc_upload=${bid_doc_upload} + Remove File ${file_path} + + Можливість змінити документацію цінової пропозиції користувачем ${username} ${file_path} ${file_name} ${file_content}= create_fake_doc ${docid}= Get Variable Value ${USERS.users['${username}'].bidresponses['bid_doc_upload']['upload_response'].data.id} @@ -339,12 +362,21 @@ Resource resource.robot Можливість завантажити протокол аукціону в авард ${award_index} користувачем ${username} ${auction_protocol_path} ${file_title} ${file_content}= create_fake_doc - Run As ${username} Завантажити протокол аукціону в авард ${TENDER['TENDER_UAID']} ${auction_protocol_path} ${award_index} + Run As ${username} Завантажити протокол в авард ${TENDER['TENDER_UAID']} ${auction_protocol_path} ${award_index} auctionProtocol + Remove File ${auction_protocol_path} + +Можливість завантажити протокол скасування в авард ${award_index} користувачем ${username} + ${auction_protocol_path} ${file_title} ${file_content}= create_fake_doc + Run As ${username} Завантажити протокол в авард ${TENDER['TENDER_UAID']} ${auction_protocol_path} ${award_index} rejectionProtocol Remove File ${auction_protocol_path} Можливість підтвердити цінову пропозицію учасником ${username} Run As ${username} Змінити цінову пропозицію ${TENDER['TENDER_UAID']} status active + +Можливість кваліфікувати цінову пропозицію ${bidNumber} користувачем ${username} + Run As ${username} Кваліфікувати пропозицію ${TENDER['TENDER_UAID']} ${bidNumber} + ############################################################################################## # Cancellations ############################################################################################## @@ -381,3 +413,11 @@ Resource resource.robot ${left}= Convert To Integer ${number_of_awards} ${right}= Run As ${username} Отримати кількість авардів в тендері ${TENDER['TENDER_UAID']} Порівняти об'єкти ${left} ${right} + + +Можливість редагувати вартість угоди + ${starting_price}= Отримати дані із тендера ${tender_owner} ${TENDER['TENDER_UAID']} contracts[0].value.amount + ${minimalStep}= Отримати дані із тендера ${tender_owner} ${TENDER['TENDER_UAID']} minimalStep.amount + ${amount}= Evaluate ${starting_price}+${minimalStep} + Set to dictionary ${USERS.users['${tender_owner}']} amount=${amount} + Run As ${tender_owner} Редагувати угоду ${TENDER['TENDER_UAID']} -1 value.amount ${amount} \ No newline at end of file diff --git a/op_robot_tests/tests_files/brokers/openprocurement_client.robot b/op_robot_tests/tests_files/brokers/openprocurement_client.robot index 11069249d..a35aaf999 100644 --- a/op_robot_tests/tests_files/brokers/openprocurement_client.robot +++ b/op_robot_tests/tests_files/brokers/openprocurement_client.robot @@ -92,14 +92,14 @@ Library openprocurement_client.utils [return] ${reply} -Завантажити протокол аукціону в авард - [Arguments] ${username} ${tender_uaid} ${filepath} ${award_index} +Завантажити протокол в авард + [Arguments] ${username} ${tender_uaid} ${filepath} ${award_index} ${documentType} ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} ${award_id}= Get Variable Value ${tender.data.awards[${award_index}].id} ${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token} ${response}= Call Method ${USERS.users['${username}'].client} upload_award_document ${filepath} ${tender} ${award_id} documents Keep In Dictionary ${response['data']} id - Set To Dictionary ${response['data']} documentType=auctionProtocol + Set To Dictionary ${response['data']} documentType=${documentType} ${reply}= Call Method ${USERS.users['${username}'].client} patch_award_document ${tender} ${response} ${award_id} ${response['data'].id} Log ${reply} [return] ${reply} @@ -190,6 +190,13 @@ Library openprocurement_client.utils ${tender}= Call Method ${USERS.users['${username}'].client} create_tender ${tender_data} Log object data ${tender} created_tender ${access_token}= Get Variable Value ${tender.access.token} + Run Keyword If '${mode}' == 'geb' + ... Run Keywords + ... Set To Dictionary ${tender['data']} status=active.rectification + ... AND + ... Call Method ${USERS.users['${username}'].client} patch_tender ${tender} + ... AND + ... Log ${tender} Set To Dictionary ${USERS.users['${username}']} access_token=${access_token} Set To Dictionary ${USERS.users['${username}']} tender_data=${tender} Log ${\n}${API_HOST_URL}/api/${API_VERSION}/auctions/${tender.data.id}${\n} WARN @@ -265,6 +272,16 @@ Library openprocurement_client.utils ############################################################################## # Item operations ############################################################################## +Внести зміни в предмет + [Arguments] ${username} ${item_id} ${tender_uaid} ${fieldname} ${fieldvalue} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${item_index}= get_object_index_by_id ${tender.data['items']} ${item_id} + ${item}= Create Dictionary data=${tender['data']['items'][${item_index}]} + Set_To_Object ${item.data} ${fieldname} ${fieldvalue} + Log ${item} + ${reply}= Call Method ${USERS.users['${username}'].client} patch_item ${tender} ${item} + Log ${reply} + Додати предмет закупівлі [Arguments] ${username} ${tender_uaid} ${item} @@ -344,11 +361,13 @@ Library openprocurement_client.utils [Arguments] ${username} ${tender_uaid} ${bid} ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} ${reply}= Call Method ${USERS.users['${username}'].client} create_bid ${tender} ${bid} - Log ${reply} - ${reply_active}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${reply} + Run Keyword IF '${tender.data.procurementMethodType}' == 'landLease' + ... Run Keywords + ... Set To Dictionary ${reply.data} status=pending + ... AND + ... Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${reply} Set To Dictionary ${USERS.users['${username}']} access_token=${reply['access']['token']} Set To Dictionary ${USERS.users['${username}'].bidresponses['bid'].data} id=${reply['data']['id']} - Log ${reply_active} Set To Dictionary ${USERS.users['${username}']} bid_id=${reply['data']['id']} Log ${reply} [return] ${reply} @@ -365,6 +384,18 @@ Library openprocurement_client.utils [return] ${reply} +Кваліфікувати пропозицію + [Arguments] ${username} ${tender_uaid} ${bidNumber} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${bid}= openprocurement_client.Отримати пропозицію ${username} ${tender_uaid} + ${bid_data}= test_bid_qualified ${bidNumber} ${bid.data.id} + Log ${bid_data} + ${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token} + ${reply}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${bid_data} + Log ${reply} + [return] ${reply} + + Скасувати цінову пропозицію [Arguments] ${username} ${tender_uaid} ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} @@ -649,3 +680,27 @@ Library openprocurement_client.utils ${reply}= Call Method ${USERS.users['${username}'].client} patch_contract_document ${tender} ${response} ${contract_id} ${response['data'].id} Log ${reply} [return] ${reply} + + +############################################################################## +# CONTRACT SIGNING +############################################################################## + +Встановити дату підписання угоди + [Arguments] ${username} ${tender_uaid} ${contract_index} ${fieldvalue} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${contract}= Create Dictionary data=${tender.data.contracts[${contract_index}]} + Set To Dictionary ${contract.data} dateSigned=${fieldvalue} + ${reply}= Call Method ${USERS.users['${username}'].client} patch_contract ${tender} ${contract} + Log ${reply} + + +Редагувати угоду + [Arguments] ${username} ${tender_uaid} ${contract_index} ${fieldname} ${fieldvalue} + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid} + ${contract}= Create Dictionary data=${tender.data.contracts[${contract_index}]} + Set_to_object ${contract.data} ${fieldname} ${fieldvalue} + ${reply}= Call Method ${USERS.users['${username}'].client} patch_contract + ... ${tender} + ... ${contract} + Log ${reply} \ No newline at end of file diff --git a/op_robot_tests/tests_files/contract_signing.robot b/op_robot_tests/tests_files/contract_signing.robot index 735c34003..9d7acf1d1 100644 --- a/op_robot_tests/tests_files/contract_signing.robot +++ b/op_robot_tests/tests_files/contract_signing.robot @@ -1,6 +1,5 @@ *** Settings *** -Resource keywords.robot -Resource resource.robot +Resource base_keywords.robot Suite Setup Test Suite Setup Suite Teardown Test Suite Teardown @@ -33,6 +32,46 @@ Suite Teardown Test Suite Teardown Remove File ${file_path} +Можливість встановити дату підписання угоди + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування угоди + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... dateSigned + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${dateSigned}= create_fake_date + Set to dictionary ${USERS.users['${tender_owner}']} dateSigned=${dateSigned} + Run As ${tender_owner} Встановити дату підписання угоди ${TENDER['TENDER_UAID']} -1 ${dateSigned} + + +Відображення дати підписання угоди + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... dateSigned + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення поля contracts[-1].dateSigned тендера із ${USERS.users['${tender_owner}'].dateSigned} для користувача ${viewer} + + +Можливість редагувати вартість угоди + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування угоди + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_contract_value + ... critical + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість редагувати вартість угоди + +Відображення зміненої вартості угоди + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_contract_value + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення поля contracts[-1].value.amount тендера із ${USERS.users['${tender_owner}'].amount} для користувача ${viewer} + + Можливість укласти угоду для лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Процес укладання угоди ... tender_owner @@ -57,4 +96,4 @@ Suite Teardown Test Suite Teardown ... viewer ... ${USERS.users['${viewer}'].broker} ... tender_view - Звірити статус завершення тендера ${viewer} ${TENDER['TENDER_UAID']} + Звірити статус завершення тендера ${viewer} ${TENDER['TENDER_UAID']} \ No newline at end of file diff --git a/op_robot_tests/tests_files/data/brokers.yaml b/op_robot_tests/tests_files/data/brokers.yaml index 2e3a83ec2..6b9c26e96 100644 --- a/op_robot_tests/tests_files/data/brokers.yaml +++ b/op_robot_tests/tests_files/data/brokers.yaml @@ -35,6 +35,9 @@ Default: dgfOtherAssets: accelerator: 1440 auction: [25, 30] + geb: + accelerator: 360 + auction: [30, 30] # Synchronization delay, in seconds timeout_on_wait: 300 Quinta: diff --git a/op_robot_tests/tests_files/initial_data.py b/op_robot_tests/tests_files/initial_data.py index 01199fa1e..2b5861bdb 100644 --- a/op_robot_tests/tests_files/initial_data.py +++ b/op_robot_tests/tests_files/initial_data.py @@ -10,7 +10,7 @@ from op_faker import OP_Provider import os import random - +import re fake_en = Factory.create(locale='en_US') fake_ru = Factory.create(locale='ru_RU') @@ -37,18 +37,18 @@ def create_fake_tenderAttempts(attempt): def create_fake_title(language): title = { - u'ua': u"[ТЕСТУВАННЯ] {}".format(fake.title()), - u'ru': u"[ТЕСТИРОВАНИЕ] {}".format(fake_ru.sentence(nb_words=2), variable_nb_words=True), - u'en': u"[TESTING] {}".format(fake_en.sentence(nb_words=2), variable_nb_words=True) + u'ua': u"[ТЕСТУВАННЯ] {}".format(fake.title()), + u'ru': u"[ТЕСТИРОВАНИЕ] {}".format(fake_ru.sentence(nb_words=2), variable_nb_words=True), + u'en': u"[TESTING] {}".format(fake_en.sentence(nb_words=2), variable_nb_words=True) } return title[language] def create_fake_description(language): description = { - u'ua': fake.sentence(nb_words=10, variable_nb_words=True), - u'ru': fake_ru.sentence(nb_words=10, variable_nb_words=True), - u'en': fake_en.sentence(nb_words=10, variable_nb_words=True) + u'ua': fake.sentence(nb_words=10, variable_nb_words=True), + u'ru': fake_ru.sentence(nb_words=10, variable_nb_words=True), + u'en': fake_en.sentence(nb_words=10, variable_nb_words=True) } return description[language] @@ -57,6 +57,10 @@ def create_fake_dgfID(): return fake.dgfID() +def create_fake_date(): + return get_now().isoformat() + + def convert_days_to_seconds(days, accelerator): seconds = timedelta(days=int(days)).total_seconds() return seconds / accelerator @@ -113,6 +117,18 @@ def create_fake_doc(): return tf.name, os.path.basename(tf.name), content +def create_fake_item_description(description): + return re.match(r'(^[filq]-[0-9a-fA-F]{8}): ', description).group(0) + fake.title() + + +def create_fake_items_quantity(): + return round(random.uniform(1, 10), 3) + + +def create_fake_scheme_id_geb(): + return fake.scheme_geb() + + def create_fake_image(): # TODO: Move this code (as well as other "fake" stuff in this file) # into op_faker @@ -133,11 +149,39 @@ def create_fake_url(): base = 'https://dummyimage.com' background_color = ''.join([random.choice('0123456789ABCDEF') for _ in range(6)]) font_color = ''.join([random.choice('0123456789ABCDEF') for _ in range(6)]) - size_x = random.randint(10, 1000) - size_y = random.randint(10, 1000) + size_x = random.randint(10, 1000) + size_y = random.randint(10, 1000) return '{0}/{1}x{2}/{3}/{4}.png'.format(base, size_x, size_y, background_color, font_color) +def create_fake_bankName(old_name=None): + banks_name = [u'PrivatBank', u'Oschadbank', u'Raiffeisen Bank Aval', u'KredoBank', u'ProCredit Bank'] + if old_name: + banks_name.remove(old_name) + return random.choice(banks_name) + + +def create_fake_month(old_value=False, start=1, end=12): + """ + Example: P9M + """ + month = range(start, end+1) + if old_value: + old_value = old_value.strip('PM') + month.remove(int(old_value)) + return "P{}M".format(random.choice(month)) + + + +def create_fake_scheme_id(scheme): + scheme_id = { + u'UA-MFO': random.randint(100000, 999999), + u'UA-EDR': random.randint(10000000, 99999999), + u'accountNumber': random.randint(1000000000, 9999999999) + } + return str(scheme_id[scheme]) + + def test_tender_data(params, periods=("enquiry", "tender")): now = get_now() value_amount = create_fake_amount(3000, 999999999.99) # max value equals to budget of Ukraine in hryvnias @@ -171,14 +215,10 @@ def test_tender_data(params, periods=("enquiry", "tender")): accelerator = params['intervals']['accelerator'] data['procurementMethodDetails'] = 'quick, ' \ - 'accelerator={}'.format(accelerator) + 'accelerator={}'.format(accelerator) data["procuringEntity"]["kind"] = "other" - data['rectificationPeriod'] = { - "endDate": (get_now() + timedelta(minutes=(random.randint(5, 19) * 1440) / accelerator)).isoformat(), - } - scheme_group = fake.scheme_other()[:4] for i in range(params['number_of_items']): new_item = test_item_data(scheme_group) @@ -250,12 +290,23 @@ def test_bid_value(max_value_amount, minimalStep): return munchify({ "value": { "currency": "UAH", - "amount": round(random.uniform(1, 1.05)*(max_value_amount + minimalStep), 2), + "amount": round(random.uniform(1, 1.05) * (max_value_amount + minimalStep), 2), "valueAddedTaxIncluded": True } }) +def test_bid_qualified(bid_number, bid_id): + return munchify({ + "data": { + "status": "active", + "qualified": True, + "bidNumber": int(bid_number), + "id": bid_id + } + }) + + def test_supplier_data(): return munchify({ "data": { @@ -272,9 +323,9 @@ def test_supplier_data(): }) -def test_item_data(scheme): - #using typical functions for dgf other and all other modes besides dgf financial - #items will be genareted from other CAV-PS group +def test_item_data(scheme, decimal_digits=3): + # using typical functions for dgf other and all other modes besides dgf financial + # items will be genareted from other CAV-PS group data = fake.fake_item(scheme) data["description"] = field_with_id("i", data["description"]) @@ -282,17 +333,17 @@ def test_item_data(scheme): data["description_ru"] = field_with_id("i", data["description_ru"]) days = fake.random_int(min=1, max=30) data["contractPeriod"] = { - "startDate": get_now().replace(hour=0, minute=0, second=0, microsecond=0).isoformat(), - "endDate": get_now().replace(hour=0, minute=0, second=0, microsecond=0).isoformat() + "startDate": get_now().replace(hour=0, minute=0, second=0, microsecond=0).isoformat(), + "endDate": get_now().replace(hour=0, minute=0, second=0, microsecond=0).isoformat() } - data["quantity"] = round(random.uniform(1, 10), 3) + data["quantity"] = round(random.uniform(1, 10), int(decimal_digits)) return munchify(data) def test_tender_data_dgf_other(params): data = test_tender_data(params, []) - data['dgfID'] = fake.dgfID() + data['lotIdentifier'] = fake.dgfID() data['tenderAttempts'] = fake.random_int(min=1, max=4) data['minNumberOfQualifiedBids'] = int(params['minNumberOfQualifiedBids']) del data["procuringEntity"] @@ -319,3 +370,58 @@ def test_tender_data_dgf_other(params): new_item = test_item_data(scheme_group_other) data['items'].append(new_item) return data + + +def test_tender_data_dgf_geb(params): + data = test_tender_data(params, []) + value_amount = create_fake_amount(3000, 999999999.99) # max value equals to budget of Ukraine in hryvnias + + for i in range(params['number_of_items']): + data['items'].pop() + + scheme = random.choice([u'UA-EDR', u'UA-MFO', u'accountNumber']) + scheme_id = create_fake_scheme_id(scheme) + + data['procurementMethodType'] = "landLease" + data['lotIdentifier'] = fake.dgfID() + data['lotHolder'] = fake.procuringEntity() + data['registrationFee'] = { + "amount": create_fake_guarantee(value_amount), + "currency": u"UAH" + } + data['bankAccount'] = { + "description": fake.description(), + "bankName": create_fake_bankName(), + "accountIdentification": [{ + "scheme": scheme, + "id": scheme_id, + "description": fake.description() + }] + } + data['budgetSpent'] = { + "amount": value_amount, + "currency": u"UAH", + "valueAddedTaxIncluded": False + } + data['tenderAttempts'] = fake.random_int(min=1, max=10) + data['contractTerms'] = { + "type": "lease", + "leaseTerms": { + "leaseDuration": create_fake_month(), + } + } + + period_dict = {} + inc_dt = get_now() + period_dict["auctionPeriod"] = {} + inc_dt += timedelta(minutes=params['intervals']['auction'][0]) + period_dict["auctionPeriod"]["startDate"] = inc_dt.isoformat() + data.update(period_dict) + + data["minNumberOfQualifiedBids"] = int(params['minNumberOfQualifiedBids']) + + scheme_group = fake.scheme_geb()[:4] + for i in range(params['number_of_items']): + new_item = test_item_data(scheme_group, 4) + data['items'].append(new_item) + return data diff --git a/op_robot_tests/tests_files/keywords.robot b/op_robot_tests/tests_files/keywords.robot index 43daf0a38..30679bec8 100644 --- a/op_robot_tests/tests_files/keywords.robot +++ b/op_robot_tests/tests_files/keywords.robot @@ -208,8 +208,9 @@ Get Broker Property By Username Підготувати дані для створення предмету закупівлі [Arguments] ${scheme} - ${item} = Run Keyword If '${MODE}'=='dgfFinancialAssets' test_item_data_financial ${scheme[0:4]} - ... ELSE test_item_data ${scheme[0:4]} + ${decimal_digits}= Set Variable If '${MODE}'=='geb' 4 3 + Log ${decimal_digits} + ${item}= test_item_data ${scheme[0:4]} ${decimal_digits} [Return] ${item} @@ -414,12 +415,14 @@ Log differences between dicts compare_tender_attempts ${left} ${right} -Звірити поле ${field} тендера усіх предметів для користувача ${username} +Звірити відображення опису додаткової класифікаці усіх предметів для користувача ${username} + ${field}= Set Variable additionalClassifications[0].description :FOR ${item_index} IN RANGE ${NUMBER_OF_ITEMS} \ ${item_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}]} \ ${left}= Set Variable ${USERS.users['${tender_owner}'].initial_data.data['items'][${item_index}].${field}} \ ${right}= Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} ${field} ${item_id} - \ compare_additionalClassifications_description ${right} + \ Run Keyword If '${MODE}'=='dgfOtherAssets' compare_additionalClassifications_description ${right} + \ ... ELSE Звірити поле тендера із значенням ${username} ${TENDER['TENDER_UAID']} ${left} ${field} ${item_id} Порівняти об'єкти @@ -588,7 +591,7 @@ Log differences between dicts ... 15 s ... Run As ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} Should Be True '${url}' - Should Match Regexp ${url} ^https?:\/\/sandbox\.ea2\.openprocurement\.auction\/auctions\/([0-9A-Fa-f]{32}) + Should Match Regexp ${url} ^https?:\/\/sandbox\.ea2\.openprocurement\.auction\/auctions|texas-auctions\/([0-9A-Fa-f]{32}) Log URL аукціону для глядача: ${url} @@ -603,7 +606,7 @@ Log differences between dicts ... 15 s ... Run As ${username} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} Should Be True '${url}' - Should Match Regexp ${url} ^https?:\/\/sandbox\.ea2\.openprocurement\.auction\/auctions\/([0-9A-Fa-f]{32}) + Should Match Regexp ${url} ^https?:\/\/sandbox\.ea2\.openprocurement\.auction\/auctions|texas-auctions\/([0-9A-Fa-f]{32}) Log URL аукціону для учасника: ${url} @@ -747,10 +750,17 @@ Require Failure Дочекатись дати закінчення періоду редагування лоту - [Arguments] ${username} + [Arguments] ${username} ${tender_uaid} wait_and_write_to_console ${USERS.users['${username}'].tender_data.data.rectificationPeriod.endDate} Оновити LAST_MODIFICATION_DATE Дочекатись синхронізації з майданчиком ${username} + Wait until keyword succeeds + ... 12 min 15 sec + ... 15 sec + ... Звірити статус тендера + ... ${username} + ... ${tender_uaid} + ... active.tendering Дочекатись дати закінчення прийому пропозицій @@ -767,7 +777,7 @@ Require Failure Оновити LAST_MODIFICATION_DATE Дочекатись синхронізації з майданчиком ${username} Wait until keyword succeeds - ... 5 min 15 sec + ... 15 min 15 sec ... 15 sec ... Run Keyword And Expect Error * ... Звірити статус тендера @@ -781,7 +791,7 @@ Require Failure Оновити LAST_MODIFICATION_DATE Дочекатись синхронізації з майданчиком ${username} Wait until keyword succeeds - ... 12 min 15 sec + ... 14 min 15 sec ... 15 sec ... Звірити статус тендера ... ${username} diff --git a/op_robot_tests/tests_files/op_faker/op_faker.py b/op_robot_tests/tests_files/op_faker/op_faker.py index f17d65f6e..4589dff4b 100644 --- a/op_robot_tests/tests_files/op_faker/op_faker.py +++ b/op_robot_tests/tests_files/op_faker/op_faker.py @@ -24,6 +24,7 @@ class OP_Provider(BaseProvider): addresses = __fake_data.addresses classifications_other = __fake_data.classifications_other schemes_other = __fake_data.schemes_other + schemes_geb = __fake_data.schemes_geb items_base_data_other = __fake_data.items_base_data_other additionalIdentifiers = __fake_data.additionalIdentifiers @@ -105,6 +106,10 @@ def procuringEntity_other(self): def scheme_other(self): return self.random_element(self.schemes_other) + @classmethod + def scheme_geb(self): + return self.random_element(self.schemes_geb) + @classmethod def additionalIdentifier(self): return self.random_element(self.additionalIdentifiers) diff --git a/op_robot_tests/tests_files/op_faker/op_faker_data.json b/op_robot_tests/tests_files/op_faker/op_faker_data.json index f707e3321..ba00508cc 100644 --- a/op_robot_tests/tests_files/op_faker/op_faker_data.json +++ b/op_robot_tests/tests_files/op_faker/op_faker_data.json @@ -2940,15 +2940,78 @@ { "additionalClassifications": [ { - "scheme": "CPVS", - "id": "PA01-7", - "description": "Оренда" + "scheme": "kvtspz", + "id": "01.01", + "description": "Для ведення товарного сільськогосподарського виробництва" + }, + { + "scheme": "cadastralNumber", + "id": "12.02", + "description": "Для розміщення та експлуатації будівель і споруд морського транспорту" } ], "classification": { "scheme": "CAV-PS", - "id": "05110000-9", - "description": "Молокозаводи" + "id": "06110000-6", + "description": "Земельні ділянки" + } + + }, + { + "additionalClassifications": [ + { + "scheme": "kvtspz", + "id": "02.03", + "description": "Для будівництва і обслуговування багатоквартирного житлового будинку" + }, + { + "scheme": "cadastralNumber", + "id": "12.02", + "description": "Для розміщення та експлуатації будівель і споруд морського транспорту" + } + ], + "classification": { + "scheme": "CAV-PS", + "id": "06111000-3", + "description": "Земельні ділянки" + } + }, + { + "additionalClassifications": [ + { + "scheme": "kvtspz", + "id": "03.07", + "description": "Для будівництва та обслуговування будівель торгівлі" + }, + { + "scheme": "cadastralNumber", + "id": "12.02", + "description": "Для розміщення та експлуатації будівель і споруд морського транспорту" + } + ], + "classification": { + "scheme": "CAV-PS", + "id": "06112000-0", + "description": "Земельні ділянки" + } + }, + { + "additionalClassifications": [ + { + "scheme": "kvtspz", + "id": "07.04", + "description": "Для колективного дачного будівництва" + }, + { + "scheme": "cadastralNumber", + "id": "12.02", + "description": "Для розміщення та експлуатації будівель і споруд морського транспорту" + } + ], + "classification": { + "scheme": "CAV-PS", + "id": "06120000-9", + "description": "Земельні ділянки" } }, { @@ -2961,8 +3024,8 @@ ], "classification": { "scheme": "CAV-PS", - "id": "06110000-6", - "description": "Земельні ділянки призначені для забудови" + "id": "05110000-9", + "description": "Молокозаводи" } }, { @@ -3148,7 +3211,6 @@ ], "schemes_other": [ "05110000-9", - "06110000-6", "04211000-0", "04111000-9", "30111000-0", @@ -3157,6 +3219,12 @@ "16720000-8", "98910000-5" ], + "schemes_geb": [ + "06110000-6", + "06111000-3", + "06112000-0", + "06120000-9" + ], "items_base_data_other": [ { "scheme_id": "05110000-9", @@ -3176,8 +3244,41 @@ "description_en": "The land is intended for development", "quantity": 7, "unit": { - "code": "MTK", - "name": "метри квадратні" + "code": "HAR", + "name": "гектар" + } + }, + { + "scheme_id": "06111000-3", + "description": "Землі житлової забудови", + "description_ru": "Земли жилой застройки", + "description_en": "Land for residential development", + "quantity": 4, + "unit": { + "code": "HAR", + "name": "гектар" + } + }, + { + "scheme_id": "06112000-0", + "description": "Землі громадської забудови", + "description_ru": "Земли общественной застройки", + "description_en": "Lands for public construction", + "quantity": 3, + "unit": { + "code": "HAR", + "name": "гектар" + } + }, + { + "scheme_id": "06120000-9", + "description": "Землі з іншим призначенням", + "description_ru": "Земли с другим назначением", + "description_en": "Lands for other purposes", + "quantity": 1, + "unit": { + "code": "HAR", + "name": "гектар" } }, { diff --git a/op_robot_tests/tests_files/openProcedure.robot b/op_robot_tests/tests_files/openProcedure.robot index f495c71a6..856acb28b 100644 --- a/op_robot_tests/tests_files/openProcedure.robot +++ b/op_robot_tests/tests_files/openProcedure.robot @@ -40,7 +40,6 @@ ${ITEM_MEAT} ${True} ... viewer ... ${USERS.users['${viewer}'].broker} ... tender_view - [Setup] Дочекатись синхронізації з майданчиком ${viewer} Звірити відображення поля title тендера для користувача ${viewer} @@ -49,17 +48,119 @@ ${ITEM_MEAT} ${True} ... viewer ... ${USERS.users['${viewer}'].broker} ... tender_view_min_bids_number - [Setup] Дочекатись синхронізації з майданчиком ${viewer} Звірити відображення поля minNumberOfQualifiedBids тендера для користувача ${viewer} -Відображення номера лоту ФГВ +Відображення організатора аукціону + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля lotHolder тендера для користувача ${viewer} + + +Відображення розміру реєстраційного внеску + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля registrationFee.amount тендера для користувача ${viewer} + + +Відображення валюти реєстраційного внеску + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля registrationFee.currency тендера для користувача ${viewer} + + +Відображення опису банківських реквізитів + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля bankAccount.description тендера для користувача ${viewer} + + +Відображення найменування банку + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля bankAccount.bankName тендера для користувача ${viewer} + + +Відображення схеми ідентифікатора акаунта банку + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля bankAccount.accountIdentification[0].scheme тендера для користувача ${viewer} + + +Відображення номера ідентифікатора акаунта банку + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля bankAccount.accountIdentification[0].id тендера для користувача ${viewer} + + +Відображення опису ідентифікатора акаунта банку + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля bankAccount.accountIdentification[0].description тендера для користувача ${viewer} + + +Відображення вартості підготовки лоту до торгів + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля budgetSpent.amount тендера для користувача ${viewer} + + +Відображення валюти вартості підготовки лоту до торгів + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля budgetSpent.currency тендера для користувача ${viewer} + + +Відображення включеного податку до вартості підготовки лоту до торгів + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля budgetSpent.valueAddedTaxIncluded тендера для користувача ${viewer} + + +Відображення типу умови контракту + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля contractTerms.type тендера для користувача ${viewer} + + +Відображення тривалості оренди + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... tender_view_landLease + Звірити відображення поля contractTerms.leaseTerms.leaseDuration тендера для користувача ${viewer} + + +Відображення номера лоту замовника [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту ... viewer ... ${USERS.users['${viewer}'].broker} ... tender_view - [Setup] Дочекатись синхронізації з майданчиком ${viewer} - Звірити відображення поля dgfID тендера для користувача ${viewer} + Звірити відображення поля lotIdentifier тендера для користувача ${viewer} Відображення поля "Лоти виставляються" @@ -119,6 +220,15 @@ ${ITEM_MEAT} ${True} Звірити відображення поля procuringEntity.name тендера для користувача ${viewer} +Відображення завершення періоду редагування лоту + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer tender_owner provider provider1 + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} + ... tender_view + Отримати дані із поля rectificationPeriod.endDate тендера для усіх користувачів + + Відображення початку періоду уточнення лоту [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту ... viewer tender_owner provider provider1 @@ -182,7 +292,6 @@ ${ITEM_MEAT} ${True} ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} ... tender_view - [Setup] Дочекатись синхронізації з майданчиком ${viewer} Звірити відображення поля description усіх предметів для усіх користувачів @@ -271,7 +380,7 @@ ${ITEM_MEAT} ${True} ... viewer ... ${USERS.users['${viewer}'].broker} ... tender_view - Звірити поле additionalClassifications[0].description тендера усіх предметів для користувача ${viewer} + Звірити відображення опису додаткової класифікаці усіх предметів для користувача ${viewer} Відображення назви одиниці активів лоту @@ -325,14 +434,6 @@ ${ITEM_MEAT} ${True} Звірити відображення поля guarantee.amount тендера для усіх користувачів -Відображення дати завершення періоду редагування лоту - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту - ... viewer - ... ${USERS.users['${viewer}'].broker} - ... tender_view - Звірити відображення дати rectificationPeriod.endDate тендера для користувача ${viewer} - - Можливість перевірити тривалість періоду редагування лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних лоту ... tender_owner @@ -346,12 +447,101 @@ ${ITEM_MEAT} ${True} # Редагування лоту ############################################################################################## -Можливість змінити назву лоту російською мовою +Можливість змінити дані про організатора лоту + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_procuringEntity_name + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_procuringEntity_name}= create_fake_sentence + Set To Dictionary ${USERS.users['${tender_owner}']} new_procuringEntity_name=${new_procuringEntity_name} + Можливість змінити поле procuringEntity.name тендера на ${new_procuringEntity_name} + + +Відображення змінених даних про організатора лоту + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_procuringEntity_name + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.procuringEntity} name + Звірити відображення поля procuringEntity.name тендера із ${USERS.users['${tender_owner}'].new_procuringEntity_name} для користувача ${viewer} + + +Можливість змінити номер лоту замовника + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_lotIdentifier + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_lotIdentifier}= create_fake_dgfID + Set To Dictionary ${USERS.users['${tender_owner}']} new_lotIdentifier=${new_lotIdentifier} + Можливість змінити поле lotIdentifier тендера на ${new_lotIdentifier} + + +Відображення зміненого номера лоту замовника + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_lotIdentifier + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data} lotIdentifier + Звірити відображення поля lotIdentifier тендера із ${USERS.users['${tender_owner}'].new_lotIdentifier} для користувача ${viewer} + + +Можливість змінити дані про організатора лоту ДЗК + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_lotHolder + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_lotHolder_name}= create_fake_sentence + Set To Dictionary ${USERS.users['${tender_owner}']} new_lotHolder_name=${new_lotHolder_name} + Можливість змінити поле lotHolder.name тендера на ${new_lotHolder_name} + + +Відображення змінених даних про організатора лоту ДЗК + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_lotHolder + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.lotHolder} name + Звірити відображення поля lotHolder.name тендера із ${USERS.users['${tender_owner}'].new_lotHolder_name} для користувача ${viewer} + + +Можливість змінити назву лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... modify_auction_title [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_title}= create_fake_title ua + Set To Dictionary ${USERS.users['${tender_owner}']} new_title=${new_title} + Можливість змінити поле title тендера на ${new_title} + + +Відображення зміненої назви лоту + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_title + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data} title + Звірити відображення поля title тендера із ${USERS.users['${tender_owner}'].new_title} для користувача ${viewer} + + +Можливість змінити назву лоту російською мовою + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_title_ru + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE ${new_title}= create_fake_title ru Set To Dictionary ${USERS.users['${tender_owner}']} new_title=${new_title} Можливість змінити поле title_ru тендера на ${new_title} @@ -361,7 +551,7 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту ... viewer ... ${USERS.users['${viewer}'].broker} - ... modify_auction_title + ... modify_auction_title_ru [Setup] Дочекатись синхронізації з майданчиком ${viewer} Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data} title_ru Звірити відображення поля title_ru тендера із ${USERS.users['${tender_owner}'].new_title} для користувача ${viewer} @@ -371,8 +561,9 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот ... tender_owner ... ${USERS.users['${tender_owner}'].broker} - ... modify_auction_title + ... modify_auction_title_en [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE ${new_title}= create_fake_title en Set To Dictionary ${USERS.users['${tender_owner}']} new_title=${new_title} Можливість змінити поле title_en тендера на ${new_title} @@ -382,7 +573,7 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту ... viewer ... ${USERS.users['${viewer}'].broker} - ... modify_auction_title + ... modify_auction_title_en [Setup] Дочекатись синхронізації з майданчиком ${viewer} Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data} title_en Звірити відображення поля title_en тендера із ${USERS.users['${tender_owner}'].new_title} для користувача ${viewer} @@ -394,6 +585,7 @@ ${ITEM_MEAT} ${True} ... ${USERS.users['${tender_owner}'].broker} ... modify_auction_description [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE ${new_description}= create_fake_description ua Set To Dictionary ${USERS.users['${tender_owner}']} new_description=${new_description} Можливість змінити поле description тендера на ${new_description} @@ -413,8 +605,9 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот ... tender_owner ... ${USERS.users['${tender_owner}'].broker} - ... modify_auction_description + ... modify_auction_description_ru [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE ${new_description}= create_fake_description ru Set To Dictionary ${USERS.users['${tender_owner}']} new_description_ru=${new_description} Можливість змінити поле description_ru тендера на ${new_description} @@ -424,7 +617,7 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту ... viewer ... ${USERS.users['${viewer}'].broker} - ... modify_auction_description + ... modify_auction_description_ru [Setup] Дочекатись синхронізації з майданчиком ${viewer} Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data} description_ru Звірити відображення поля description_ru тендера із ${USERS.users['${tender_owner}'].new_description_ru} для користувача ${viewer} @@ -434,8 +627,9 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот ... tender_owner ... ${USERS.users['${tender_owner}'].broker} - ... modify_auction_description + ... modify_auction_description_en [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE ${new_description}= create_fake_description en Set To Dictionary ${USERS.users['${tender_owner}']} new_description_en=${new_description} Можливість змінити поле description_en тендера на ${new_description} @@ -445,7 +639,7 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту ... viewer ... ${USERS.users['${viewer}'].broker} - ... modify_auction_description + ... modify_auction_description_en [Setup] Дочекатись синхронізації з майданчиком ${viewer} Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data} description_en Звірити відображення поля description_en тендера із ${USERS.users['${tender_owner}'].new_description_en} для користувача ${viewer} @@ -458,6 +652,7 @@ ${ITEM_MEAT} ${True} ... modify_tenderAttempts ${new_attempt}= create_fake_tenderAttempts ${USERS.users['${viewer}'].tender_data.data.tenderAttempts} [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE Set To Dictionary ${USERS.users['${tender_owner}']} new_attempt=${new_attempt} Можливість змінити поле tenderAttempts тендера на ${new_attempt} @@ -472,27 +667,6 @@ ${ITEM_MEAT} ${True} Звірити відображення поля tenderAttempts тендера із ${USERS.users['${tender_owner}'].new_attempt} для користувача ${viewer} -Можливість змінити номер лоту ФГВ - [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних лоту - ... tender_owner - ... ${USERS.users['${tender_owner}'].broker} - ... modify_dgfID - [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} - ${new_dgfID}= create_fake_dgfID - Set To Dictionary ${USERS.users['${tender_owner}']} new_dgfID=${new_dgfID} - Можливість змінити поле dgfID тендера на ${new_dgfID} - - -Відображення зміненого номер лоту ФГВ - [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту - ... viewer - ... ${USERS.users['${viewer}'].broker} - ... modify_dgfID - [Setup] Дочекатись синхронізації з майданчиком ${viewer} - Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data} dgfID - Звірити відображення поля dgfID тендера із ${USERS.users['${tender_owner}'].new_dgfID} для користувача ${viewer} - - Можливість змінити ПДВ в бюджеті лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот ... tender_owner @@ -576,7 +750,7 @@ ${ITEM_MEAT} ${True} ... modify_auction_guarantee [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} [Teardown] Оновити LAST_MODIFICATION_DATE - ${new_guarantee_amount}= create_fake_guarantee ${USERS.users['${tender_owner}'].new_amount} + ${new_guarantee_amount}= create_fake_guarantee ${USERS.users['${tender_owner}'].tender_data.data.guarantee.amount} Set To Dictionary ${USERS.users['${tender_owner}']} new_guarantee_value=${new_guarantee_amount} Можливість змінити поле guarantee.amount тендера на ${new_guarantee_amount} @@ -591,6 +765,199 @@ ${ITEM_MEAT} ${True} Звірити відображення поля guarantee.amount тендера із ${USERS.users['${tender_owner}'].new_guarantee_value} для користувача ${viewer} +Можливість змінити розмір реєстраційного внеску + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_registrationFee + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_registrationFee_amount}= create_fake_guarantee ${USERS.users['${tender_owner}'].tender_data.data.registrationFee.amount} + Set To Dictionary ${USERS.users['${tender_owner}']} new_registrationFee_value=${new_registrationFee_amount} + Можливість змінити поле registrationFee.amount тендера на ${new_registrationFee_amount} + + +Відображення зміненого розміру реєстраційного внеску + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_registrationFee + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.registrationFee} amount + Звірити відображення поля registrationFee.amount тендера із ${USERS.users['${tender_owner}'].new_registrationFee_value} для користувача ${viewer} + + +Можливість змінити опис банківських реквізитів + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_bankAccount + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_bankAccount_description}= create_fake_description ua + Set To Dictionary ${USERS.users['${tender_owner}']} new_bankAccount_description=${new_bankAccount_description} + Можливість змінити поле bankAccount.description тендера на ${new_bankAccount_description} + + +Відображення зміненого опису банківських реквізитів + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_bankAccount + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.bankAccount} description + Звірити відображення поля bankAccount.description тендера із ${USERS.users['${tender_owner}'].new_bankAccount_description} для користувача ${viewer} + + +Можливість змінити найменування банку + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_bankAccount + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_bankAccount_bankName}= create_fake_bankName ${USERS.users['${viewer}'].tender_data.data.bankAccount.bankName} + Set To Dictionary ${USERS.users['${tender_owner}']} new_bankAccount_bankName=${new_bankAccount_bankName} + Можливість змінити поле bankAccount.bankName тендера на ${new_bankAccount_bankName} + + +Відображення зміненого найменування банку + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_bankAccount + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.bankAccount} bankName + Звірити відображення поля bankAccount.bankName тендера із ${USERS.users['${tender_owner}'].new_bankAccount_bankName} для користувача ${viewer} + + +Можливість змінити основну інформацію про рахунок + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_bankAccount + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_bankAccount_accountIdentification}= create_fake_description ua + Set To Dictionary ${USERS.users['${tender_owner}']} new_bankAccount_accountIdentification=${new_bankAccount_accountIdentification} + Можливість змінити поле bankAccount.accountIdentification[0].description тендера на ${new_bankAccount_accountIdentification} + + +Відображення зміненої основної інформацію про рахунок + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_bankAccount + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.bankAccount.accountIdentification[0]} description + Звірити відображення поля bankAccount.accountIdentification[0].description тендера із ${USERS.users['${tender_owner}'].new_bankAccount_accountIdentification} для користувача ${viewer} + + +Можливість змінити вартість підготовки лоту до торгів + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_budgetSpent + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_budgetSpent_amount}= create_fake_value ${USERS.users['${tender_owner}'].tender_data.data.budgetSpent.amount} + Set To Dictionary ${USERS.users['${tender_owner}']} new_budgetSpent_amount=${new_budgetSpent_amount} + Можливість змінити поле budgetSpent.amount тендера на ${new_budgetSpent_amount} + + +Відображення зміненої вартості підготовки лоту до торгів + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_budgetSpent + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.budgetSpent} amount + Звірити відображення поля budgetSpent.amount тендера із ${USERS.users['${tender_owner}'].new_budgetSpent_amount} для користувача ${viewer} + + +Можливість змінити умови оренди + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_auction_contractTerms + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_contractTerms_leaseTerms_leaseDuration}= create_fake_month ${USERS.users['${viewer}'].tender_data.data.contractTerms.leaseTerms.leaseDuration} + Set To Dictionary ${USERS.users['${tender_owner}']} new_contractTerms_leaseTerms_leaseDuration=${new_contractTerms_leaseTerms_leaseDuration} + Можливість змінити поле contractTerms.leaseTerms.leaseDuration тендера на ${new_contractTerms_leaseTerms_leaseDuration} + + +Відображення змінених умов оренди + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... modify_auction_contractTerms + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.contractTerms.leaseTerms} leaseDuration + Звірити відображення поля contractTerms.leaseTerms.leaseDuration тендера із ${USERS.users['${tender_owner}'].new_contractTerms_leaseTerms_leaseDuration} для користувача ${viewer} + + +Можливість внести зміни до кількості одиниць виміру активу об’єкта МП + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати об'єкт МП + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_asset + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${quantity}= create_fake_items_quantity + Set To Dictionary ${USERS.users['${tender_owner}']} quantity=${quantity} + Можливість змінити поле quantity предмета 0 на ${quantity} + + +Відображення зміненої кількості одиниць виміру активу об’єкта МП + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних об'єкта МП + ... viewer tender_owner + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} + ... modify_asset + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення зміненого поля quantity предмета 0 для користувача ${viewer} + + +Можливість внести зміни до ідентифікатора класифікації активу об’єкта МП + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати об'єкт МП + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_classification_id + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_id}= create_fake_scheme_id_geb + Можливість змінити поле classification.id предмета 0 на ${new_id} + + +Відображення зміненого ідентифікатора класифікації активу об’єкта МП + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних об'єкта МП + ... viewer tender_owner + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} + ... modify_classification_id + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення зміненого поля classification.id предмета 0 для користувача ${viewer} + + +Можливість внести зміни до опису активу об’єкта МП + [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати об'єкт МП + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... modify_asset_description + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + ${new_description}= create_fake_item_description ${USERS.users['${tender_owner}'].initial_data['data']['items'][0]['description']} + Можливість змінити поле description предмета 0 на ${new_description} + + +Відображення зміненого опису активу об’єкта МП + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних об'єкта МП + ... viewer tender_owner + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} + ... modify_asset_description + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення зміненого поля description предмета 0 для користувача ${viewer} + + Можливість додати актив лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування лота ... tender_owner @@ -608,6 +975,9 @@ ${ITEM_MEAT} ${True} [Teardown] Оновити LAST_MODIFICATION_DATE Можливість видалити предмет закупівлі з тендера +############################################################################################## +# Document +############################################################################################## Можливість додати документацію до лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації @@ -618,6 +988,42 @@ ${ITEM_MEAT} ${True} Можливість додати документацію до тендера +Можливість завантажити ілюстрацію лоту аукціону + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_illustration_test + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом illustration + + +Можливість завантажити кваліфікаційні вимоги до лоту + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_evaluationCriteria + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом evaluationCriteria + + +Можливість завантажити типовий договір до лоту + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_contractProforma + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом contractProforma + + +Можливість завантажити документ з описом причин редагування + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_clarifications + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом clarifications + + Можливість завантажити договір про нерозголошення до лоту [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації ... tender_owner @@ -654,6 +1060,87 @@ ${ITEM_MEAT} ${True} Можливість завантажити документ до тендера з типом technicalSpecifications +Можливість завантажити документ про кількість + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_billOfQuantity + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом billOfQuantity + + +Можливість завантажити документ про виявлені конфлікти інтересів + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_conflictOfInterest + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом conflictOfInterest + + +Можливість завантажити звіт про оцінку + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_evaluationReports + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом evaluationReports + + +Можливість завантажити критерії прийнятності + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_eligibilityCriteria + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом eligibilityCriteria + + +Можливість завантажити ліцензію + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_x_financialLicense + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом x_financialLicense + + +Можливість завантажити документ з віртуальним номером даних + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_x_virtualDataRoom + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом x_virtualDataRoom + + +Можливість завантажити договір про нерозголошення + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_x_nda + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом x_nda + + +Можливість завантажити кваліфікаційні документи + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_x_qualificationDocuments + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом x_qualificationDocuments + + +Можливість завантажити документ про подробиці скасування + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_cancellationDetails + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом cancellationDetails + + Можливість завантажити документ з умовами ознайомлення з майном/активом у кімнаті даних [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації ... tender_owner @@ -688,7 +1175,7 @@ ${ITEM_MEAT} ${True} ... provider ... ${USERS.users['${provider}'].broker} ... ask_question_to_tender - [Teardown] Оновити LMD і дочекатись синхронізації ${provider} + [Teardown] Оновити LAST_MODIFICATION_DATE Можливість задати запитання на тендер користувачем ${provider} @@ -716,7 +1203,7 @@ ${ITEM_MEAT} ${True} ... ${USERS.users['${tender_owner}'].broker} ... answer_question_to_tender [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} - [Teardown] Оновити LMD і дочекатись синхронізації ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE Можливість відповісти на запитання на тендер @@ -734,7 +1221,7 @@ ${ITEM_MEAT} ${True} ... provider ... ${USERS.users['${provider}'].broker} ... ask_question_to_item - [Teardown] Оновити LMD і дочекатись синхронізації ${provider} + [Teardown] Оновити LAST_MODIFICATION_DATE :FOR ${item_index} IN RANGE ${NUMBER_OF_ITEMS} \ Можливість задати запитання на ${item_index} предмет користувачем ${provider} @@ -765,7 +1252,7 @@ ${ITEM_MEAT} ${True} ... ${USERS.users['${tender_owner}'].broker} ... answer_question_to_item [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} - [Teardown] Оновити LMD і дочекатись синхронізації ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE :FOR ${item_index} IN RANGE ${NUMBER_OF_ITEMS} \ Можливість відповісти на запитання на ${item_index} предмет @@ -922,22 +1409,23 @@ ${ITEM_MEAT} ${True} Можливість зменшити пропозицію до невалідної користувачем ${provider2} -Можливість змінити назву лоту українською мовою +Можливість змінити назву лоту українською мовою після подачі пропозиції [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот ... tender_owner ... ${USERS.users['${tender_owner}'].broker} - ... modify_auction_title + ... modify_auction_title_after_bidding [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE ${new_title}= create_fake_title ua Set To Dictionary ${USERS.users['${tender_owner}']} new_title=${new_title} Можливість змінити поле title тендера на ${new_title} -Відображення зміненої назви лоту українською мовою +Відображення зміненої назви лоту українською мовою після подачі пропозиції [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту ... viewer ... ${USERS.users['${viewer}'].broker} - ... modify_auction_title + ... modify_auction_title_after_bidding [Setup] Дочекатись синхронізації з майданчиком ${viewer} Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data} title Звірити відображення поля title тендера із ${USERS.users['${tender_owner}'].new_title} для користувача ${viewer} @@ -1013,7 +1501,7 @@ ${ITEM_MEAT} ${True} ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... modify_auction_description - [Setup] Дочекатись дати закінчення періоду редагування лоту ${tender_owner} + [Setup] Дочекатись дати закінчення періоду редагування лоту ${tender_owner} ${TENDER['TENDER_UAID']} ${new_description}= create_fake_description ua Перевірити неможливість зміни поля description тендера на значення ${new_description} для користувача ${tender_owner} @@ -1023,7 +1511,7 @@ ${ITEM_MEAT} ${True} ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... modify_auction_description - [Setup] Дочекатись дати закінчення періоду редагування лоту ${tender_owner} + [Setup] Дочекатись дати закінчення періоду редагування лоту ${tender_owner} ${TENDER['TENDER_UAID']} ${new_description}= create_fake_description ru Перевірити неможливість зміни поля description_ru тендера на значення ${new_description} для користувача ${tender_owner} @@ -1033,7 +1521,7 @@ ${ITEM_MEAT} ${True} ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... modify_auction_description - [Setup] Дочекатись дати закінчення періоду редагування лоту ${tender_owner} + [Setup] Дочекатись дати початку прийому пропозицій ${tender_owner} ${TENDER['TENDER_UAID']} ${new_description}= create_fake_description en Перевірити неможливість зміни поля description_en тендера на значення ${new_description} для користувача ${tender_owner} @@ -1052,7 +1540,7 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${tender_owner}'].broker}: Можливість редагувати лот ... tender_owner ... ${USERS.users['${tender_owner}'].broker} - ... modify_auction_title_ua + ... modify_auction_title [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} ${new_title}= create_fake_title ua Перевірити неможливість зміни поля title тендера на значення ${new_title} для користувача ${tender_owner} @@ -1112,10 +1600,10 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних лоту ... tender_owner ... ${USERS.users['${tender_owner}'].broker} - ... modify_dgfID + ... modify_auction_lotIdentifier [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} - ${new_dgfID}= create_fake_dgfID - Перевірити неможливість зміни поля dgfID тендера на значення ${new_dgfID} для користувача ${tender_owner} + ${new_lotIdentifier}= create_fake_dgfID + Перевірити неможливість зміни поля lotIdentifier тендера на значення ${new_lotIdentifier} для користувача ${tender_owner} Неможливість змінити початкову вартість лоту @@ -1143,7 +1631,6 @@ ${ITEM_MEAT} ${True} ... ${USERS.users['${tender_owner}'].broker} ... modify_auction_step [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} - [Teardown] Оновити LAST_MODIFICATION_DATE ${new_minimal_step}= create_fake_minimal_step ${USERS.users['${tender_owner}'].new_amount} Перевірити неможливість зміни поля minimalStep.amount тендера на значення ${new_minimal_step} для користувача ${tender_owner} @@ -1154,7 +1641,6 @@ ${ITEM_MEAT} ${True} ... ${USERS.users['${tender_owner}'].broker} ... modify_auction_guarantee [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} - [Teardown] Оновити LAST_MODIFICATION_DATE ${new_guarantee_amount}= create_fake_guarantee ${USERS.users['${tender_owner}'].new_amount} Перевірити неможливість зміни поля guarantee.amount тендера на значення ${new_guarantee_amount} для користувача ${tender_owner} @@ -1164,7 +1650,6 @@ ${ITEM_MEAT} ${True} ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... add_item - [Teardown] Оновити LAST_MODIFICATION_DATE Неможливість додати предмет закупівлі в тендер @@ -1173,7 +1658,6 @@ ${ITEM_MEAT} ${True} ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... delete_item - [Teardown] Оновити LAST_MODIFICATION_DATE Неможливість видалити предмет закупівлі з тендера @@ -1181,8 +1665,7 @@ ${ITEM_MEAT} ${True} [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування лота ... tender_owner ... ${USERS.users['${tender_owner}'].broker} - ... add_tender_doc - [Teardown] Оновити LAST_MODIFICATION_DATE + ... add_tender_doc_after_bidding Неможливість додати документацію до лоту @@ -1191,13 +1674,108 @@ ${ITEM_MEAT} ${True} ... tender_owner ... ${USERS.users['${tender_owner}'].broker} ... edit_document - [Teardown] Оновити LAST_MODIFICATION_DATE Неможливість редагувати документ ${tender_owner} ${TENDER['TENDER_UAID']} +############################################################################################## +# PRE-QUALIFICATION +############################################################################################## + +Можливість завантажити аукціонний квиток в пропозицію першим учасником + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції + ... provider + ... ${USERS.users['${provider}'].broker} + ... add_eligibilityDocuments_to_bid_by_provider + [Setup] Дочекатись дати закінчення прийому пропозицій ${tender_owner} ${TENDER['TENDER_UAID']} + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ з типом eligibilityDocuments в пропозицію користувачем ${provider} + + +Можливість кваліфікувати пропозицію першим учасником + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції + ... provider + ... ${USERS.users['${provider}'].broker} + ... make_bid_qualify_by_provider + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість кваліфікувати цінову пропозицію 1 користувачем ${provider} + + +Можливість завантажити аукціонний квиток в пропозицію другим учасником + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції + ... provider1 + ... ${USERS.users['${provider1}'].broker} + ... add_eligibilityDocuments_to_bid_by_provider1 + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ з типом eligibilityDocuments в пропозицію користувачем ${provider1} + + +Можливість кваліфікувати пропозицію другим учасником + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції + ... provider1 + ... ${USERS.users['${provider1}'].broker} + ... make_bid_qualify_by_provider1 + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість кваліфікувати цінову пропозицію 2 користувачем ${provider1} + ############################################################################################## # AFTER BIDDING ############################################################################################## +Можливість задати запитання на лот після закінчення прийому пропозицій + [Tags] ${USERS.users['${provider}'].broker}: Задання запитання + ... provider + ... ${USERS.users['${provider}'].broker} + ... ask_question_to_tender_after_tendering_period_geb + [Setup] Дочекатись дати закінчення прийому пропозицій ${provider} ${TENDER['TENDER_UAID']} + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість задати запитання на тендер користувачем ${provider} + + +Відображення заголовку запитання на лот без відповіді після закінчення прийому пропозицій + [Tags] ${USERS.users['${viewer}'].broker}: Відображення запитання + ... viewer tender_owner provider provider1 + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} + ... ask_question_to_tender_after_tendering_period_geb + Звірити відображення поля title запитання на тендер для користувача ${viewer} + + +Відображення опису запитання на лот без відповіді після закінчення прийому пропозицій + [Tags] ${USERS.users['${viewer}'].broker}: Відображення запитання + ... viewer tender_owner provider provider1 + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} + ... ${USERS.users['${provider}'].broker} ${USERS.users['${provider1}'].broker} + ... ask_question_to_tender_after_tendering_period_geb + Звірити відображення поля description запитання на тендер для користувача ${viewer} + + +Можливість відповісти на запитання на лот після закінчення прийому пропозицій + [Tags] ${USERS.users['${tender_owner}'].broker}: Відповідь на запитання + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... answer_question_to_tender_after_tendering_period_geb + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість відповісти на запитання на тендер + + +Відображення відповіді на запитання на лот після закінчення прийому пропозицій + [Tags] ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання + ... viewer + ... ${USERS.users['${viewer}'].broker} + ... answer_question_to_tender_after_tendering_period_geb + [Setup] Дочекатись синхронізації з майданчиком ${viewer} + Звірити відображення поля answer запитання на тендер для користувача ${viewer} + + +Можливість завантажити типовий договір до лоту після закінчення прийому пропозицій + [Tags] ${USERS.users['${tender_owner}'].broker}: Додання документації + ... tender_owner + ... ${USERS.users['${tender_owner}'].broker} + ... add_tender_contractProforma_after_tendering_period_geb + [Teardown] Оновити LAST_MODIFICATION_DATE + Можливість завантажити документ до тендера з типом contractProforma + + Неможливість завантажити документ першим учасником після закінчення прийому пропозицій [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції ... provider @@ -1258,6 +1836,42 @@ ${ITEM_MEAT} ${True} ... cancel_bid_after_tendering_period_by_provider1 Run Keyword And Expect Error * Можливість скасувати цінову пропозицію користувачем ${provider1} +############################################################################################## +# AUCTION +############################################################################################## + +Неможливість подати пропозицію в період аукціону першим учасником + [Tags] ${USERS.users['${provider}'].broker}: Подання пропозиції + ... provider + ... ${USERS.users['${provider}'].broker} + ... make_bid_in_auction_period + [Setup] Дочекатись дати початку періоду аукціону ${viewer} ${TENDER['TENDER_UAID']} + Run Keyword And Expect Error * Можливість подати цінову пропозицію користувачем ${provider} + + +Неможливість задати запитання на лот в період аукціону + [Tags] ${USERS.users['${provider}'].broker}: Задання запитання + ... provider + ... ${USERS.users['${provider}'].broker} + ... ask_question_to_tender_in_auction_period + Run Keyword And Expect Error * Можливість задати запитання на тендер користувачем ${provider} + + +Неможливість завантажити документ першим учасником в період аукціону + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції + ... provider + ... ${USERS.users['${provider1}'].broker} + ... add_bid_doc_in_auction_period_by_provider + Run Keyword And Expect Error * Можливість завантажити документ в пропозицію користувачем ${provider} + + +Неможливість скасувати пропозицію другим учасником в період аукціону + [Tags] ${USERS.users['${provider1}'].broker}: Подання пропозиції + ... provider1 + ... ${USERS.users['${provider1}'].broker} + ... cancel_bid_in_auction_period_by_provider1 + Run Keyword And Expect Error * Можливість скасувати цінову пропозицію користувачем ${provider1} + Можливість вичитати посилання на аукціон для глядача [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону diff --git a/op_robot_tests/tests_files/service_keywords.py b/op_robot_tests/tests_files/service_keywords.py index b8102baa3..a4996958c 100644 --- a/op_robot_tests/tests_files/service_keywords.py +++ b/op_robot_tests/tests_files/service_keywords.py @@ -38,12 +38,21 @@ test_question_data, test_supplier_data, test_tender_data, + test_bid_qualified, test_tender_data_dgf_other, + test_tender_data_dgf_geb, create_fake_tenderAttempts, create_fake_dgfID, convert_days_to_seconds, create_fake_title, - create_fake_description + create_fake_description, + create_fake_bankName, + create_fake_month, + create_fake_items_quantity, + create_fake_item_description, + create_fake_scheme_id_geb, + create_fake_date + ) from barbecue import chef @@ -333,6 +342,8 @@ def prepare_test_tender_data(procedure_intervals, tender_parameters): "Accelerator should not be less than 0" if mode == 'dgfOtherAssets': return munchify({'data': test_tender_data_dgf_other(tender_parameters)}) + elif mode == 'geb': + return munchify({'data': test_tender_data_dgf_geb(tender_parameters)}) raise ValueError("Invalid mode for prepare_test_tender_data") @@ -497,6 +508,9 @@ def generate_test_bid_data(tender_data): bid.data.update(test_bid_value(tender_data['value']['amount'], tender_data['minimalStep']['amount'])) if 'dgfOtherAssets' in tender_data.get('procurementMethodType', ''): bid.data.qualified = True + elif 'landLease' in tender_data.get('procurementMethodType', ''): + bid.data.value.amount = tender_data['value']['amount'] + bid.data.value.valueAddedTaxIncluded = False return bid diff --git a/robot_tests_arguments/dgf_no_awards.txt b/robot_tests_arguments/dgf_no_awards.txt index a0a69861b..883e04f4d 100644 --- a/robot_tests_arguments/dgf_no_awards.txt +++ b/robot_tests_arguments/dgf_no_awards.txt @@ -15,9 +15,10 @@ -i tender_view_tenderAttempts -i modify_auction_title +-i modify_auction_title_after_bidding -i modify_auction_description -i modify_tenderAttempts --i modify_dgfID +-i modify_auction_lotIdentifier -i modify_auction_value -i modify_auction_value_tax -i modify_auction_step @@ -25,6 +26,7 @@ -i modify_auction_periods -i modify_tender -i add_tender_doc +-i add_tender_doc_after_bidding -i add_tender_doc_content -i add_tender_illustration -i add_tender_tech_specifications diff --git a/robot_tests_arguments/dgf_one_award_unsuccessful.txt b/robot_tests_arguments/dgf_one_award_unsuccessful.txt index 42b246553..f2e81f2f2 100644 --- a/robot_tests_arguments/dgf_one_award_unsuccessful.txt +++ b/robot_tests_arguments/dgf_one_award_unsuccessful.txt @@ -15,9 +15,10 @@ -i tender_view_tenderAttempts -i modify_auction_title +-i modify_auction_title_after_bidding -i modify_auction_description -i modify_tenderAttempts --i modify_dgfID +-i modify_auction_lotIdentifier -i modify_auction_value -i modify_auction_value_tax -i modify_auction_step @@ -25,6 +26,7 @@ -i modify_auction_periods -i modify_tender -i add_tender_doc +-i add_tender_doc_after_bidding -i add_tender_doc_content -i add_tender_illustration -i add_tender_tech_specifications diff --git a/robot_tests_arguments/dgf_one_bid_successful.txt b/robot_tests_arguments/dgf_one_bid_successful.txt index 8c562a6d7..11c1ada08 100644 --- a/robot_tests_arguments/dgf_one_bid_successful.txt +++ b/robot_tests_arguments/dgf_one_bid_successful.txt @@ -13,9 +13,10 @@ -i tender_view_tenderAttempts -i modify_auction_title +-i modify_auction_title_after_bidding -i modify_auction_description -i modify_tenderAttempts --i modify_dgfID +-i modify_auction_lotIdentifier -i modify_auction_value -i modify_auction_value_tax -i modify_auction_step @@ -23,6 +24,7 @@ -i modify_auction_periods -i modify_tender -i add_tender_doc +-i add_tender_doc_after_bidding -i add_tender_doc_content -i add_tender_illustration -i add_tender_tech_specifications diff --git a/robot_tests_arguments/dgf_one_bid_unsuccessful.txt b/robot_tests_arguments/dgf_one_bid_unsuccessful.txt index 0a7e71514..49c1ec9c4 100644 --- a/robot_tests_arguments/dgf_one_bid_unsuccessful.txt +++ b/robot_tests_arguments/dgf_one_bid_unsuccessful.txt @@ -13,9 +13,10 @@ -i tender_view_tenderAttempts -i modify_auction_title +-i modify_auction_title_after_bidding -i modify_auction_description -i modify_tenderAttempts --i modify_dgfID +-i modify_auction_lotIdentifier -i modify_auction_value -i modify_auction_value_tax -i modify_auction_step @@ -23,6 +24,7 @@ -i modify_auction_periods -i modify_tender -i add_tender_doc +-i add_tender_doc_after_bidding -i add_tender_doc_content -i add_tender_illustration -i add_tender_tech_specifications diff --git a/robot_tests_arguments/dgf_other_full.txt b/robot_tests_arguments/dgf_other_full.txt index 17a16a9e0..4a1cf2918 100644 --- a/robot_tests_arguments/dgf_other_full.txt +++ b/robot_tests_arguments/dgf_other_full.txt @@ -15,9 +15,10 @@ -i tender_view_tenderAttempts -i modify_auction_title +-i modify_auction_title_after_bidding -i modify_auction_description -i modify_tenderAttempts --i modify_dgfID +-i modify_auction_lotIdentifier -i modify_auction_value -i modify_auction_value_tax -i modify_auction_step @@ -25,9 +26,10 @@ -i add_item -i delete_item -i check_rectification_period --i modify_auction_periods +-i modify_auction_periods -i modify_tender -i add_tender_doc +-i add_tender_doc_after_bidding -i add_tender_doc_content -i add_tender_illustration -i add_tender_tech_specifications diff --git a/robot_tests_arguments/landlease.txt b/robot_tests_arguments/landlease.txt new file mode 100644 index 000000000..b840ee788 --- /dev/null +++ b/robot_tests_arguments/landlease.txt @@ -0,0 +1,87 @@ +-v MODE:geb + +-v minNumberOfQualifiedBids:1 + +-v NUMBER_OF_ITEMS:3 + +-i create_tender +-i find_tender + +-i tender_view_landLease +-i tender_view + +-i modify_auction_minNumberOfQualifiedBids +-i modify_auction_procuringEntity_name +-i modify_auction_lotIdentifier +-i modify_auction_lotHolder +-i modify_auction_title +-i modify_auction_title_ru +-i modify_auction_title_en +-i modify_auction_description +-i modify_auction_description_ru +-i modify_auction_description_en +-i modify_auction_value +-i modify_auction_step +-i modify_auction_guarantee +-i modify_auction_registrationFee +-i modify_auction_bankAccount +-i modify_auction_budgetSpent +-i modify_tenderAttempts +-i modify_auction_contractTerms +-i modify_asset +-i modify_classification_id +-i modify_asset_description + +-i add_item +-i delete_item + +-i add_tender_doc +-i add_tender_illustration +-i add_tender_notice +-i add_tender_tech_specifications +-i add_tender_evaluationCriteria +-i add_tender_contractProforma +-i add_tender_asset_familiarization +-i add_tender_presentation +-i add_tender_clarifications +-i add_tender_billOfQuantity +-i add_tender_conflictOfInterest +-i add_tender_evaluationReports +-i add_tender_eligibilityCriteria +-i add_tender_x_financialLicense +-i add_tender_x_virtualDataRoom +-i add_tender_x_nda +-i add_tender_x_qualificationDocuments +-i add_tender_cancellationDetails + +-i ask_question_to_tender +-i answer_question_to_tender + +-i make_bid_by_provider +-i add_eligibilityDocuments_to_bid_by_provider +-i make_bid_qualify_by_provider +-i make_bid_by_provider1 +-i add_eligibilityDocuments_to_bid_by_provider1 +-i make_bid_qualify_by_provider1 + +-i ask_question_to_tender_after_tendering_period_geb +-i answer_question_to_tender_after_tendering_period_geb +-i add_tender_contractProforma_after_tendering_period_geb + +-i auction_url +-i auction_url_provider1 + +-i make_bid_in_auction_period +-i ask_question_to_tender_in_auction_period +-i add_bid_doc_in_auction_period_by_provider +-i cancel_bid_in_auction_period_by_provider1 + +-i number_of_awards +-i add_protocol_to_first_award +-i confirm_first_award + +-i modify_contract_value +-i dateSigned +-i dateSigned_view +-i contract_sign_upload +-i contract_sign \ No newline at end of file diff --git a/robot_tests_arguments/landlease_award_desqualification.txt b/robot_tests_arguments/landlease_award_desqualification.txt new file mode 100644 index 000000000..181e4cf90 --- /dev/null +++ b/robot_tests_arguments/landlease_award_desqualification.txt @@ -0,0 +1,52 @@ +-v MODE:geb + +-v minNumberOfQualifiedBids:1 + +-v NUMBER_OF_ITEMS:3 + +-i create_tender +-i find_tender + +-i modify_asset +-i modify_classification_id +-i modify_asset_description + +-i add_item +-i delete_item + +-i add_tender_doc +-i add_tender_illustration +-i add_tender_notice +-i add_tender_tech_specifications +-i add_tender_evaluationCriteria +-i add_tender_contractProforma +-i add_tender_asset_familiarization +-i add_tender_presentation +-i add_tender_clarifications +-i add_tender_billOfQuantity +-i add_tender_conflictOfInterest +-i add_tender_evaluationReports +-i add_tender_eligibilityCriteria +-i add_tender_x_financialLicense +-i add_tender_x_virtualDataRoom +-i add_tender_x_nda +-i add_tender_x_qualificationDocuments +-i add_tender_cancellationDetails + +-i ask_question_to_tender +-i answer_question_to_tender + +-i make_bid_by_provider +-i add_eligibilityDocuments_to_bid_by_provider +-i make_bid_qualify_by_provider +-i make_bid_by_provider1 +-i add_eligibilityDocuments_to_bid_by_provider1 +-i make_bid_qualify_by_provider1 +-i auction_url +-i auction_url_provider1 + +-i number_of_awards +-i add_rejectionProtocol +-i disqualified_first_award +-i first_award_status_unsuccessful +-i tender_status_unsuccessful \ No newline at end of file