Skip to content

Commit 40d8434

Browse files
committed
add supp_files check for aasx file equivalence
Previously the supplementary files of the aasx container were not tested for presence or equality although the check_aas_example did it. Now a two-way check, coparing presence, content-type and sha256 is implemented. Tests were adapted to expect the additional step.
1 parent 79625a9 commit 40d8434

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

compliance_tool/aas_compliance_tool/compliance_check_aasx.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,8 @@ def check_aasx_files_equivalence(file_path_1: str, file_path_2: str, state_manag
229229
state_manager.set_step_status(Status.NOT_EXECUTED)
230230
state_manager.add_step('Check if core properties are equal')
231231
state_manager.set_step_status(Status.NOT_EXECUTED)
232+
state_manager.add_step('Check if supplementary files are equal')
233+
state_manager.set_step_status(Status.NOT_EXECUTED)
232234
return
233235

234236
checker = AASDataChecker(raise_immediately=False, **kwargs)
@@ -240,6 +242,8 @@ def check_aasx_files_equivalence(file_path_1: str, file_path_2: str, state_manag
240242
logger.error(error)
241243
state_manager.add_step('Check if core properties are equal')
242244
state_manager.set_step_status(Status.NOT_EXECUTED)
245+
state_manager.add_step('Check if supplementary files are equal')
246+
state_manager.set_step_status(Status.NOT_EXECUTED)
243247
return
244248

245249
state_manager.add_log_records_from_data_checker(checker)
@@ -271,3 +275,25 @@ def check_aasx_files_equivalence(file_path_1: str, file_path_2: str, state_manag
271275
checker2.check(cp_1.version == cp_2.version, "version must be {}".format(cp_2.version), version=cp_1.version)
272276
checker2.check(cp_1.title == cp_2.title, "title must be {}".format(cp_2.title), title=cp_1.title)
273277
state_manager.add_log_records_from_data_checker(checker2)
278+
279+
state_manager.add_step('Check if supplementary files are equal')
280+
281+
file_checker = DataChecker(raise_immediately=False)
282+
for file_name in files_1:
283+
both_contain = file_checker.check(file_name in files_2,
284+
"second file must contain supplementary file {}".format(file_name))
285+
if both_contain:
286+
expected_type = files_1.get_content_type(file_name)
287+
file_checker.check(expected_type == files_2.get_content_type(file_name),
288+
"second file must contain supplementary file {} with content-type {}".format(file_name,
289+
expected_type),
290+
content_type=files_2.get_content_type(file_name))
291+
expected_checksum = files_1.get_sha256(file_name)
292+
file_checker.check(expected_checksum == files_2.get_sha256(file_name),
293+
"second file must contain supplementary file {} with sha256 {}".format(file_name,
294+
expected_checksum),
295+
checksum=files_2.get_sha256(file_name))
296+
297+
for file_name in files_2:
298+
file_checker.check(file_name in files_1,
299+
"first file must contain supplementary file {}".format(file_name))

0 commit comments

Comments
 (0)