Files
md2pdf/tests/test_bulletize.py
sebastian 5a62572f55 feat: --footer/--header with {page}/{pages} placeholders, center-aligned
md2pdf.py:
- Expose --footer and --header (was dead code before)
- Remove --forms flag (B2 fix — weasyprint 68.1 silently drops <input>)
- Substitution support: {page} → counter(page), {pages} → counter(pages)
- Center-aligned via @bottom-center / @top-center

md2doc.py:
- Add --footer and --header support via Word field codes (PAGE, NUMPAGES)
- Center-aligned paragraph in footer/header
- Same {page}/{pages} substitution API as md2pdf

Both tools:
- GFM task list support: - [ ] → ☐, - [x]/- [X] → ☑ (synced _bulletize)
- Help text explains placeholder syntax with examples
2026-07-28 11:02:23 +03:00

47 lines
1.3 KiB
Python

"""Tests for _bulletize — verifies behavior copied from md2pdf.py."""
from md2doc import _bulletize
def test_simple_dash_list_becomes_bullets():
text = "- item A\n- item B\n"
result = _bulletize(text)
assert "• item A" in result
assert "• item B" in result
def test_code_block_dashes_preserved():
"""Dashes inside ``` blocks must NOT be bulletized."""
text = "```bash\n-r flag\n--verbose\n```\n"
result = _bulletize(text)
assert "-r flag" in result
assert "--verbose" in result
def test_html_block_dashes_preserved():
"""Dashes inside raw HTML blocks (table/div/etc.) must NOT be bulletized."""
text = "<table>\n- not a list\n</table>\n"
result = _bulletize(text)
assert "- not a list" in result
def test_tilde_fence_also_preserved():
text = "~~~bash\n-x\n~~~\n"
result = _bulletize(text)
assert "-x" in result
def test_unchecked_task_list_becomes_empty_checkbox():
text = "- [ ] todo item\n"
result = _bulletize(text)
assert "☐ todo item" in result
assert "[ ]" not in result
def test_checked_task_list_becomes_checked_checkbox():
text = "- [x] done item\n- [X] also done\n"
result = _bulletize(text)
assert "☑ done item" in result
assert "☑ also done" in result
assert "[x]" not in result
assert "[X]" not in result