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_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_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')
import os import sys import k3fs fn = sys.argv[1] k3fs.makedirs(fn) stat = os.stat(fn) os.write(1, '{uid},{gid}'.format(uid=stat.st_uid, gid=stat.st_gid).encode('utf-8'))
def test_makedirs(self): fn = '/tmp/pykit-ut-k3fs-foo' fn_part = ('/tmp', 'pykit-ut-k3fs-foo') dd('fn_part:', fn_part) force_remove(fn) dd('file is not a dir') with open(fn, 'w') as f: f.write('a') self.assertRaises(OSError, k3fs.makedirs, fn) os.unlink(fn) dd('no error if dir exist') os.mkdir(fn) k3fs.makedirs(fn) os.rmdir(fn) dd('single part path should be created') k3fs.makedirs(fn) self.assertTrue(os.path.isdir(fn)) os.rmdir(fn) dd('multi part path should be created') k3fs.makedirs(*fn_part) self.assertTrue(os.path.isdir(fn), 'multi part path should be created') os.rmdir(fn) dd('default mode') k3fs.makedirs(fn) self.assertEqual(0o755, get_mode(fn)) os.rmdir(fn) dd('specify mode') k3fs.makedirs(fn, mode=0o700) self.assertEqual(0o700, get_mode(fn)) os.rmdir(fn) dd('specify uid/gid, to change uid, you need root privilege') # dd('changing uid/gid works if it raises error') # self.assertRaises(PermissionError, k3fs.makedirs, fn, uid=1, gid=1) k3fs.makedirs(fn, uid=1, gid=1)