mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 05:40:26 +02:00
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import importlib
|
|
import sys
|
|
|
|
import os
|
|
|
|
import pytest
|
|
|
|
# Ensure real optional dependencies are imported before tests that install stubs
|
|
# so that available packages (like ebooklib, bs4, numpy) aren't replaced with dummy modules.
|
|
for module_name in ("ebooklib", "bs4", "numpy"):
|
|
if module_name not in sys.modules:
|
|
try:
|
|
importlib.import_module(module_name)
|
|
except Exception:
|
|
# On environments without the optional dependency, downstream tests
|
|
# will install lightweight stubs as needed.
|
|
pass
|
|
|
|
|
|
@pytest.fixture(autouse=True, scope="session")
|
|
def _isolate_settings_dir(tmp_path_factory: pytest.TempPathFactory):
|
|
settings_dir = tmp_path_factory.mktemp("abogen-settings")
|
|
os.environ["ABOGEN_SETTINGS_DIR"] = str(settings_dir)
|
|
|
|
try:
|
|
from abogen.utils import get_user_settings_dir
|
|
|
|
get_user_settings_dir.cache_clear()
|
|
except Exception:
|
|
pass
|
|
|
|
try:
|
|
from abogen.normalization_settings import clear_cached_settings
|
|
|
|
clear_cached_settings()
|
|
except Exception:
|
|
pass
|
|
|
|
yield
|