Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
 def testBitwiseIndeterminate(self):
     assert_equal(
         rcmp.Comparison(lname=self.testfilenames[0],
                         rname=self.testfilenames[1],
                         comparators=[
                             rcmp.BitwiseComparator(),
                         ]).cmp(), False)
Exemplo n.º 4
0
 def testBitwise(self):
     assert_equal(
         rcmp.Comparison(lname=self.testfilenames[0],
                         rname=self.testfilenames[0],
                         comparators=[
                             rcmp.BitwiseComparator(),
                         ]).cmp(), rcmp.Same)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 def testNoSuchBoth(self):
     assert_equal(
         rcmp.Comparison(lname=self.nosuch,
                         rname=self.nosuch,
                         comparators=[
                             rcmp.NoSuchFileComparator(),
                         ]).cmp(), rcmp.Same)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 def testNoSuchLeft(self):
     assert_equal(
         rcmp.Comparison(lname=self.nosuch,
                         rname=self.testfilenames[0],
                         comparators=[
                             rcmp.NoSuchFileComparator(),
                         ]).cmp(), rcmp.Different)
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
 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)
Exemplo n.º 12
0
 def testNoSuchNeither(self):
     assert_false(
         rcmp.Comparison(lname=self.testfilenames[0],
                         rname=self.testfilenames[0],
                         comparators=[
                             rcmp.NoSuchFileComparator(),
                         ]).cmp())
Exemplo n.º 13
0
 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)
Exemplo n.º 14
0
 def testOtherDifferent(self):
     assert_equal(
         rcmp.Comparison(lname=self.third,
                         rname=self.first,
                         comparators=[
                             rcmp.ArMemberMetadataComparator(),
                             rcmp.ArComparator(),
                         ]).cmp(), rcmp.Different)
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
 def testEmpty(self):
     assert_equal(
         rcmp.Comparison(lname=self.empty,
                         rname=self.empty,
                         comparators=[
                             rcmp.ArMemberMetadataComparator(),
                             rcmp.ArComparator(),
                         ]).cmp(), rcmp.Same)
Exemplo n.º 18
0
 def testLong(self):
     rcmp.Comparison(lname=self.dirs[0],
                     rname=self.dirs[1],
                     comparators=[
                         rcmp.DirComparator,
                         FakeComparator,
                     ],
                     exit_asap=False).cmp()
Exemplo n.º 19
0
 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)
Exemplo n.º 20
0
 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)
Exemplo n.º 21
0
 def testTwo(self):
     assert_equal(
         rcmp.Comparison(lname=self.first,
                         rname=self.second,
                         comparators=[
                             rcmp.ArMemberMetadataComparator(),
                             rcmp.ArComparator(),
                             rcmp.BitwiseComparator(),
                         ]).cmp(), rcmp.Same)
Exemplo n.º 22
0
 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)
Exemplo n.º 23
0
 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)
Exemplo n.º 24
0
 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)
Exemplo n.º 25
0
 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)
Exemplo n.º 26
0
 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)
Exemplo n.º 27
0
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
Exemplo n.º 28
0
 def testEmpty(self):
     rcmp.Comparison(lname=self.testfilenames[0],
                     rname=self.testfilenames[0],
                     comparators=[],
                     exit_asap=self.exit_asap).cmp()
Exemplo n.º 29
0
 def testMissing(self):
     rcmp.Comparison(lname=self.testfilenames[0],
                     rname=self.nosuch,
                     comparators=[],
                     exit_asap=self.exit_asap).cmp()
Exemplo n.º 30
0
 def testDir(self):
     assert_equal(
         rcmp.Comparison(lname=self.dirs[0],
                         rname=self.dirs[1],
                         exit_asap=self.exit_asap).cmp(), rcmp.Same)