Handle input directory creation failures safely

This commit is contained in:
huyua9 2026-05-10 09:21:44 +08:00
parent 7b7becc34c
commit 97191568d7
2 changed files with 22 additions and 5 deletions

View File

@ -117,12 +117,12 @@ def set_temp_directory(temp_dir: str) -> None:
def set_input_directory(input_dir: str) -> None:
global input_directory
try:
os.makedirs(input_dir, exist_ok=True)
except OSError:
logging.exception("Failed to create input directory: %s", input_dir)
raise
input_directory = input_dir
if not os.path.exists(input_directory):
try:
os.makedirs(input_directory)
except:
logging.error("Failed to create input directory")
def get_output_directory() -> str:
global output_directory

View File

@ -1,3 +1,5 @@
import pytest
import folder_paths
@ -11,3 +13,18 @@ def test_set_input_directory_creates_missing_directory(tmp_path):
assert custom_input_directory.is_dir()
finally:
folder_paths.set_input_directory(original_input_directory)
def test_set_input_directory_keeps_original_when_creation_fails(tmp_path, monkeypatch):
original_input_directory = folder_paths.get_input_directory()
custom_input_directory = tmp_path / "custom-input"
def fail_to_create_directory(path, exist_ok=False):
raise OSError("create failed")
monkeypatch.setattr(folder_paths.os, "makedirs", fail_to_create_directory)
with pytest.raises(OSError, match="create failed"):
folder_paths.set_input_directory(str(custom_input_directory))
assert folder_paths.get_input_directory() == original_input_directory