mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-05-15 03:27:24 +08:00
Handle input directory creation failures safely
This commit is contained in:
parent
7b7becc34c
commit
97191568d7
@ -117,12 +117,12 @@ def set_temp_directory(temp_dir: str) -> None:
|
|||||||
|
|
||||||
def set_input_directory(input_dir: str) -> None:
|
def set_input_directory(input_dir: str) -> None:
|
||||||
global input_directory
|
global input_directory
|
||||||
input_directory = input_dir
|
|
||||||
if not os.path.exists(input_directory):
|
|
||||||
try:
|
try:
|
||||||
os.makedirs(input_directory)
|
os.makedirs(input_dir, exist_ok=True)
|
||||||
except:
|
except OSError:
|
||||||
logging.error("Failed to create input directory")
|
logging.exception("Failed to create input directory: %s", input_dir)
|
||||||
|
raise
|
||||||
|
input_directory = input_dir
|
||||||
|
|
||||||
def get_output_directory() -> str:
|
def get_output_directory() -> str:
|
||||||
global output_directory
|
global output_directory
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
import folder_paths
|
import folder_paths
|
||||||
|
|
||||||
|
|
||||||
@ -11,3 +13,18 @@ def test_set_input_directory_creates_missing_directory(tmp_path):
|
|||||||
assert custom_input_directory.is_dir()
|
assert custom_input_directory.is_dir()
|
||||||
finally:
|
finally:
|
||||||
folder_paths.set_input_directory(original_input_directory)
|
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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user