예제 #1
0
파일: test_fs.py 프로젝트: drmingdrmer/gift
    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
파일: test_fs.py 프로젝트: drmingdrmer/gift
    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
파일: test_fs.py 프로젝트: drmingdrmer/gift
    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)
예제 #4
0
파일: test_fs.py 프로젝트: drmingdrmer/gift
    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')
예제 #5
0
파일: test_fs.py 프로젝트: drmingdrmer/gift
    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))
예제 #6
0
파일: test_fs.py 프로젝트: drmingdrmer/gift
    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')
예제 #7
0
파일: test_fs.py 프로젝트: drmingdrmer/gift
    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))