Files
invoice-master-poc-v2/tests/test_imports.py
2026-01-27 23:58:17 +01:00

49 lines
1.5 KiB
Python

"""Import validation tests.
Ensures all lazy imports across packages resolve correctly,
catching cross-package import errors that mocks would hide.
"""
import importlib
import pkgutil
import pytest
def _collect_modules(package_name: str) -> list[str]:
"""Recursively collect all module names under a package."""
try:
package = importlib.import_module(package_name)
except Exception:
return [package_name]
modules = [package_name]
if hasattr(package, "__path__"):
for _importer, modname, _ispkg in pkgutil.walk_packages(
package.__path__, prefix=package_name + "."
):
modules.append(modname)
return modules
SHARED_MODULES = _collect_modules("shared")
INFERENCE_MODULES = _collect_modules("inference")
TRAINING_MODULES = _collect_modules("training")
@pytest.mark.parametrize("module_name", SHARED_MODULES)
def test_shared_module_imports(module_name: str) -> None:
"""Every module in the shared package should import without error."""
importlib.import_module(module_name)
@pytest.mark.parametrize("module_name", INFERENCE_MODULES)
def test_inference_module_imports(module_name: str) -> None:
"""Every module in the inference package should import without error."""
importlib.import_module(module_name)
@pytest.mark.parametrize("module_name", TRAINING_MODULES)
def test_training_module_imports(module_name: str) -> None:
"""Every module in the training package should import without error."""
importlib.import_module(module_name)