def test_copy_file(): temp_dir = appdirs.get_temp_dir() src = temp_utils.make_temporary_file("test", dir=temp_dir) dst = temp_utils.make_temporary_file("boo", dir=temp_dir) with pytest.raises(Exception): fs_util.copy_file(None, "blah") with pytest.raises(Exception): fs_util.copy_file("source", None) with pytest.raises(Exception): fs_util.copy_file("source", "dest") with pytest.raises(Exception): fs_util.copy_file(temp_dir, temp_dir + "/dest", False) fs_util.copy_file(src, dst)
def test_copy_tree(): temp_dir = appdirs.get_temp_dir() dst_name = temp_dir + temp_utils.make_random_name(5) path_temp = temp_dir + temp_utils.make_random_name(5) dst_name_2 = os.path.join(path_temp, temp_utils.make_random_name(3)) os.mkdir(dst_name) file_src = temp_utils.make_temporary_file("test", dir=temp_dir) with pytest.raises(Exception): fs_util.copy_tree(None, "dest") with pytest.raises(Exception): fs_util.copy_tree(temp_dir, None) with pytest.raises(Exception): fs_util.copy_tree("source", "dest") with pytest.raises(Exception): fs_util.copy_tree(file_src, dst_name) with pytest.raises(Exception): fs_util.copy_tree(temp_dir, dst_name, False) with pytest.raises(Exception): fs_util.copy_tree(temp_dir, dst_name_2, create_parent=False) with pytest.raises(Exception): fs_util.copy_tree(temp_dir, '') fs_util.copy_tree(temp_dir, dst_name) pass
def test_remove_child_files_and_folders(): temp_dir = appdirs.get_temp_dir() for i in range(10): sub_dir = temp_dir + "/" + str(i) os.mkdir(sub_dir) path = os.path.join(temp_dir, sub_dir) file_path = "" if i % 2 == 0: tmp_file = temp_utils.make_temporary_file("notes", dir=sub_dir) file_path = os.path.join(path, tmp_file) assert os.path.isfile(file_path) else: assert not os.path.isfile(file_path) if i % 3 == 0: fs_util.remove_child_files_and_folders(temp_dir) assert not os.path.exists(path) assert not os.path.isfile(file_path) else: assert os.path.exists(path)
def test_get_list_of_files_and_folders_in_tree(): assert [] == fs_util.get_list_of_files_and_folders_in_tree(None) assert [] == fs_util.get_list_of_files_and_folders_in_tree("gibberish") temp_dir = appdirs.get_temp_dir() sub_dir_1 = os.path.join(temp_dir, temp_utils.make_random_name(5)) sub_dir_2 = os.path.join(temp_dir, temp_utils.make_random_name(5)) sub_sub_dir = os.path.join(sub_dir_2, temp_utils.make_random_name(3)) os.makedirs(sub_sub_dir) os.makedirs(sub_dir_1) f1 = temp_utils.make_temporary_file("test", dir=temp_dir) f2 = temp_utils.make_temporary_file("test2", dir=sub_dir_1) f3 = temp_utils.make_temporary_file("test3", dir=sub_sub_dir) lst = fs_util.get_list_of_files_and_folders_in_tree(temp_dir) assert f1 in lst assert f2 in lst assert f3 in lst assert sub_sub_dir in lst assert sub_dir_1 in lst
def test_make_executable(): if is_osx: path = appdirs.get_temp_dir() exe_path = temp_utils.make_temporary_file("test", suffix=".exe", dir=path) fs_util.make_executable(None) fs_util.make_executable("does_not_exist") fs_util.make_executable(exe_path) pass else: fs_util.make_executable(None)
def test_remove_read_only_files_once(): temp_dir = appdirs.get_temp_dir() sub_dir_1 = os.path.join(temp_dir, temp_utils.make_random_name(5)) sub_dir_2 = os.path.join(temp_dir, temp_utils.make_random_name(5)) sub_sub_dir = os.path.join(sub_dir_2, temp_utils.make_random_name(3)) os.makedirs(sub_sub_dir) os.makedirs(sub_dir_1) f1 = temp_utils.make_temporary_file("test", dir=temp_dir) f2 = temp_utils.make_temporary_file("test2", dir=sub_dir_1) f3 = temp_utils.make_temporary_file("test3", dir=sub_sub_dir) os.chmod(f1, stat.S_IREAD | stat.S_IRGRP | stat.S_IROTH) os.chmod(f2, stat.S_IREAD | stat.S_IRGRP | stat.S_IROTH) os.chmod(f3, stat.S_IREAD | stat.S_IRGRP | stat.S_IROTH) assert os.path.isdir(temp_dir) assert os.path.isdir(sub_sub_dir) lst = fs_util.remove_read_only_files(temp_dir, recursive=False) assert os.path.isdir(sub_sub_dir) assert os.path.isdir(sub_dir_1)
def test_rename_folder(): temp_dir = appdirs.get_temp_dir() dst_name = temp_dir + temp_utils.make_random_name(5) os.mkdir(dst_name) file_dst = temp_utils.make_temporary_file("test", dir=dst_name) with pytest.raises(Exception): fs_util.rename_folder(None, "dest") with pytest.raises(Exception): fs_util.rename_folder(temp_dir, None) with pytest.raises(Exception): fs_util.rename_folder("fake_path/fake", dst_name) with pytest.raises(Exception): fs_util.rename_folder(temp_dir, file_dst) with pytest.raises(Exception): fs_util.rename_folder(temp_dir, dst_name, False) fs_util.rename_folder("fake_path/fake", dst_name, ignore_empty_src=True) fs_util.rename_folder(temp_dir, dst_name)
def test_backup_folder(): temp_dir = appdirs.get_temp_dir() dst_name = temp_dir + ".bak" # destination folder (already exists to trigger error below) os.mkdir(dst_name) file_src = temp_utils.make_temporary_file("test", dir=temp_dir) with pytest.raises(Exception): fs_util.backup_folder(None) with pytest.raises(Exception): fs_util.backup_folder(file_src) # backup dest already exists exception with pytest.raises(Exception): fs_util.backup_folder(temp_dir, ".bak", False) d1 = fs_util.backup_folder(temp_dir, ".bak") d2 = fs_util.backup_folder(temp_dir) pass