summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-01-01 02:48:09 +0200
committerLars Wirzenius <liw@liw.fi>2010-01-01 02:48:09 +0200
commit550106cec6a5f5522517044b3e86997aac1cb33d (patch)
treeb9a1f60d971bef3f4ef7746597b9a20725d13960
parent782cf82eb8e4d66359853b8ad086448d3eb1b701 (diff)
downloadsummain-550106cec6a5f5522517044b3e86997aac1cb33d.tar.gz
Implement formatting of st_mode.
Change unit test to include bit for regular files. Since the actual formatting code is so simple, no other file types will be tested.
-rw-r--r--summainlib.py4
-rw-r--r--summainlib_tests.py6
2 files changed, 7 insertions, 3 deletions
diff --git a/summainlib.py b/summainlib.py
index b5973e5..2d75e14 100644
--- a/summainlib.py
+++ b/summainlib.py
@@ -35,11 +35,15 @@ class FilesystemObject(object):
self.values = dict()
self['Name'] = filename
self['Mtime'] = self.format_time(stat_result.st_mtime)
+ self['Mode'] = self.format_mode(stat_result.st_mode)
def format_time(self, timestamp):
return time.strftime('%Y-%m-%d %H:%M:%S +0000',
time.gmtime(timestamp))
+ def format_mode(self, mode):
+ return '%o' % mode
+
def hook_name(self, value):
return urllib.quote(value)
diff --git a/summainlib_tests.py b/summainlib_tests.py
index a899e61..d05e293 100644
--- a/summainlib_tests.py
+++ b/summainlib_tests.py
@@ -30,7 +30,8 @@ class FakeStatResult(object):
class FilesystemObjectTests(unittest.TestCase):
def setUp(self):
- self.st = FakeStatResult(st_mtime=1262307723)
+ self.st = FakeStatResult(st_mtime=1262307723,
+ st_mode=stat.S_IFREG | 0644)
def new(self, name):
return summainlib.FilesystemObject(name, stat_result=self.st)
@@ -46,6 +47,5 @@ class FilesystemObjectTests(unittest.TestCase):
'2010-01-01 01:02:03 +0000')
def test_formats_mode_for_regular_file_correctly(self):
- self.st.st_mode = stat.S_IFREG | 0644
- self.assertEqual(self.new('foo')['Mode'], '644')
+ self.assertEqual(self.new('foo')['Mode'], '100644')