Coverage for tests / scripts / test_verify_manifest_tools.py: 94%
18 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Tests for scripts/ci/verify-manifest-tools.py."""
3from __future__ import annotations
5import importlib.util
6from pathlib import Path
7from types import ModuleType
9from assertpy import assert_that
12def _load_verify_manifest_tools_module() -> ModuleType:
13 """Load verify-manifest-tools.py as a module for unit testing."""
14 script_path = (
15 Path(__file__).resolve().parents[2]
16 / "scripts"
17 / "ci"
18 / "verify-manifest-tools.py"
19 )
20 spec = importlib.util.spec_from_file_location(
21 "verify_manifest_tools",
22 script_path,
23 )
24 if spec is None or spec.loader is None:
25 raise RuntimeError("Failed to load verify-manifest-tools.py module")
27 module = importlib.util.module_from_spec(spec)
28 spec.loader.exec_module(module)
29 return module
32def test_tool_command_uses_install_bin_when_provided() -> None:
33 """verify-manifest-tools should honor install.bin for executable name."""
34 module = _load_verify_manifest_tools_module()
36 # Access private function for testing - module loaded dynamically via importlib
37 tool_command_fn = module._tool_command # noqa: SLF001
38 cmd = tool_command_fn(
39 "astro_check",
40 {"type": "npm", "package": "astro", "bin": "astro"},
41 )
43 assert_that(cmd).is_equal_to(["astro", "--version"])