60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib.util
|
|
from argparse import Namespace
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
SCRIPT = ROOT / "scripts" / "run_1c_moxel_discovery_pipeline.py"
|
|
SPEC = importlib.util.spec_from_file_location("run_1c_moxel_discovery_pipeline", SCRIPT)
|
|
assert SPEC and SPEC.loader
|
|
pipeline = importlib.util.module_from_spec(SPEC)
|
|
SPEC.loader.exec_module(pipeline)
|
|
|
|
|
|
def args(**overrides) -> Namespace:
|
|
values = {
|
|
"probe": str(pipeline.DEFAULT_PROBE),
|
|
"baseline_discovery": str(pipeline.DEFAULT_BASELINE_DISCOVERY),
|
|
"history_matrix": str(pipeline.DEFAULT_HISTORY_MATRIX),
|
|
"property_candidates": str(pipeline.DEFAULT_PROPERTY_CANDIDATES),
|
|
"property_manifest": str(pipeline.DEFAULT_PROPERTY_MANIFEST),
|
|
"capture_live": False,
|
|
"base_id": "upo_test",
|
|
"label": "pipeline",
|
|
"file_name": None,
|
|
"scan_limit": 30,
|
|
"max_cells": 800,
|
|
}
|
|
values.update(overrides)
|
|
return Namespace(**values)
|
|
|
|
|
|
def test_build_commands_orders_discovery_before_registry() -> None:
|
|
commands = pipeline.build_commands(args())
|
|
names = [name for name, _ in commands]
|
|
|
|
assert names == [
|
|
"discover_schema",
|
|
"analyze_named_range_rules",
|
|
"analyze_property_experiments",
|
|
"build_registry",
|
|
"check_registry",
|
|
"verify_registry",
|
|
"plan_next_experiments",
|
|
"get_next_action",
|
|
"check_next_action",
|
|
"status",
|
|
]
|
|
|
|
|
|
def test_build_commands_can_plan_live_capture_first() -> None:
|
|
commands = pipeline.build_commands(args(capture_live=True, file_name="abc"))
|
|
|
|
assert commands[0][0] == "capture_live_probe"
|
|
assert "--file-name" in commands[0][1]
|
|
assert "--output-json" in commands[0][1]
|
|
output_index = commands[0][1].index("--output-json") + 1
|
|
assert commands[0][1][output_index] == "reports\\1c-template-probes\\latest-live-probe.json"
|