def test_clean_cache(self): """Test if an existing cache is cleaned when the parameter is set""" # Populate cache cpath = os.path.join(self.test_path, CACHE_DIR) cache = Cache(cpath) cache.store(1, 2, 3) # Access cache using setup_cache and check its contents cache = setup_cache(CACHE_DIR, cache_path=self.test_path) result = [item for item in cache.retrieve()] self.assertListEqual(result, [1, 2, 3]) self.assertEqual(cache.cache_path, cpath) self.assertEqual(os.path.exists(cpath), True) # Access cache cleaning its data and check if is empty cache = setup_cache(CACHE_DIR, cache_path=self.test_path, clean_cache=True) result = [item for item in cache.retrieve()] self.assertListEqual(result, []) self.assertEqual(cache.cache_path, cpath) self.assertEqual(os.path.exists(cpath), True)
def test_backup_cache(self): """Test if a backup is done when clean_cache is not set""" # Populate cache cpath = os.path.join(self.test_path, CACHE_DIR) cache0 = Cache(cpath) cache0.store(1, 2, 3) # Access cache using setup_cache; backup should be done cache1 = setup_cache(CACHE_DIR, cache_path=self.test_path) result = [item for item in cache1.retrieve()] self.assertListEqual(result, [1, 2, 3]) # Clean cache and check contents using the object created # with setup_cache cache0.clean() result = [item for item in cache1.retrieve()] self.assertListEqual(result, []) # Restore the backup cache1.recover() result = [item for item in cache1.retrieve()] self.assertListEqual(result, [1, 2, 3])
def test_cache_path(self): """Test if the cache is created in the given path""" cache = setup_cache(CACHE_DIR, cache_path=self.test_path) expected_path = os.path.join(self.test_path, CACHE_DIR) self.assertIsInstance(cache, Cache) self.assertEqual(cache.cache_path, expected_path) self.assertEqual(os.path.exists(cache.cache_path), True)
def test_default_setup(self, mock_expanduser): """Test if it creates a cache object with the default arguments""" mock_expanduser.return_value = self.test_path cache = setup_cache(CACHE_DIR) expected_path = os.path.join(self.test_path, CACHE_DIR) self.assertIsInstance(cache, Cache) self.assertEqual(cache.cache_path, expected_path) self.assertEqual(os.path.exists(cache.cache_path), True) mock_expanduser.assert_called_once_with(CACHE_DEFAULT_PATH)