Files
roboco/tests/unit/scripts/test_reflow_md.py
T

57 lines
1.8 KiB
Python
Raw Normal View History

"""Guard the hard-wrap reflow gate: wiring into `make quality` + the check exit code.
Nothing previously pinned that `make quality` actually runs
`scripts/reflow_md.py --check` — a `Makefile` edit could silently drop the
line and no test would notice the regression. These tests pin the wiring and
the script's own pass/fail exit codes behind the I/O shell.
"""
from __future__ import annotations
import subprocess
import sys
from pathlib import Path
ROOT = Path(__file__).parents[3]
SCRIPT = ROOT / "scripts" / "reflow_md.py"
MAKEFILE = ROOT / "Makefile"
def test_quality_target_wires_in_reflow_check() -> None:
text = MAKEFILE.read_text()
quality_block = text.split("\n.PHONY: quality\n", 1)[1].split("\n.PHONY: ", 1)[0]
assert "scripts/reflow_md.py --check" in quality_block, (
"make quality must run scripts/reflow_md.py --check "
"(the hard-wrap reflow gate) — wiring was removed"
)
def test_check_passes_on_repo_as_committed() -> None:
result = subprocess.run(
[sys.executable, str(SCRIPT), "--check"],
cwd=ROOT,
capture_output=True,
text=True,
check=False,
)
assert result.returncode == 0, result.stdout + result.stderr
assert "OK: no hard-wrapped markdown prose in scope." in result.stdout
def test_check_fails_on_a_hard_wrapped_file(tmp_path: Path) -> None:
wrapped = tmp_path / "sample.md"
wrapped.write_text(
"This is a paragraph that has been\n"
"hard-wrapped mid-sentence across two\n"
"separate lines for no good reason.\n"
)
result = subprocess.run(
[sys.executable, str(SCRIPT), "--check"],
cwd=tmp_path,
capture_output=True,
text=True,
check=False,
)
assert result.returncode == 1
assert "hard-wrapped prose" in result.stdout