59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
"""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
|
|
|
|
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
|
|
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])
|