summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-02-12 23:44:39 +0000
committerLars Wirzenius <liw@liw.fi>2011-02-12 23:44:39 +0000
commite6357e4ee0d95eac3973452723010017eacf04a4 (patch)
treea0edcbcb3d2fdc67be9e507cb83517b42369e84b
parentc843b1d069f1d82cf4a8758ffa3a3325fd5a82fd (diff)
downloadsummain-e6357e4ee0d95eac3973452723010017eacf04a4.tar.gz
Don't report size for directories.
It is meaningless.
-rw-r--r--summainlib.py4
-rw-r--r--summainlib_tests.py11
2 files changed, 12 insertions, 3 deletions
diff --git a/summainlib.py b/summainlib.py
index 31b42a7..7f67908 100644
--- a/summainlib.py
+++ b/summainlib.py
@@ -99,7 +99,8 @@ class FilesystemObject(object):
self['Ino'] = '%d' % normalizer.get_ino(stat_result.st_ino)
self['Dev'] = '%d' % normalizer.get_dev(stat_result.st_dev)
self['Nlink'] = '%d' % stat_result.st_nlink
- self['Size'] = '%d' % stat_result.st_size
+ if not stat.S_ISDIR(stat_result.st_mode):
+ self['Size'] = '%d' % stat_result.st_size
self['Uid'] = '%d' % stat_result.st_uid
self['Username'] = self.lookup_username(stat_result.st_uid)
self['Gid'] = '%d' % stat_result.st_gid
@@ -146,3 +147,4 @@ class FilesystemObject(object):
for x in sorted(self.values.keys())
if x != 'Name']
return ''.join('%s: %s\n' % (key, self[key]) for key in keys)
+
diff --git a/summainlib_tests.py b/summainlib_tests.py
index 8068b53..313b3a4 100644
--- a/summainlib_tests.py
+++ b/summainlib_tests.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010 Lars Wirzenius
+# Copyright (C) 2010, 2011 Lars Wirzenius
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -78,7 +78,9 @@ class FilesystemObjectTests(unittest.TestCase):
self.nn = summainlib.NumberNormalizer()
- def new(self, name):
+ def new(self, name, mode=None):
+ if mode is not None:
+ self.st.st_mode = mode
return summainlib.FilesystemObject(name, self.nn,
stat_result=self.st,
sha1=FakeSha1(),
@@ -137,6 +139,11 @@ class FilesystemObjectTests(unittest.TestCase):
def test_formats_target_correctly_for_regular_file(self):
self.assertEqual(self.new('foo')['Target'], '')
+
+ def test_does_not_output_size_for_directory(self):
+ fso = self.new('foo', mode=stat.S_IFDIR | 0777)
+ output = fso.format()
+ self.assert_('Size:' not in output)
class FilesystemObjectNormalizedNumbersTests(unittest.TestCase):