|
|
@@ -1,5 +1,68 @@
|
|
|
import unittest
|
|
|
+import os
|
|
|
+from shutil import rmtree
|
|
|
+
|
|
|
+from src.cache import to_dir, Cache
|
|
|
|
|
|
|
|
|
class TestCache(unittest.TestCase):
|
|
|
- pass
|
|
|
+ def setUp(self):
|
|
|
+ os.mkdir('baz')
|
|
|
+
|
|
|
+ for name in ('foo', 'bar'):
|
|
|
+ f = open('baz/' + name, 'w')
|
|
|
+ f.write(name)
|
|
|
+ f.close()
|
|
|
+
|
|
|
+ self.c = Cache(files=['foo', 'bar'], root='baz')
|
|
|
+
|
|
|
+ def tearDown(self):
|
|
|
+ rmtree('baz')
|
|
|
+
|
|
|
+ def test_to_dir(self):
|
|
|
+ self.assertEqual(to_dir(''), '')
|
|
|
+ self.assertEqual(to_dir('foo'), 'foo/')
|
|
|
+ self.assertEqual(to_dir('foo/'), 'foo/')
|
|
|
+
|
|
|
+ def test___init__(self):
|
|
|
+ self.assertTrue(hasattr(self.c, 'root'))
|
|
|
+ self.assertEqual(self.c.root, 'baz/')
|
|
|
+ self.assertTrue(hasattr(self.c, 'files'))
|
|
|
+ self.assertEqual(self.c.files, ['baz/foo', 'baz/bar'])
|
|
|
+ self.assertTrue(hasattr(self.c, 'cached'))
|
|
|
+ self.assertEqual(self.c.cached, 'cached/')
|
|
|
+
|
|
|
+ def test___init___custom_root(self):
|
|
|
+ c = Cache(root='foo')
|
|
|
+ self.assertTrue(hasattr(c, 'root'))
|
|
|
+ self.assertEqual(c.root, 'foo/')
|
|
|
+
|
|
|
+ def test___init___custom_cached_dir(self):
|
|
|
+ c = Cache(cached='foo')
|
|
|
+ self.assertTrue(hasattr(c, 'cached'))
|
|
|
+ self.assertEqual(c.cached, 'foo/')
|
|
|
+
|
|
|
+ def test___init___non_existant_file(self):
|
|
|
+ self.assertRaises(IOError, Cache, files=['foo'])
|
|
|
+
|
|
|
+ def test_add(self):
|
|
|
+ self.c.add('baz')
|
|
|
+ self.assertIn('baz/baz', self.c.files)
|
|
|
+
|
|
|
+ def test_add_non_relative(self):
|
|
|
+ self.c.add('baz', absolute=True)
|
|
|
+ self.assertIn('baz', self.c.files)
|
|
|
+
|
|
|
+ def test_remove(self):
|
|
|
+ self.c.remove('foo')
|
|
|
+ self.assertNotIn('baz/foo', self.c.files)
|
|
|
+
|
|
|
+ def test_remove_non_relative(self):
|
|
|
+ self.c.remove('baz/foo', absolute=True)
|
|
|
+ self.assertNotIn('baz/foo', self.c.files)
|
|
|
+
|
|
|
+ def test_get_modification_dates(self):
|
|
|
+ self.c.get_modification_dates()
|
|
|
+ self.assertIn('baz/foo', self.c.modified)
|
|
|
+ self.assertEqual(self.c.modified['baz/foo'],
|
|
|
+ os.path.getmtime('baz/foo'))
|