def test_copytree_does_not_keep_non_writable_permissions(self): src = self.get_test_loc('fileutils/exec', copy=True) dst = self.get_temp_dir() try: src_file = join(src, 'subtxt/a.txt') make_non_writable(src_file) assert not filetype.is_writable(src_file) src_dir = join(src, 'subtxt') make_non_writable(src_dir) if on_posix: assert not filetype.is_writable(src_dir) # copy proper dest_dir = join(dst, 'dest') fileutils.copytree(src, dest_dir) dst_file = join(dest_dir, 'subtxt/a.txt') assert os.path.exists(dst_file) assert filetype.is_writable(dst_file) dest_dir2 = join(dest_dir, 'subtxt') assert os.path.exists(dest_dir2) assert filetype.is_writable(dest_dir) finally: fileutils.chmod(src, fileutils.RW, recurse=True) fileutils.chmod(dst, fileutils.RW, recurse=True)
def test_chmod_read_write_recursively_on_dir(self): test_dir = self.get_test_loc('fileutils/executable', copy=True) test_file = join(test_dir, 'deep1', 'deep2', 'ctags') test_dir2 = join(test_dir, 'deep1', 'deep2') parent = join(test_dir, 'deep1') try: make_non_writable(test_file) assert not filetype.is_writable(test_file) if on_posix: make_non_executable(test_file) assert not filetype.is_executable(test_file) if on_posix: make_non_executable(test_dir2) assert not filetype.is_executable(test_dir2) make_non_writable(test_dir) if on_posix: assert not filetype.is_writable(test_dir2) fileutils.chmod(parent, fileutils.RW, recurse=True) assert filetype.is_readable(test_dir2) is True assert filetype.is_writable(test_dir2) if on_posix: assert filetype.is_executable(test_dir2) finally: fileutils.chmod(test_dir, fileutils.RW, recurse=True)
def test_chmod_read_write_file(self): test_dir = self.get_test_loc('fileutils/executable', copy=True) test_file = join(test_dir, 'deep1', 'deep2', 'ctags') try: make_non_writable(test_file) assert not filetype.is_writable(test_file) fileutils.chmod(test_file, fileutils.RW) assert filetype.is_readable(test_file) assert filetype.is_writable(test_file) finally: fileutils.chmod(test_dir, fileutils.RW, recurse=True)
def test_is_readable_is_writeable_file(self): base_dir = self.get_test_loc('filetype/readwrite', copy=True) test_file = os.path.join(os.path.join(base_dir, 'sub'), 'file') try: assert filetype.is_readable(test_file) assert filetype.is_writable(test_file) make_non_readable(test_file) if on_posix: assert not filetype.is_readable(test_file) make_non_writable(test_file) assert not filetype.is_writable(test_file) finally: fileutils.chmod(base_dir, fileutils.RW, recurse=True)
def test_chmod_read_write_non_recursively_on_dir(self): test_dir = self.get_test_loc('fileutils/executable', copy=True) test_file = join(test_dir, 'deep1', 'deep2', 'ctags') test_dir = join(test_dir, 'deep1', 'deep2') parent = join(test_dir, 'deep1') try: # setup make_non_writable(test_file) assert not filetype.is_writable(test_file) make_non_writable(test_dir) if on_posix: assert not filetype.is_writable(test_dir) else: # windows is different assert filetype.is_writable(test_dir) fileutils.chmod(parent, fileutils.RW, recurse=False) # test: the perms should be the same assert not filetype.is_writable(test_file) if on_posix: assert not filetype.is_writable(test_dir) else: # windows is different assert filetype.is_writable(test_dir) finally: fileutils.chmod(test_dir, fileutils.RW, recurse=True)
def test_is_readable_is_writeable_dir(self): base_dir = self.get_test_loc('filetype/readwrite', copy=True) test_dir = os.path.join(base_dir, 'sub') try: assert filetype.is_readable(test_dir) assert filetype.is_writable(test_dir) make_non_readable(test_dir) if on_posix: assert not filetype.is_readable(test_dir) else: # dirs are always RW on windows assert filetype.is_readable(test_dir) make_non_writable(test_dir) if on_posix: assert not filetype.is_writable(test_dir) else: # dirs are always RW on windows assert filetype.is_writable(test_dir) # finally finally: fileutils.chmod(base_dir, fileutils.RW, recurse=True)
def test_chmod_read_write_exec_dir(self): test_dir = self.get_test_loc("fileutils/executable", copy=True) test_file = join(test_dir, "deep1", "deep2", "ctags") try: if on_posix: make_non_executable(test_dir) assert not filetype.is_executable(test_file) make_non_writable(test_dir) fileutils.chmod(test_dir, fileutils.RWX, recurse=True) assert filetype.is_readable(test_file) assert filetype.is_writable(test_file) if on_posix: assert filetype.is_executable(test_file) finally: fileutils.chmod(test_dir, fileutils.RW, recurse=True)
def test_is_rwx_with_none(self): assert not filetype.is_writable(None) assert not filetype.is_readable(None) assert not filetype.is_executable(None)