Showing
2 changed files
with
42 additions
and
21 deletions
| ... | ... | @@ -18,17 +18,7 @@ Test Suite Setup |
| 18 | 18 | |
| 19 | 19 | Test Suite Teardown |
| 20 | 20 | Close all browsers |
| 21 | - ${artifact}= Create Dictionary | |
| 22 | - ... api_version=${api_version} | |
| 23 | - ... tender_uaid=${TENDER['TENDER_UAID']} | |
| 24 | - ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']} | |
| 25 | - ... tender_owner=${USERS.users['${tender_owner}'].broker} | |
| 26 | - Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' | |
| 27 | - ... Set To Dictionary ${artifact} access_token ${USERS.users['${tender_owner}'].access_token} | |
| 28 | - ... tender_id ${USERS.users['${tender_owner}'].tender_data.data.id} | |
| 29 | - Log ${artifact} | |
| 30 | - log_object_data ${artifact} artifact | |
| 31 | - | |
| 21 | + Run Keyword And Ignore Error Створити артефакт | |
| 32 | 22 | |
| 33 | 23 | Set Suite Variable With Default Value |
| 34 | 24 | [Arguments] ${suite_var} ${def_value} |
| ... | ... | @@ -91,14 +81,28 @@ Get Broker Property By Username |
| 91 | 81 | ${broker_name}= Get Variable Value ${USERS.users['${username}'].broker} |
| 92 | 82 | Run Keyword And Return Get Broker Property ${broker_name} ${property} |
| 93 | 83 | |
| 84 | +Створити артефакт | |
| 85 | + ${artifact}= Create Dictionary | |
| 86 | + ... api_version=${api_version} | |
| 87 | + ... tender_uaid=${TENDER['TENDER_UAID']} | |
| 88 | + ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']} | |
| 89 | + ... tender_owner=${USERS.users['${tender_owner}'].broker} | |
| 90 | + Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' | |
| 91 | + ... Set To Dictionary ${artifact} access_token ${USERS.users['${tender_owner}'].access_token} | |
| 92 | + ... tender_id ${USERS.users['${tender_owner}'].tender_data.data.id} | |
| 93 | + Log ${artifact} | |
| 94 | + log_object_data ${artifact} artifact update=${True} | |
| 95 | + | |
| 94 | 96 | Завантажити дані про тендер |
| 95 | 97 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml |
| 96 | 98 | ${ARTIFACT}= load_initial_data_from ${file_path} |
| 97 | - Set To Dictionary ${USERS.users['${tender_owner}']} access_token ${ARTIFACT.access_token} | |
| 99 | + Run Keyword If '${USERS.users['${tender_owner}'].broker}' == 'Quinta' | |
| 100 | + ... Set To Dictionary ${USERS.users['${tender_owner}']} access_token ${ARTIFACT.access_token} | |
| 98 | 101 | ${TENDER}= Create Dictionary |
| 99 | 102 | Set To Dictionary ${TENDER} TENDER_UAID ${ARTIFACT.tender_uaid} |
| 100 | 103 | Set To Dictionary ${TENDER} LAST_MODIFICATION_DATE ${ARTIFACT.last_modification_date} |
| 101 | 104 | Set Global Variable ${TENDER} |
| 105 | + log_object_data ${ARTIFACT} artifact | |
| 102 | 106 | |
| 103 | 107 | |
| 104 | 108 | Підготовка даних для створення тендера | ... | ... |
| ... | ... | @@ -93,7 +93,7 @@ def compare_date(date1, date2, accuracy): |
| 93 | 93 | return True |
| 94 | 94 | |
| 95 | 95 | |
| 96 | -def log_object_data(data, file_name=None, format="yaml"): | |
| 96 | +def log_object_data(data, file_name=None, format="yaml", update=False): | |
| 97 | 97 | """Log object data in pretty format (JSON or YAML) |
| 98 | 98 | |
| 99 | 99 | Two output formats are supported: "yaml" and "json". |
| ... | ... | @@ -113,16 +113,33 @@ def log_object_data(data, file_name=None, format="yaml"): |
| 113 | 113 | """ |
| 114 | 114 | if not isinstance(data, Munch): |
| 115 | 115 | data = munchify(data) |
| 116 | - if format.lower() == 'json': | |
| 117 | - data = data.toJSON(indent=2) | |
| 118 | - else: | |
| 119 | - data = data.toYAML(allow_unicode=True, default_flow_style=False) | |
| 120 | - format = 'yaml' | |
| 121 | - LOGGER.log_message(Message(data.decode('utf-8'), "INFO")) | |
| 122 | 116 | if file_name: |
| 123 | 117 | output_dir = BuiltIn().get_variable_value("${OUTPUT_DIR}") |
| 124 | - with open(os.path.join(output_dir, file_name + '.' + format), "w") as file_obj: | |
| 125 | - file_obj.write(data) | |
| 118 | + file_path = os.path.join(output_dir, file_name + '.' + format) | |
| 119 | + if update: | |
| 120 | + with open(file_path, "r+") as file_obj: | |
| 121 | + new_data = data.copy() | |
| 122 | + data = munch_from_object(file_obj.read(), format) | |
| 123 | + data.update(new_data) | |
| 124 | + file_obj.seek(0) | |
| 125 | + file_obj.truncate() | |
| 126 | + data_obj = munch_to_object(data, format) | |
| 127 | + with open(file_path, "w") as file_obj: | |
| 128 | + file_obj.write(data_obj) | |
| 129 | + data_obj = munch_to_object(data, format) | |
| 130 | + LOGGER.log_message(Message(data_obj.decode('utf-8'), "INFO")) | |
| 131 | + | |
| 132 | +def munch_from_object(data, format="yaml"): | |
| 133 | + if format.lower() == 'json': | |
| 134 | + return data.fromJSON(data) | |
| 135 | + else: | |
| 136 | + return data.fromYAML(data) | |
| 137 | + | |
| 138 | +def munch_to_object(data, format="yaml"): | |
| 139 | + if format.lower() == 'json': | |
| 140 | + return data.toJSON(indent=2) | |
| 141 | + else: | |
| 142 | + return data.toYAML(allow_unicode=True, default_flow_style=False) | |
| 126 | 143 | |
| 127 | 144 | |
| 128 | 145 | def load_initial_data_from(file_name): | ... | ... |
Please
register
or
login
to post a comment