def read_checksum_file(file_path): data = dict() with open(file_path) as f: for evt in probfile.parse_file(f): if evt.folder is None: data[evt.path] = evt.checksum return data
def read_to_dict(data, skip_folders=False): output = dict() for evt in probfile.parse_file(StringIO(data)): if evt.folder == 'begin': continue if evt.folder == 'end' and skip_folders: continue output[evt.path] = evt.checksum return output
def test_compare(self): left = read_to_dict(left_file_data, skip_folders=True) comparator = compare.Comparator(left) for evt in probfile.parse_file(StringIO(right_file_data)): comparator.update(evt) report = comparator.report() expected_report = { 'missing': set(['root/bag/umbrella']), 'extra': set(['root/cellar/banana']), } self.assertEqual(report, expected_report)
def do_compare(args): reference = read_checksum_file(args.left) comparator = compare.Comparator(reference) with open(args.right, 'rb') as right_file: for evt in probfile.parse_file(right_file): comparator.update(evt) report = comparator.report() if report['missing']: print 'Removed files:' for file_path in report['missing']: print ' %s' % (file_path) if report['extra']: print 'Added files:' for file_path in report['extra']: print ' %s' % (file_path)