diff options
author | Lars Wirzenius <liw@liw.fi> | 2010-01-01 02:39:05 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2010-01-01 02:39:05 +0200 |
commit | 0a418e80e25bf108130764c47cd6599ed267d4ee (patch) | |
tree | 581bb6346131f2ad8c026fa32aef67071c349a85 | |
parent | 8b79181c018bc83ad0c488cb4bffcbe0a90910a6 (diff) | |
download | summain-0a418e80e25bf108130764c47cd6599ed267d4ee.tar.gz |
Implement mtime handling for FilesystemObject.
-rw-r--r-- | summainlib.py | 10 | ||||
-rw-r--r-- | summainlib_tests.py | 12 |
2 files changed, 20 insertions, 2 deletions
diff --git a/summainlib.py b/summainlib.py index 81cc973..4b509fa 100644 --- a/summainlib.py +++ b/summainlib.py @@ -14,6 +14,8 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. +import os +import time import urllib @@ -26,9 +28,15 @@ class FilesystemObject(object): ''' - def __init__(self, filename): + def __init__(self, filename, stat_result=None): + stat_result = stat_result or os.lstat(filename) self.values = dict() self['Name'] = filename + self['Mtime'] = self.format_time(stat_result.st_mtime) + + def format_time(self, timestamp): + return time.strftime('%Y-%m-%d %H:%M:%S +0000', + time.gmtime(timestamp)) def hook_name(self, value): return urllib.quote(value) diff --git a/summainlib_tests.py b/summainlib_tests.py index 12af97d..89e1caf 100644 --- a/summainlib_tests.py +++ b/summainlib_tests.py @@ -19,10 +19,20 @@ import unittest import summainlib +class FakeStatResult(object): + + def __init__(self, *args, **kwargs): + for name, value in kwargs.iteritems(): + setattr(self, name, value) + + class FilesystemObjectTests(unittest.TestCase): + def setUp(self): + self.st = FakeStatResult(st_mtime=1262307723) + def new(self, name): - return summainlib.FilesystemObject(name) + return summainlib.FilesystemObject(name, stat_result=self.st) def test_formats_simple_name_identically(self): self.assertEqual(self.new('foo')['Name'], 'foo') |