def test_remove_dir_with_link(self): dirname = '/tmp/pykit-ut-k3fs-remove-dir' k3fs.makedirs(dirname) self.assertTrue(os.path.isdir(dirname)) normal_file = 'normal_file' normal_path = os.path.join(dirname, normal_file) k3fs.fwrite(normal_path, '') self.assertTrue(os.path.isfile(normal_path)) hard_link = 'hard_link' hard_path = os.path.join(dirname, hard_link) os.link(normal_path, hard_path) self.assertTrue(os.path.isfile(hard_path)) symbolic_link = 'symbolic_link' symbolic_path = os.path.join(dirname, symbolic_link) os.symlink(hard_path, symbolic_path) self.assertTrue(os.path.islink(symbolic_path)) k3fs.remove(dirname) self.assertFalse(os.path.exists(dirname))
def test_remove_dir(self): dirname = '/tmp/pykit-ut-k3fs-remove-dir' k3fs.makedirs(dirname) self.assertTrue(os.path.isdir(dirname)) for is_dir, file_path in ( (False, ('normal_file',)), (True, ('sub_dir',)), (False, ('sub_dir', 'sub_file1')), (False, ('sub_dir', 'sub_file2')), (True, ('sub_empty_dir',)), (True, ('sub_dir', 'sub_sub_dir')), (False, ('sub_dir', 'sub_sub_dir', 'sub_sub_file')), ): path = os.path.join(dirname, *file_path) if is_dir: k3fs.makedirs(path) self.assertTrue(os.path.isdir(path)) else: k3fs.fwrite(path, '') self.assertTrue(os.path.isfile(path)) k3fs.remove(dirname) self.assertFalse(os.path.exists(dirname))
def test_remove_link_file(self): src_fn = '/tmp/pykit-ut-k3fs-remove-file-normal' force_remove(src_fn) k3fs.fwrite(src_fn, '', atomic=True) self.assertTrue(os.path.isfile(src_fn)) link_fn = '/tmp/pykit-ut-k3fs-remove-file-link' force_remove(link_fn) os.link(src_fn, link_fn) self.assertTrue(os.path.isfile(link_fn)) k3fs.remove(link_fn) self.assertFalse(os.path.exists(link_fn)) symlink_fn = '/tmp/pykit-ut-k3fs-remove-file-symlink' force_remove(symlink_fn) os.symlink(src_fn, symlink_fn) self.assertTrue(os.path.islink(symlink_fn)) k3fs.remove(symlink_fn) self.assertFalse(os.path.exists(symlink_fn)) force_remove(src_fn)
def test_ls_dirs(self): k3fs.makedirs('test_dir/sub_dir1/foo') k3fs.makedirs('test_dir/sub_dir2') k3fs.fwrite('test_dir/test_file', 'foo') sub_dirs = k3fs.ls_dirs('test_dir') self.assertListEqual(['sub_dir1', 'sub_dir2'], sub_dirs) # test multi path segment sub_dirs = k3fs.ls_dirs('test_dir', 'sub_dir1') self.assertListEqual(['foo'], sub_dirs) k3fs.remove('test_dir')
def test_remove_normal_file(self): f = 'pykit-ut-k3fs-remove-file-normal' fn = '/tmp/' + f force_remove(fn) k3fs.fwrite(fn, '', atomic=True) self.assertTrue(os.path.isfile(fn)) k3fs.remove(fn) self.assertFalse(os.path.exists(fn)) k3fs.fwrite('/tmp', f, '', atomic=True) self.assertTrue(os.path.isfile(fn)) # remove with multi path segments k3fs.remove('/tmp', f) self.assertFalse(os.path.exists(fn))
def test_ls_files(self): k3fs.makedirs('test_dir/foo_dir') k3fs.fwrite('test_dir/foo1', 'foo1') k3fs.fwrite('test_dir/foo2', 'foo2') k3fs.fwrite('test_dir/foo21', 'foo21') k3fs.fwrite('test_dir/foo_dir/foo', 'foo') k3fs.fwrite('test_dir/foo_dir/bar', 'bar') self.assertEqual(['foo1', 'foo2', 'foo21'], k3fs.ls_files('test_dir')) self.assertEqual(['foo2'], k3fs.ls_files('test_dir', pattern='2$')) self.assertEqual(['bar', 'foo'], k3fs.ls_files('test_dir/foo_dir')) self.assertEqual(['bar'], k3fs.ls_files('test_dir/foo_dir', pattern='^b')) # test multi path segments self.assertEqual(['bar', 'foo'], k3fs.ls_files('test_dir', 'foo_dir')) k3fs.remove('test_dir')
def test_remove_error(self): dirname = '/tmp/pykit-ut-k3fs-remove-on-error' if os.path.isdir(dirname): k3fs.remove(dirname) # OSError self.assertRaises(os.error, k3fs.remove, dirname, onerror='raise') # ignore errors k3fs.remove(dirname, onerror='ignore') def assert_error(exp_func): def onerror(func, path, exc_info): self.assertEqual(func, exp_func) return onerror # on error k3fs.remove(dirname, onerror=assert_error(os.remove))