@@ -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