Add mopidy.utils.path.mtime helper that is easily faked in tests

This commit is contained in:
Thomas Adamcik 2010-10-30 20:53:23 +02:00
parent 9a99bc46bf
commit 92333208de
2 changed files with 31 additions and 1 deletions

View File

@ -54,3 +54,20 @@ def find_files(path):
for filename in filenames:
dirpath = os.path.abspath(dirpath)
yield os.path.join(dirpath, filename)
class Mtime(object):
def __init__(self):
self.fake = None
def __call__(self, path):
if self.fake is not None:
return self.fake
return int(os.stat(path).st_mtime)
def set_fake_time(self, time):
self.fake = time
def undo_fake(self):
self.fake = None
mtime = Mtime()

View File

@ -6,7 +6,7 @@ import sys
import tempfile
import unittest
from mopidy.utils.path import (get_or_create_folder,
from mopidy.utils.path import (get_or_create_folder, mtime,
path_to_uri, uri_to_path, split_path, find_files)
from tests import SkipTest, data_folder
@ -135,3 +135,16 @@ class FindFilesTest(unittest.TestCase):
def test_expanduser(self):
raise SkipTest
class MtimeTest(unittest.TestCase):
def tearDown(self):
mtime.undo_fake()
def test_mtime_of_current_dir(self):
mtime_dir = int(os.stat('.').st_mtime)
self.assertEqual(mtime_dir, mtime('.'))
def test_fake_time_is_returned(self):
mtime.set_fake_time(123456)
self.assertEqual(mtime('.'), 123456)