def test_copytree_copies_unreadable_files(self): src = self.get_test_loc('fileutils/exec', copy=True) dst = self.get_temp_dir() src_file1 = join(src, 'a.bat') src_file2 = join(src, 'subtxt', 'a.txt') try: # make some unreadable source files make_non_readable(src_file1) if on_posix: assert not filetype.is_readable(src_file1) make_non_readable(src_file2) if on_posix: assert not filetype.is_readable(src_file2) # copy proper dest_dir = join(dst, 'dest') fileutils.copytree(src, dest_dir) dest_file1 = join(dest_dir, 'a.bat') assert os.path.exists(dest_file1) assert filetype.is_readable(dest_file1) dest_file2 = join(dest_dir, 'subtxt', 'a.txt') assert os.path.exists(dest_file2) assert filetype.is_readable(dest_file2) finally: fileutils.chmod(src, fileutils.RW, recurse=True) fileutils.chmod(dst, 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_copyfile_does_not_keep_permissions(self): src_file = self.get_temp_file() dest = self.get_temp_dir() with open(src_file, 'wb') as f: f.write('') try: make_non_readable(src_file) if on_posix: assert not filetype.is_readable(src_file) fileutils.copyfile(src_file, dest) dest_file = join(dest, os.listdir(dest)[0]) assert filetype.is_readable(dest_file) finally: fileutils.chmod(src_file, fileutils.RW, recurse=True) fileutils.chmod(dest, fileutils.RW, recurse=True)
def test_delete_unwritable_directory_and_files(self): base_dir = self.get_test_loc('fileutils/readwrite', copy=True) test_dir = join(base_dir, 'sub') test_file = join(test_dir, 'file') try: # note: there are no unread/writable dir on windows make_non_readable(test_file) make_non_executable(test_file) make_non_writable(test_file) make_non_readable(test_dir) make_non_executable(test_dir) make_non_writable(test_dir) fileutils.delete(test_dir) assert not os.path.exists(test_dir) finally: fileutils.chmod(base_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)