diff options
author | Lars Wirzenius <liw@liw.fi> | 2011-02-12 23:44:39 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2011-02-12 23:44:39 +0000 |
commit | e6357e4ee0d95eac3973452723010017eacf04a4 (patch) | |
tree | a0edcbcb3d2fdc67be9e507cb83517b42369e84b | |
parent | c843b1d069f1d82cf4a8758ffa3a3325fd5a82fd (diff) | |
download | summain-e6357e4ee0d95eac3973452723010017eacf04a4.tar.gz |
Don't report size for directories.
It is meaningless.
-rw-r--r-- | summainlib.py | 4 | ||||
-rw-r--r-- | summainlib_tests.py | 11 |
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): |