28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
"""Shared bootstrap for the detector CLI shims in this directory.
|
|
|
|
The detectors live under `backend/tests/support/detectors/` so they can be
|
|
exercised by the test suite; the shims here only put that package on
|
|
`sys.path` and delegate. Keeping the path computation in one place means a
|
|
layout change breaks loudly in exactly one file instead of silently drifting
|
|
across copies.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import importlib
|
|
import sys
|
|
from collections.abc import Sequence
|
|
from pathlib import Path
|
|
|
|
TEST_SUPPORT_PATH = Path(__file__).resolve().parents[1] / "backend" / "tests"
|
|
|
|
|
|
def run_detector(module_name: str, argv: Sequence[str] | None = None) -> int:
|
|
"""Import a `support.detectors.*` module and run its `main(argv)`."""
|
|
if not TEST_SUPPORT_PATH.is_dir():
|
|
raise RuntimeError(f"detector support path not found: {TEST_SUPPORT_PATH}; the scripts/ directory has moved relative to backend/tests")
|
|
if str(TEST_SUPPORT_PATH) not in sys.path:
|
|
sys.path.insert(0, str(TEST_SUPPORT_PATH))
|
|
module = importlib.import_module(module_name)
|
|
return module.main(argv)
|