Initial commit
This commit is contained in:
55
tests/test_mscp_internal_runner.py
Normal file
55
tests/test_mscp_internal_runner.py
Normal file
@@ -0,0 +1,55 @@
|
||||
"""Frozen-style mSCP script re-exec (generate_guidance) entrypoint."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from applepy import cli
|
||||
from applepy.mscp import APPLEPY_INTERNAL_MSCP_SCRIPT_FLAG, run_generate_guidance
|
||||
|
||||
|
||||
def test_internal_mscp_script_entry_runs_script(tmp_path: Path) -> None:
|
||||
script = tmp_path / "x.py"
|
||||
script.write_text(
|
||||
"import sys\n"
|
||||
"assert 'hello' in sys.argv\n"
|
||||
"raise SystemExit(0)\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
code = cli._internal_mscp_script_entry([str(tmp_path), str(script), "hello"])
|
||||
assert code == 0
|
||||
|
||||
|
||||
def test_run_generate_guidance_frozen_uses_applepy_executable(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None:
|
||||
root = tmp_path / "macos_security"
|
||||
(root / "scripts").mkdir(parents=True)
|
||||
(root / "scripts" / "generate_guidance.py").write_text("# stub\n", encoding="utf-8")
|
||||
bl = root / "baselines" / "cis.yaml"
|
||||
bl.parent.mkdir(parents=True)
|
||||
bl.write_text("{}", encoding="utf-8")
|
||||
|
||||
captured: list[list[str]] = []
|
||||
|
||||
def fake_run(cmd, **kwargs):
|
||||
captured.append(cmd)
|
||||
class R:
|
||||
returncode = 0
|
||||
stdout = ""
|
||||
stderr = ""
|
||||
|
||||
return R()
|
||||
|
||||
monkeypatch.setattr(sys, "frozen", True, raising=False)
|
||||
monkeypatch.setattr(sys, "executable", "/fake/applepy", raising=False)
|
||||
monkeypatch.setattr("applepy.mscp.subprocess.run", fake_run)
|
||||
monkeypatch.delenv("APPLEPY_MSCP_FORCE_SUBPROCESS", raising=False)
|
||||
|
||||
code, out, err = run_generate_guidance(root, bl)
|
||||
assert code == 0
|
||||
assert captured
|
||||
assert captured[0][0] == "/fake/applepy"
|
||||
assert captured[0][1] == APPLEPY_INTERNAL_MSCP_SCRIPT_FLAG
|
||||
assert captured[0][2] == str(root.resolve())
|
||||
assert captured[0][3] == str((root / "scripts" / "generate_guidance.py").resolve())
|
||||
Reference in New Issue
Block a user