test_cache.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import unittest
  2. import os
  3. from shutil import rmtree
  4. from src.cache import to_dir, Cache
  5. class TestCache(unittest.TestCase):
  6. def setUp(self):
  7. os.mkdir('baz')
  8. for name in ('foo', 'bar'):
  9. f = open('baz/' + name, 'w')
  10. f.write(name)
  11. f.close()
  12. self.c = Cache(files=['foo', 'bar'], root='baz')
  13. def tearDown(self):
  14. rmtree('baz')
  15. def test_to_dir(self):
  16. self.assertEqual(to_dir(''), '')
  17. self.assertEqual(to_dir('foo'), 'foo/')
  18. self.assertEqual(to_dir('foo/'), 'foo/')
  19. def test___init__(self):
  20. self.assertTrue(hasattr(self.c, 'root'))
  21. self.assertEqual(self.c.root, 'baz/')
  22. self.assertTrue(hasattr(self.c, 'files'))
  23. self.assertEqual(self.c.files, ['baz/foo', 'baz/bar'])
  24. self.assertTrue(hasattr(self.c, 'cached'))
  25. self.assertEqual(self.c.cached, 'cached/')
  26. def test___init___custom_root(self):
  27. c = Cache(root='foo')
  28. self.assertTrue(hasattr(c, 'root'))
  29. self.assertEqual(c.root, 'foo/')
  30. def test___init___custom_cached_dir(self):
  31. c = Cache(cached='foo')
  32. self.assertTrue(hasattr(c, 'cached'))
  33. self.assertEqual(c.cached, 'foo/')
  34. def test___init___non_existant_file(self):
  35. self.assertRaises(IOError, Cache, files=['foo'])
  36. def test_add(self):
  37. self.c.add('baz')
  38. self.assertIn('baz/baz', self.c.files)
  39. def test_add_non_relative(self):
  40. self.c.add('baz', absolute=True)
  41. self.assertIn('baz', self.c.files)
  42. def test_remove(self):
  43. self.c.remove('foo')
  44. self.assertNotIn('baz/foo', self.c.files)
  45. def test_remove_non_relative(self):
  46. self.c.remove('baz/foo', absolute=True)
  47. self.assertNotIn('baz/foo', self.c.files)
  48. def test_get_modification_dates(self):
  49. self.c.get_modification_dates()
  50. self.assertIn('baz/foo', self.c.modified)
  51. self.assertEqual(self.c.modified['baz/foo'],
  52. os.path.getmtime('baz/foo'))