From 02defb601adcdc9ed8701c723d200e49af228fb7 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 16 May 2011 14:01:06 +0100 Subject: Add exclude argument to FilesystemObject. --- summain | 3 ++- summainlib.py | 2 +- summainlib_tests.py | 22 +++++++++++++--------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/summain b/summain index 99719d6..6cee168 100755 --- a/summain +++ b/summain @@ -44,6 +44,7 @@ class Summain(cliapp.Application): def process_args(self, args): relative = self.settings['relative-paths'] + exclude = self.settings['exclude'] nn = summainlib.NumberNormalizer() if self.settings['mangle-paths']: pn = summainlib.PathNormalizer() @@ -51,7 +52,7 @@ class Summain(cliapp.Application): pn = summainlib.SamePath() for root in args: for filename in self.files(root): - o = summainlib.FilesystemObject(filename, nn, pn) + o = summainlib.FilesystemObject(filename, nn, pn, exclude) self.output.write(o.format(root if relative else None)) self.output.write('\n') diff --git a/summainlib.py b/summainlib.py index 50e0a6e..e09e49c 100644 --- a/summainlib.py +++ b/summainlib.py @@ -159,7 +159,7 @@ class FilesystemObject(object): ''' - def __init__(self, filename, nn, pn, stat_result=None, sha1=None, + def __init__(self, filename, nn, pn, exclude, stat_result=None, sha1=None, open_file=None, readlink=None): stat_result = stat_result or os.lstat(filename) sha1 = sha1 or hashlib.sha1() diff --git a/summainlib_tests.py b/summainlib_tests.py index c0a261f..8cbe86a 100644 --- a/summainlib_tests.py +++ b/summainlib_tests.py @@ -78,15 +78,17 @@ class FilesystemObjectTests(unittest.TestCase): self.nn = summainlib.NumberNormalizer() self.pn = summainlib.SamePath() + self.exclude = [] def new(self, name, mode=None): if mode is not None: self.st.st_mode = mode - return summainlib.FilesystemObject(name, self.nn, self.pn, - stat_result=self.st, - sha1=FakeSha1(), - open_file=FakeOpenFile(), - readlink=FakeReadlink(self)) + return summainlib.FilesystemObject(name, self.nn, self.pn, + self.exclude, + stat_result=self.st, + sha1=FakeSha1(), + open_file=FakeOpenFile(), + readlink=FakeReadlink(self)) def test_formats_simple_name_identically(self): self.assertEqual(self.new('foo')['Name'], 'foo') @@ -178,6 +180,7 @@ class FilesystemObjectNormalizedNumbersTests(unittest.TestCase): self.dev = 0 self.nn = summainlib.NumberNormalizer() self.pn = summainlib.SamePath() + self.exclude = [] def reset(self): self.dev += 1 @@ -189,10 +192,11 @@ class FilesystemObjectNormalizedNumbersTests(unittest.TestCase): st_uid=0, st_gid=0) self.ino += 1 return summainlib.FilesystemObject(name, self.nn, self.pn, - stat_result=st, - sha1=FakeSha1(), - open_file=FakeOpenFile(), - readlink=FakeReadlink(self)) + self.exclude, + stat_result=st, + sha1=FakeSha1(), + open_file=FakeOpenFile(), + readlink=FakeReadlink(self)) def test_inode_numbers_are_repeatable(self): a1 = self.new('foo') -- cgit v1.2.1