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