Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions op_robot_tests/tests_files/auction.robot
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,17 @@ Suite Teardown Test Suite Teardown


*** Variables ***
@{USED_ROLES} viewer
@{USED_ROLES} viewer tender_owner provider provider1


*** Test Cases ***
Можливість знайти лот по ідентифікатору
[Tags] ${USERS.users['${viewer}'].broker}: Пошук лоту
... ${USERS.users['${viewer}'].broker}
... find_tender level1
Завантажити дані про тендер
Run As ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}
load_tender_data artifact.yaml
:FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1}
\ ${resp}= Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}

##############################################################################################
# AUCTION
Expand Down
30 changes: 26 additions & 4 deletions op_robot_tests/tests_files/brokers/openprocurement_client.robot
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,12 @@ Library openprocurement_client_helper.py
Завантажити протокол аукціону
[Arguments] ${username} ${tender_uaid} ${filepath} ${award_index}
${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
${bid_id}= Get Variable Value ${tender.data.awards[${award_index}].bid_id}
${bid_id}= Run Keyword If
... '${username}' == '${provider}'
... Get Variable Value ${ARTIFACT.provider_bid_id} ${tender.data.awards[${award_index}].bid_id}
... ELSE Run Keyword If
... '${username}' == '${provider1}'
... Get Variable Value ${ARTIFACT.provider1_bid_id} ${tender.data.awards[${award_index}].bid_id}
${tender}= set_access_key ${tender} ${USERS.users['${username}'].access_token}
${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document ${filepath} ${tender} ${bid_id} documents
Keep In Dictionary ${response['data']} id
Expand Down Expand Up @@ -629,6 +634,7 @@ Library openprocurement_client_helper.py
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']}
Set To Dictionary ${USERS.users['${username}']} bid_start_value=${reply['data']['value']['amount']}
Log ${reply}
[return] ${reply}

Expand All @@ -640,6 +646,7 @@ Library openprocurement_client_helper.py
Set_To_Object ${bid.data} ${fieldname} ${fieldvalue}
${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token}
${reply}= Call Method ${USERS.users['${username}'].client} patch_bid ${tender} ${bid}
Set To Dictionary ${USERS.users['${username}']} bid_changed_value=${reply['data']['value']['amount']}
Log ${reply}
[return] ${reply}

Expand All @@ -655,7 +662,12 @@ Library openprocurement_client_helper.py

Завантажити документ в ставку
[Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents
${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id}
${bid_id}= Run Keyword If
... '${username}' == '${provider}'
... Get Variable Value ${ARTIFACT.provider_bid_id} ${USERS.users['${username}'].bidresponses['resp'].data.id}
... ELSE Run Keyword If
... '${username}' == '${provider1}'
... Get Variable Value ${ARTIFACT.provider1_bid_id} ${USERS.users['${username}'].bidresponses['resp'].data.id}
${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token}
${response}= Call Method ${USERS.users['${username}'].client} upload_bid_document ${path} ${tender} ${bid_id} ${doc_type}
Expand All @@ -666,7 +678,12 @@ Library openprocurement_client_helper.py

Змінити документ в ставці
[Arguments] ${username} ${tender_uaid} ${path} ${docid}
${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id}
${bid_id}= Run Keyword If
... '${username}' == '${provider}'
... Get Variable Value ${ARTIFACT.provider_bid_id} ${USERS.users['${username}'].bidresponses['resp'].data.id}
... ELSE Run Keyword If
... '${username}' == '${provider1}'
... Get Variable Value ${ARTIFACT.provider1_bid_id} ${USERS.users['${username}'].bidresponses['resp'].data.id}
${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token}
${response}= Call Method ${USERS.users['${username}'].client} update_bid_document ${path} ${tender} ${bid_id} ${docid}
Expand All @@ -677,7 +694,12 @@ Library openprocurement_client_helper.py

Змінити документацію в ставці
[Arguments] ${username} ${tender_uaid} ${doc_data} ${docid}
${bid_id}= Get Variable Value ${USERS.users['${username}'].bidresponses['resp'].data.id}
${bid_id}= Run Keyword If
... '${username}' == '${provider}'
... Get Variable Value ${ARTIFACT.provider_bid_id} ${USERS.users['${username}'].bidresponses['resp'].data.id}
... ELSE Run Keyword If
... '${username}' == '${provider1}'
... Get Variable Value ${ARTIFACT.provider1_bid_id} ${USERS.users['${username}'].bidresponses['resp'].data.id}
${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
${tender}= set_access_key ${tender} ${USERS.users['${username}'].bidresponses['resp'].access.token}
${reply}= Call Method ${USERS.users['${username}'].client} patch_bid_document ${tender} ${doc_data} ${bid_id} ${docid}
Expand Down
6 changes: 3 additions & 3 deletions op_robot_tests/tests_files/contract_signing.robot
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Suite Setup Test Suite Setup
Suite Teardown Test Suite Teardown

*** Variables ***
@{USED_ROLES} tender_owner viewer
@{USED_ROLES} tender_owner viewer provider provider1


*** Test Cases ***
Expand All @@ -14,8 +14,8 @@ Suite Teardown Test Suite Teardown
... viewer tender_owner
... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker}
... find_tender level1
Завантажити дані про тендер
:FOR ${username} IN ${viewer} ${tender_owner}
load_tender_data artifact.yaml
:FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1}
\ Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}

##############################################################################################
Expand Down
4 changes: 2 additions & 2 deletions op_robot_tests/tests_files/initial_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -440,8 +440,8 @@ def test_tender_data_dgf_other(params):

data['dgfID'] = fake.dgfID()
data['dgfDecisionID'] = fake.dgfDecisionID()
data['dgfDecisionDate'] = (get_now() + timedelta(days=-2)).strftime('%Y-%m-%d')
data['tenderAttempts'] = fake.random_int(min=1, max=4)
data['dgfDecisionDate'] = (get_now() + timedelta(days=-2)).strftime('%Y-%m-%d')
data['tenderAttempts'] = fake.random_int(min=1, max=4)
del data["procuringEntity"]

for i in range(params['number_of_items']):
Expand Down
44 changes: 8 additions & 36 deletions op_robot_tests/tests_files/keywords.robot
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Test Suite Setup

Test Suite Teardown
Close all browsers
Run Keyword And Ignore Error Створити артефакт
create_artifact


Set Suite Variable With Default Value
Expand Down Expand Up @@ -161,41 +161,6 @@ Get Broker Property By Username
Run Keyword And Return Get Broker Property ${broker_name} ${property}


Створити артефакт
${artifact}= Create Dictionary
... api_version=${api_version}
... tender_uaid=${TENDER['TENDER_UAID']}
... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']}
... mode=${MODE}
Run Keyword And Ignore Error Set To Dictionary ${artifact}
... tender_owner=${USERS.users['${tender_owner}'].broker}
... access_token=${USERS.users['${tender_owner}'].access_token}
... tender_id=${USERS.users['${tender_owner}'].tender_data.data.id}
Run Keyword And Ignore Error Set To Dictionary ${artifact} tender_owner_access_token=${USERS.users['${tender_owner}'].access_token}
Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_access_token=${USERS.users['${provider}'].access_token}
Run Keyword And Ignore Error Set To Dictionary ${artifact} provider1_access_token=${USERS.users['${provider1}'].access_token}
Run Keyword And Ignore Error Set To Dictionary ${artifact} provider_bid_id=${USERS.users['${provider}'].bid_id}
Run Keyword And Ignore Error Set To Dictionary ${artifact} provider1_bid_id=${USERS.users['${provider1}'].bid_id}
Log ${artifact}
log_object_data ${artifact} file_name=artifact update=${True} artifact=${True}


Завантажити дані про тендер
${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml
${ARTIFACT}= load_data_from ${file_path}
Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${tender_owner}']} access_token=${ARTIFACT.access_token}
${TENDER}= Create Dictionary TENDER_UAID=${ARTIFACT.tender_uaid} LAST_MODIFICATION_DATE=${ARTIFACT.last_modification_date} LOT_ID=${Empty}
${MODE}= Get Variable Value ${MODE} ${ARTIFACT.mode}
Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${tender_owner}']} access_token=${ARTIFACT.tender_owner_access_token}
Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${provider}']} access_token=${ARTIFACT.provider_access_token}
Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${provider1}']} access_token=${ARTIFACT.provider1_access_token}
Set Suite Variable ${MODE}
Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${provider}']} bid_id=${ARTIFACT.provider_bid_id}
Run Keyword And Ignore Error Set To Dictionary ${USERS.users['${provider1}']} bid_id=${ARTIFACT.provider1_bid_id}
Set Suite Variable ${TENDER}
log_object_data ${ARTIFACT} file_name=artifact update=${True} artifact=${True}


Підготувати дані для створення тендера
[Arguments] ${tender_parameters}
${period_intervals}= compute_intrs ${BROKERS} ${used_brokers}
Expand All @@ -217,6 +182,7 @@ Get Broker Property By Username
${reply}= test_feature_data
[Return] ${reply}


Підготувати дані для подання вимоги
${claim}= test_claim_data
[Return] ${claim}
Expand Down Expand Up @@ -405,6 +371,12 @@ Log differences between dicts
Порівняти об'єкти ${left} ${right}


Звірити відображення ставки учасника
[Arguments] ${username} ${tender_uaid} ${bid_index}
${left}= get_current_bid_value artifact.yaml ${bid_index}
Звірити поле тендера із значенням ${username} ${tender_uaid} ${left} bids[${bid_index}]['value']['amount']


Звірити значення поля серед усіх документів тендера
[Arguments] ${username} ${tender_uaid} ${field} ${value}
${number_of_documents}= Run As ${username} Отримати кількість документів в тендері ${tender_uaid}
Expand Down
20 changes: 18 additions & 2 deletions op_robot_tests/tests_files/qualification.robot
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ ${award_index} ${0}
... viewer tender_owner
... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker}
... find_tender level1
Завантажити дані про тендер
:FOR ${username} IN ${viewer} ${tender_owner}
load_tender_data artifact.yaml
:FOR ${username} IN ${viewer} ${tender_owner} ${provider} ${provider1}
\ ${resp}= Run As ${username} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']}


Expand All @@ -32,6 +32,22 @@ ${award_index} ${0}
Дочекатись дати початку періоду кваліфікації ${viewer} ${TENDER['TENDER_UAID']}


Відображення ставки першого учасника на етапі кваліфікації
[Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту
... viewer
... ${USERS.users['${viewer}'].broker}
... tender_view level1
Звірити відображення ставки учасника ${provider} ${TENDER['TENDER_UAID']} 0


Відображення ставки другого учасника на етапі кваліфікації
[Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних лоту
... viewer
... ${USERS.users['${viewer}'].broker}
... tender_view level1
Звірити відображення ставки учасника ${provider1} ${TENDER['TENDER_UAID']} 1


Можливість створити вимогу про виправлення визначення переможця, додати до неї документацію і подати її користувачем
[Tags] ${USERS.users['${provider}'].broker}: Процес оскарження
... provider
Expand Down
97 changes: 97 additions & 0 deletions op_robot_tests/tests_files/service_keywords.py
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,16 @@ def get_complaint_index_by_complaintID(data, complaintID):
return index


def get_current_bid_value(filepath, index):
artifact = load_data_from(filepath)
if (index == '0'):
return float(artifact['provider_bid_start_value']) + float(artifact['provider_bid_difference'])
if (index == '1'):
return float(artifact['provider1_bid_start_value']) + float(artifact['provider1_bid_difference'])
else:
raise ValueError("Invalid provider index")


def generate_test_bid_data(tender_data):
bid = test_bid_data()
if 'aboveThreshold' in tender_data.get('procurementMethodType', '') or 'competitiveDialogue' in tender_data.get('procurementMethodType', ''):
Expand Down Expand Up @@ -562,6 +572,93 @@ def local_path_to_file(file_name):
return os.path.join(os.path.dirname(__file__), 'documents', file_name)


def create_artifact():
api = BuiltIn().get_variable_value('${api_version}')
tender_data = BuiltIn().get_variable_value('${TENDER}')
users = BuiltIn().get_variable_value('${USERS.users}')
mode = BuiltIn().get_variable_value('${MODE}')
tender_owner = BuiltIn().get_variable_value('${tender_owner}')
provider = BuiltIn().get_variable_value('${provider}')
provider1 = BuiltIn().get_variable_value('${provider1}')

artifact = {
'api_version': api,
'mode': mode,
'tender_uaid': tender_data.get('TENDER_UAID', ''),
'last_modification_date': tender_data.get('LAST_MODIFICATION_DATE', ''),
'tender_owner': users[tender_owner].get('broker', ''),
'access_token': users[tender_owner].get('access_token', ''),
'tender_id': users[tender_owner]['tender_data']['data'].get('id', ''),
'provider_access_token': users[provider].get('access_token', ''),
'provider1_access_token': users[provider1].get('access_token', ''),
'provider_bid_id': users[provider].get('bid_id', ''),
'provider1_bid_id': users[provider1].get('bid_id', ''),
'provider_bid_start_value': users[provider].get('bid_start_value',''),
'provider1_bid_start_value': users[provider1].get('bid_start_value','')
}
if (users[provider].get('bid_changed_value','') != '' and artifact['provider_bid_start_value'] != ''):
if(float(users[provider].get('bid_changed_value','')) != 0):
artifact['provider_bid_difference'] = float(users[provider].get('bid_changed_value','')) - float(artifact['provider_bid_start_value'])
else:
artifact['provider_bid_difference'] = 0
if (users[provider1].get('bid_changed_value','') != '' and artifact['provider1_bid_start_value'] != ''):
if(float(users[provider1].get('bid_changed_value','')) != 0):
artifact['provider1_bid_difference'] = float(users[provider1].get('bid_changed_value','')) - float(artifact['provider1_bid_start_value'])
else:
artifact['provider1_bid_difference'] = 0

suite = BuiltIn().get_variable_value('${SUITE NAME}')
if ('openProcedure' in suite):
log_object_data(data=artifact, file_name='artifact', update=False, artifact=True)
else:
log_object_data(data=artifact, file_name='artifact', update=True, artifact=True)


def load_tender_data(filepath):
artifact = load_data_from(filepath)
users = BuiltIn().get_variable_value('${USERS.users}')
tender_owner = BuiltIn().get_variable_value('${tender_owner}')
provider = BuiltIn().get_variable_value('${provider}')
provider1 = BuiltIn().get_variable_value('${provider1}')

provider_update = {
'access_token': artifact.get('provider_access_token', ''),
'bid_id': artifact.get('provider_bid_id', ''),
'bid_start_value': artifact.get('provider_bid_start_value', '')
}
provider1_update = {
'access_token': artifact.get('provider1_access_token', ''),
'bid_id': artifact.get('provider1_bid_id', ''),
'bid_start_value': artifact.get('provider1_bid_start_value', '')
}

users[provider].update(provider_update)
users[provider1].update(provider1_update)
users[tender_owner].access_token = artifact.get('access_token', '')

if (artifact['provider_bid_difference'] == 0):
users[provider].bid_changed_value = 0
else:
users[provider].bid_changed_value = artifact['provider_bid_start_value'] + artifact['provider_bid_difference']
if (artifact['provider1_bid_difference'] == 0):
users[provider1].bid_changed_value = 0
else:
users[provider1].bid_changed_value = artifact['provider1_bid_start_value'] + artifact['provider1_bid_difference']

mode = artifact.get('mode', '')
tender_data = {
'TENDER_UAID': artifact.get('tender_uaid', ''),
'LAST_MODIFICATION_DATE': artifact.get('last_modification_date', ''),
'LOT_ID': ''
}

BuiltIn().set_suite_variable("${MODE}", mode)
BuiltIn().set_suite_variable("${TENDER}", tender_data)
# Suite variable artifact - for reading bid_ids from artifact (not bidresponses)
BuiltIn().set_suite_variable("${ARTIFACT}", artifact)
log_object_data(data=artifact, file_name='artifact', update=True, artifact=True)


def compare_CAV_groups(length, *items):
# Checks CAV groups of *items
# Arguments: length - number of items
Expand Down