diff options
-rwxr-xr-x | dupfiles | 8 | ||||
-rwxr-xr-x | testit | 28 |
2 files changed, 23 insertions, 13 deletions
@@ -58,14 +58,10 @@ class DuplicateFileFinder(object): subdirs.sort() pathnames = [os.path.join(dirname, f) for f in filenames] for pathname in pathnames: - stat = os.stat(pathname) + stat = os.lstat(pathname) t = (stat.st_dev, stat.st_ino, pathname) if stat.st_size in self.by_size: - for dev, ino, pathname in self.by_size[stat.st_size]: - if stat.st_dev == dev and stat.st_ino == ino: - break - else: - self.by_size[stat.st_size].append(t) + self.by_size[stat.st_size].append(t) else: self.by_size[stat.st_size] = [t] self.progress.finished() @@ -92,7 +92,16 @@ class TwoHardlinksToSameContent(TestCase): def setUp(self): self.create('foo', 'foo') self.hardlink('foo', 'bar') - self.identical = [] + self.identical = ['foo', 'bar'] + + +class TwoHardlinksToSameContentPlusSecondIdenticalCopy(TestCase): + + def setUp(self): + self.create('foo', 'foo') + self.hardlink('foo', 'bar') + self.create('foobar', 'foo') + self.identical = ['foo', 'bar', 'foobar'] class Symlink(TestCase): @@ -110,12 +119,17 @@ def main(): issubclass(o, TestCase) and o != TestCase] for klass in klasses: - test = klass() - test.setUp() - test.test() - test.tearDown() - test.cleanup() - print "Test PASS: %s" % (klass.__name__) + try: + test = klass() + test.setUp() + test.test() + test.tearDown() + test.cleanup() + except Exception, e: + print 'Test FAIL: %s' % klass.__name__ + raise e + else: + print "Test PASS: %s" % klass.__name__ if __name__ == '__main__': |