Example #1
0
File: cmd.py Project: mgax/Probity
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
Example #2
0
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
Example #3
0
    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)
Example #4
0
File: cmd.py Project: mgax/Probity
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)