Пример #1
0
    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))
Пример #2
0
    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))
Пример #3
0
    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')
Пример #4
0
    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')
Пример #5
0
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'))
Пример #6
0
    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)