32 lines
1,023 B
Python
32 lines
1,023 B
Python
import os
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
SCRIPT = REPO_ROOT / "run-analysis.sh"
|
|
|
|
|
|
def test_script_invokes_commands(tmp_path):
|
|
# create stub virtualenv so the script skips creation
|
|
venv = tmp_path / ".venv" / "bin"
|
|
venv.mkdir(parents=True)
|
|
(venv / "activate").write_text(":")
|
|
|
|
calls = tmp_path / "calls.txt"
|
|
python_stub = tmp_path / "python"
|
|
python_stub.write_text(f"#!/usr/bin/env bash\necho \"$*\" >> \"{calls}\"\n")
|
|
python_stub.chmod(0o755)
|
|
(tmp_path / "python3").write_text(f"#!/usr/bin/env bash\nexit 0\n")
|
|
(tmp_path / "python3").chmod(0o755)
|
|
|
|
env = os.environ.copy()
|
|
env["PATH"] = f"{tmp_path}:" + env.get("PATH", "")
|
|
|
|
subprocess.run([str(SCRIPT)], cwd=tmp_path, env=env, check=True)
|
|
|
|
lines = calls.read_text().strip().splitlines()
|
|
assert lines == [
|
|
"-m scripts.analyze check-missing-domains",
|
|
"-m scripts.analyze suggest-cache",
|
|
"-m scripts.analyze detect-threats",
|
|
]
|