diff --git a/tests/conftest.py b/tests/conftest.py index a63c77e..2411442 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,6 +1,21 @@ import os +import sys +from pathlib import Path + os.environ.setdefault('UNIT_TEST', 'True') +# Ensure optional test stubs are loaded +repo_root = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(repo_root)) +try: + import sitecustomize # noqa: F401 +except Exception: + pass +finally: + if sys.path[0] == str(repo_root): + sys.path.pop(0) + sys.path.append(str(repo_root)) + import sys import types import importlib.util @@ -18,3 +33,25 @@ if importlib.util.find_spec('PIL') is None: pil_stub = types.ModuleType('PIL') pil_stub.Image = types.SimpleNamespace(open=lambda *a, **k: None) sys.modules['PIL'] = pil_stub + +# Provide folder_paths stub if module unavailable +if 'folder_paths' not in sys.modules: + fp_stub = types.SimpleNamespace( + get_filename_list=lambda *a, **k: [], + get_input_directory=lambda: '', + get_output_directory=lambda: '', + get_temp_directory=lambda: '' + ) + sys.modules['folder_paths'] = fp_stub + +# Minimal torchaudio stub to satisfy imports +if importlib.util.find_spec('torchaudio') is None: + ta_stub = types.ModuleType('torchaudio') + def _load(*a, **k): + raise NotImplementedError('torchaudio.load stub') + ta_stub.load = _load + sys.modules['torchaudio'] = ta_stub + +# Basic OpenCV stub +if importlib.util.find_spec('cv2') is None: + sys.modules['cv2'] = types.ModuleType('cv2') diff --git a/tests/test_video.py b/tests/test_video.py index eae27db..e663b51 100644 --- a/tests/test_video.py +++ b/tests/test_video.py @@ -7,7 +7,7 @@ import tempfile import pytest import torch from PIL import Image -from ..video import AddFramesToVideoFolder, VideoFolderProvider, VideoDefinitionProvider +from ..audio_video_folder import AddFramesToVideoFolder, VideoFolderProvider, VideoDefinitionProvider os.environ["ETERNAL_KERNEL_LITEGRAPH_NODES_TEST"] = "True" @@ -143,7 +143,7 @@ class TestTemporalOpticalFlowSmoothing(TestCase): # check the file generation and video play -from ..video import AddFramesToVideoFolder, VideoFolderProvider, VideoDefinitionProvider +from ..audio_video_folder import AddFramesToVideoFolder, VideoFolderProvider, VideoDefinitionProvider @pytest.fixture(scope="function")