43 lines
1015 B
Python
43 lines
1015 B
Python
"""CLI tests for md2doc.py — argparse interface, no actual conversion."""
|
|
import subprocess
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
REPO = Path(__file__).parent.parent
|
|
|
|
|
|
def run_cli(*args):
|
|
return subprocess.run(
|
|
[sys.executable, "md2doc.py", *args],
|
|
cwd=REPO, capture_output=True, text=True
|
|
)
|
|
|
|
|
|
def test_no_args_shows_usage():
|
|
r = run_cli()
|
|
assert r.returncode != 0
|
|
assert "usage:" in r.stderr.lower()
|
|
|
|
|
|
def test_nonexistent_input_exits_1():
|
|
r = run_cli("nonexistent.md")
|
|
assert r.returncode == 1
|
|
assert "not found" in r.stderr.lower()
|
|
|
|
|
|
def test_style_choices_listed_in_help():
|
|
r = run_cli("--help")
|
|
assert r.returncode == 0
|
|
for s in ("elegant", "default", "dark", "mono", "report"):
|
|
assert s in r.stdout
|
|
|
|
|
|
def test_invalid_style_rejected():
|
|
tmp = REPO / "tests" / "tmp_test.md"
|
|
tmp.write_text("# test\n")
|
|
try:
|
|
r = run_cli(str(tmp), "--style", "nonexistent")
|
|
assert r.returncode != 0
|
|
finally:
|
|
tmp.unlink()
|