summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdupfiles8
-rwxr-xr-xtestit28
2 files changed, 23 insertions, 13 deletions
diff --git a/dupfiles b/dupfiles
index 14a5b2d..ea52d7f 100755
--- a/dupfiles
+++ b/dupfiles
@@ -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()
diff --git a/testit b/testit
index e385366..28ec43d 100755
--- a/testit
+++ b/testit
@@ -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__':