@@ -37,31 +37,38 @@ def assess_replication(image_file1,image_file2,version=None):
3737 return report
3838
3939
40- def assess_differences (image_file1 ,image_file2 ,version = None ):
40+ def assess_differences (image_file1 ,image_file2 ,level = None , version = None ):
4141 '''assess_replications will compare two images on each level of
4242 reproducibility,
4343 '''
4444 levels = get_levels (version = version )
45+ if level is None :
46+ level = "IDENTICAL"
47+
48+ if level not in list (levels .keys ()):
49+ bot .logger .error ("%s is not a valid level. See get_levels()." ,level )
50+ sys .exit (1 )
51+
4552 different = []
4653 same = []
4754 setdiff = []
48- for level_name , values in levels .items ():
49- hashes1 = get_content_hashes (image_path = image_file1 ,
50- level = level_name )
51- hashes2 = get_content_hashes (image_path = image_file2 ,
52- level = level_name )
53- for file_name ,hash_value in hashes1 .items ():
54- if file_name in hashes2 :
55- if hashes2 [file_name ] == hashes1 [file_name ]:
56- same .append (file_name )
57- else :
58- different .append (file_name )
55+
56+ # Compare the dictionary of file:hash between two images
57+ hashes1 = get_content_hashes (image_path = image_file1 ,level = level )
58+ hashes2 = get_content_hashes (image_path = image_file2 ,level = level )
59+ for file_name ,hash_value in hashes1 .items ():
60+ if file_name in hashes2 :
61+ if hashes2 [file_name ] == hashes1 [file_name ]:
62+ same .append (file_name )
5963 else :
60- setdiff .append (file_name )
64+ different .append (file_name )
65+ else :
66+ setdiff .append (file_name )
6167
6268 report = {'missing' :setdiff ,
6369 'same' :same ,
6470 'different' :different }
71+
6572 return report
6673
6774
@@ -214,7 +221,7 @@ def get_content_hashes(image_path,level=None,regexp=None,include_files=None,skip
214221 digest = dict ()
215222 for member in tar :
216223 if member .isfile ():
217- if include_file (member .name ,file_filters ):
224+ if include_file (member .name ,file_filter ):
218225 buf = member .tobuf ()
219226 hasher = hashlib .sha1 ()
220227 hasher .update (buf )
0 commit comments