From 664ec5dfa46a3195e46585d1e8007bcd2c287c9e Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Mon, 30 Oct 2017 02:52:52 +0200 Subject: [PATCH] tests: remove gc unit test After moving to md5 for cache files, gc logic became very straightforward, and this unit test became irrelevant. We still have functional test for gc though, so it is not like we're leaving gc untested. Probably worth it to write simple unit test for it later. Signed-off-by: Ruslan Kuprieiev --- tests/test_cmd_gc.py | 138 ------------------------------------------- 1 file changed, 138 deletions(-) delete mode 100644 tests/test_cmd_gc.py diff --git a/tests/test_cmd_gc.py b/tests/test_cmd_gc.py deleted file mode 100644 index 5d8d79c2e..000000000 --- a/tests/test_cmd_gc.py +++ /dev/null @@ -1,138 +0,0 @@ -import glob -import os - -from dvc.command.gc import CmdGC -from dvc.config import ConfigI -from dvc.git_wrapper import GitWrapperI -from dvc.path.data_item import DataItem -from dvc.path.factory import PathFactory -from dvc.settings import Settings -from dvc.system import System -from tests.basic_env import BasicEnvironment - -class TestCmdDataRemove(BasicEnvironment): - def setUp(self): - self._test_dir = os.path.join(os.path.sep, 'tmp', 'dvc_unit_test') - curr_dir = None - commit = 'abc1234' - - BasicEnvironment.init_environment(self, self._test_dir, curr_dir) - - self._commit = commit - - self._git = GitWrapperI(git_dir=self._test_git_dir, commit=self._commit) - self._config = ConfigI('data', 'cache', 'state') - self.path_factory = PathFactory(self._git, self._config) - self.settings = Settings('gc', self._git, self._config) - - self.dir1 = 'dir1' - - self.create_dirs(self.dir1) - - def test_single_file(self): - os.chdir(self._test_git_dir) - - self.crate_data_item_with_five_caches('', 'file1.txt') - self.assertEqual(5, self.cache_file_nums('file1*')) - - cmd = CmdGC(self.settings) - os.chdir(self._test_git_dir) - - cmd.gc_file(os.path.join('data', 'file1.txt')) - self.assertEqual(1, self.cache_file_nums('file1*')) - - def test_all(self): - os.chdir(self._test_git_dir) - - self.crate_data_item_with_five_caches('', 'file1.txt') - self.crate_data_item_with_five_caches('', 'file2.txt') - self.crate_data_item_with_five_caches(self.dir1, 'file3.txt') - - self.assertEqual(5, self.cache_file_nums('file1*')) - self.assertEqual(5, self.cache_file_nums('file2*')) - self.assertEqual(5, self.cache_file_nums(os.path.join(self.dir1, 'file3*'))) - - self.settings.parse_args('gc --no-git-actions data') - cmd = CmdGC(self.settings) - os.chdir(self._test_git_dir) - - cmd.gc_all() - - self.assertEqual(1, self.cache_file_nums('file1*')) - self.assertEqual(1, self.cache_file_nums('file2*')) - self.assertEqual(1, self.cache_file_nums(os.path.join(self.dir1, 'file3*'))) - - def test_empty(self): - os.chdir(self._test_git_dir) - - self.crate_data_item_with_five_caches('', 'file1.txt') - self.crate_data_item_with_five_caches('', 'file2.txt') - self.assertEqual(5, self.cache_file_nums('file1*')) - self.assertEqual(5, self.cache_file_nums('file2*')) - - self.settings.parse_args('gc --no-git-actions') - cmd = CmdGC(self.settings) - os.chdir(self._test_git_dir) - - cmd.gc_all() - - self.assertEqual(5, self.cache_file_nums('file1*')) - self.assertEqual(5, self.cache_file_nums('file2*')) - - def create_dirs(self, dir): - os.mkdir(os.path.join(self._test_git_dir, 'data', dir)) - os.mkdir(os.path.join(self._test_git_dir, ConfigI.CONFIG_DIR, ConfigI.CACHE_DIR, dir)) - os.mkdir(os.path.join(self._test_git_dir, ConfigI.CONFIG_DIR, ConfigI.STATE_DIR, dir)) - - def cache_file_nums(self, pattern): - os.chdir(os.path.join(self._test_git_dir, ConfigI.CONFIG_DIR, ConfigI.CACHE_DIR)) - files = [] - for file in glob.glob(pattern): - files.append(file) - return len(files) - - def crate_data_item_with_five_caches(self, dir, data_file, content='random text'): - os.chdir(self._test_git_dir) - - file_result = os.path.join('data', dir, data_file) - - state_result = os.path.join(ConfigI.CONFIG_DIR, ConfigI.STATE_DIR, dir, data_file + DataItem.STATE_FILE_SUFFIX) - self.create_content_file(state_result, 'state content') - - file_prefix = data_file + DataItem.CACHE_FILE_SEP - cache_result = os.path.join(ConfigI.CONFIG_DIR, ConfigI.CACHE_DIR, dir, file_prefix + self._commit) - self.create_content_file(cache_result, content) - relevant_dir = self.relevant_dir(os.path.join(dir, data_file)) - cache_file = os.path.join(relevant_dir, cache_result) - - d = os.path.join(self._test_git_dir, 'data', dir) - os.chdir(d) - print('---- CREATE SL {}: {} --> {}'.format(d, data_file, cache_file)) - System.symlink(cache_file, data_file) - os.chdir(self._test_git_dir) - - data_item = self.settings.path_factory.existing_data_item(file_result) - print('*DATA ITEM {}: {} {}'.format(file_result, data_item.data.relative, data_item.cache.relative)) - - print('----> {} {} {} {}'.format(dir, data_file, cache_file, file_result)) - - # Additional cache files - self.create_content_file(os.path.join(ConfigI.CONFIG_DIR, ConfigI.CACHE_DIR, dir, file_prefix + 'aaaaaaa')) - self.create_content_file(os.path.join(ConfigI.CONFIG_DIR, ConfigI.CACHE_DIR, dir, file_prefix + '1111111')) - self.create_content_file(os.path.join(ConfigI.CONFIG_DIR, ConfigI.CACHE_DIR, dir, file_prefix + '5555555')) - self.create_content_file(os.path.join(ConfigI.CONFIG_DIR, ConfigI.CACHE_DIR, dir, file_prefix + '123abff')) - return - - @staticmethod - def create_content_file(file, content='some test'): - fd = open(file, 'w+') - fd.write(content) - fd.close() - - @staticmethod - def relevant_dir(data_file): - deepth = data_file.count(os.path.sep) - relevant_path = '..' - for i in range(deepth): - relevant_path = os.path.join(relevant_path, '..') - return relevant_path