def testDirDirect(self): itestdir = rcmp.Items.find_or_create(self.emptydirname, rcmp.root) itestdir2 = rcmp.Items.find_or_create(self.dirnotemptybase, rcmp.root) ## DirComparator no longer instantiates so we don't have any ## easy way to stub out lower level comparators just now. # assert_equal(rcmp.Comparison(litem=itestdir, ritem=itestdir, comparators=[ # rcmp.DirComparator([]), # ], exit_asap=self.exit_asap).cmp(), rcmp.Same) # assert_equal(rcmp.ComparisonList([[self.emptydirname], [self.emptydirname]], comparators=[ # rcmp.DirComparator([]), # ], exit_asap=self.exit_asap).cmp(), rcmp.Same) assert_equal( rcmp.Comparison(litem=itestdir, ritem=itestdir, comparators=[ rcmp.DirComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Same) assert_equal( rcmp.ComparisonList([[self.emptydirname], [self.emptydirname]], comparators=[ rcmp.DirComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Same) assert_equal( rcmp.Comparison(litem=itestdir, ritem=itestdir2, comparators=[ rcmp.DirComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Different) assert_equal( rcmp.ComparisonList([[self.emptydirname], [self.dirnotemptybase]], comparators=[ rcmp.DirComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Different) assert_equal( rcmp.ComparisonList([[self.emptydirname], [self.dirnotemptybase]], comparators=[ rcmp.DirComparator, ], ignores=rcmp.fntore(['*' + self.foilername]), exit_asap=self.exit_asap).cmp(), rcmp.Same)
def testDirDirect(self): itestdir = rcmp.Items.find_or_create(self.emptydirname) itestdir2 = rcmp.Items.find_or_create(self.dirnotemptybase) assert_equal( rcmp.Comparison(litem=itestdir, ritem=itestdir, comparators=[ rcmp.DirComparator([]), ]).cmp(), rcmp.Same) assert_equal( rcmp.ComparisonList([[self.emptydirname], [self.emptydirname]], comparators=[ rcmp.DirComparator([]), ]).cmp(), rcmp.Same) assert_equal( rcmp.Comparison(litem=itestdir, ritem=itestdir, comparators=[ rcmp.DirComparator(), ]).cmp(), rcmp.Same) assert_equal( rcmp.ComparisonList([[self.emptydirname], [self.emptydirname]], comparators=[ rcmp.DirComparator(), ]).cmp(), rcmp.Same) assert_equal( rcmp.Comparison(litem=itestdir, ritem=itestdir2, comparators=[ rcmp.DirComparator(), ]).cmp(), rcmp.Different) assert_equal( rcmp.ComparisonList([[self.emptydirname], [self.dirnotemptybase]], comparators=[ rcmp.DirComparator(), ]).cmp(), rcmp.Different) assert_equal( rcmp.ComparisonList([[self.emptydirname], [self.dirnotemptybase]], comparators=[ rcmp.DirComparator(), ], ignores=['*' + self.foilername]).cmp(), rcmp.Same)
def testBitwiseIndeterminate(self): assert_equal( rcmp.Comparison(lname=self.testfilenames[0], rname=self.testfilenames[1], comparators=[ rcmp.BitwiseComparator(), ]).cmp(), False)
def testBitwise(self): assert_equal( rcmp.Comparison(lname=self.testfilenames[0], rname=self.testfilenames[0], comparators=[ rcmp.BitwiseComparator(), ]).cmp(), rcmp.Same)
def testBuried(self): assert_equal( rcmp.Comparison(lname=os.path.join('red', 'ham', 'foo.pyc'), rname=os.path.join('blue', 'ham', 'foo.pyc'), comparators=[ rcmp.BuriedPathComparator(), ]).cmp(), rcmp.Same)
def testNoSuchBoth(self): assert_equal( rcmp.Comparison(lname=self.nosuch, rname=self.nosuch, comparators=[ rcmp.NoSuchFileComparator(), ]).cmp(), rcmp.Same)
def testIdentical(self): for left in self.lefts: r = rcmp.Comparison(lname=left, rname=left, comparators=self.comparators, exit_asap=self.exit_asap) assert_equal(r.cmp(), rcmp.Same)
def testNoSuchLeft(self): assert_equal( rcmp.Comparison(lname=self.nosuch, rname=self.testfilenames[0], comparators=[ rcmp.NoSuchFileComparator(), ]).cmp(), rcmp.Different)
def testOne(self): for left, right in zip(self.lefts, self.rights): r = rcmp.Comparison(lname=left, rname=right, comparators=self.comparators, exit_asap=self.exit_asap) assert_equal(r.cmp(), rcmp.Same)
def testReal(self): itestdir = rcmp.Items.find_or_create(self.emptydirname, rcmp.root) r = rcmp.Comparison(litem=itestdir, ritem=itestdir, exit_asap=self.exit_asap) assert_equal(r.cmp(), rcmp.Same)
def testBad(self): for left in self.lefts: r = rcmp.Comparison(lname=left, rname='/dev/null', comparators=self.comparators, exit_asap=self.exit_asap) assert_equal(r.cmp(), rcmp.Different)
def testNoSuchNeither(self): assert_false( rcmp.Comparison(lname=self.testfilenames[0], rname=self.testfilenames[0], comparators=[ rcmp.NoSuchFileComparator(), ]).cmp())
def testNoSuchRight(self): assert_equal( rcmp.Comparison(lname=self.testfilenames[0], rname=self.nosuch, comparators=[ rcmp.NoSuchFileComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Different)
def testOtherDifferent(self): assert_equal( rcmp.Comparison(lname=self.third, rname=self.first, comparators=[ rcmp.ArMemberMetadataComparator(), rcmp.ArComparator(), ]).cmp(), rcmp.Different)
def testInodeIndeterminate(self): assert_equal( rcmp.Comparison(lname=self.testfilenames[0], rname=self.testfilenames[1], comparators=[ rcmp.InodeComparator, ], exit_asap=self.exit_asap).cmp(), False)
def testInode(self): assert_equal( rcmp.Comparison(lname=self.testfilenames[0], rname=self.testfilenames[0], comparators=[ rcmp.InodeComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Same)
def testEmpty(self): assert_equal( rcmp.Comparison(lname=self.empty, rname=self.empty, comparators=[ rcmp.ArMemberMetadataComparator(), rcmp.ArComparator(), ]).cmp(), rcmp.Same)
def testLong(self): rcmp.Comparison(lname=self.dirs[0], rname=self.dirs[1], comparators=[ rcmp.DirComparator, FakeComparator, ], exit_asap=False).cmp()
def testBuried(self): assert_equal( rcmp.Comparison(lname=os.path.join(self.dirs[0], 'ham', 'foo.pyc'), rname=os.path.join(self.dirs[1], 'ham', 'foo.pyc'), comparators=[ rcmp.BuriedPathComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Same)
def testShort(self): assert_equal( rcmp.Comparison(lname=self.dirs[0], rname=self.dirs[1], comparators=[ rcmp.DirComparator, FakeComparator, ], exit_asap=True).cmp(), rcmp.Different)
def testTwo(self): assert_equal( rcmp.Comparison(lname=self.first, rname=self.second, comparators=[ rcmp.ArMemberMetadataComparator(), rcmp.ArComparator(), rcmp.BitwiseComparator(), ]).cmp(), rcmp.Same)
def testArElf(self): r = rcmp.Comparison(lname=self.left, rname=self.right, comparators=[ rcmp.ArMemberMetadataComparator(), rcmp.ArComparator(), rcmp.ElfComparator(), ]) assert_equal(r.cmp(), rcmp.Same)
def testElf(self): assert_equal( rcmp.Comparison(lname=os.path.join('testfiles', 'left', 'goodfork.o'), rname=os.path.join('testfiles', 'right', 'goodfork.o'), comparators=[ rcmp.ElfComparator(), ]).cmp(), rcmp.Same)
def testIdentical(self): r = rcmp.Comparison(lname=self.first, rname=self.first, comparators=[ rcmp.ArMemberMetadataComparator(), rcmp.ArComparator(), rcmp.BitwiseComparator(), ]) assert_equal(r.cmp(), rcmp.Same)
def testOtherDifferent(self): assert_equal( rcmp.Comparison(lname=self.third, rname=self.first, comparators=[ rcmp.ArMemberMetadataComparator, rcmp.ArComparator, rcmp.BitwiseComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Different)
def testElf(self): lname = os.path.join('testfiles', 'left', 'main.o') rname = os.path.join('testfiles', 'right', 'main.o') assert_isfile(lname) assert_isfile(rname) assert_equal( rcmp.Comparison(lname=lname, rname=rname, comparators=[ rcmp.ElfComparator, ], exit_asap=self.exit_asap).cmp(), rcmp.Same)
def main(): """ Parses command line options and calls library. """ logger = logging.getLogger() handler = logging.StreamHandler() options = _parse_args() log_level = logging.ERROR if options.verbose == 1: log_level = rcmp.DIFFERENCES elif options.verbose == 2: log_level = rcmp.SAMES elif options.verbose == 3: log_level = rcmp.INDETERMINATES elif options.verbose > 3: log_level = logging.DEBUG logger.setLevel(log_level) logger.addHandler(handler) ignores = [] for ifile in options.ignorefiles: if os.path.isfile(ifile): with open(ifile, 'r') as ignorefile: ignores += [line.strip() for line in ignorefile] if options.crunch: ignores = rcmp.fntoreconcat(ignores) else: ignores = rcmp.fntore(ignores) result = rcmp.Comparison(lname=options.left, rname=options.right, ignores=ignores, exit_asap=options.exit_asap, ignore_ownerships=options.ignore_ownerships).cmp() return 0 if result == rcmp.Same else 1
def testEmpty(self): rcmp.Comparison(lname=self.testfilenames[0], rname=self.testfilenames[0], comparators=[], exit_asap=self.exit_asap).cmp()
def testMissing(self): rcmp.Comparison(lname=self.testfilenames[0], rname=self.nosuch, comparators=[], exit_asap=self.exit_asap).cmp()
def testDir(self): assert_equal( rcmp.Comparison(lname=self.dirs[0], rname=self.dirs[1], exit_asap=self.exit_asap).cmp(), rcmp.Same)