"""Isolated venv smoke tests for packaged orisys wheels.""" from __future__ import annotations import subprocess import sys import tempfile import venv from pathlib import Path # Public SDK surface that must import from a released wheel. _SMOKE_IMPORT_SCRIPT = """ import orisys from orisys import Sensor, list_config, export_config, util, finger from orisys.finger import UVMeshViewer, build_uv_surface_mesh, FingerRuntime from orisys.finger.mesh import UVSurfaceMesh from orisys.finger.viewer import init_uv_mesh_viewer from orisys.hhd import nHHD from orisys.tracker import Tracker from orisys import capture from orisys.Stitcher import Stitcher assert orisys.__version__ assert Sensor is not None assert callable(list_config) assert callable(export_config) assert util is not None assert finger is not None assert UVMeshViewer is not None assert build_uv_surface_mesh is not None assert FingerRuntime is not None assert UVSurfaceMesh is not None assert init_uv_mesh_viewer is not None assert nHHD is not None assert Tracker is not None assert capture is not None assert Stitcher is not None print(f"orisys {orisys.__version__} public API imports OK") """ def _venv_python(venv_dir: Path) -> Path: if sys.platform == "win32": return venv_dir / "Scripts" / "python.exe" return venv_dir / "bin" / "python" def verify_built_wheel(wheel_path: Path) -> None: """Install the wheel in a temporary venv and smoke-test public imports.""" wheel_path = wheel_path.resolve() with tempfile.TemporaryDirectory(prefix="orisys-wheel-verify-") as tmp: venv_dir = Path(tmp) / "venv" venv.create(venv_dir, with_pip=True) python = _venv_python(venv_dir) subprocess.check_call( [python, "-m", "pip", "install", "-q", "--upgrade", "pip"], ) subprocess.check_call( [python, "-m", "pip", "install", "-q", str(wheel_path)], ) subprocess.check_call([python, "-c", _SMOKE_IMPORT_SCRIPT])