[REFACTOR] реестр титульных листов вместо одного макета
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
import pytest
|
||||
|
||||
from md2gost.latex.titlepages import TITLEPAGES
|
||||
from md2gost.parser import Parser
|
||||
from md2gost.render import Renderer
|
||||
|
||||
@@ -9,6 +12,12 @@ def render(md: str) -> str:
|
||||
return Renderer(parser.tokens, parser.front_matter).render()
|
||||
|
||||
|
||||
def render_fm(extra: str, body: str = "Текст.\n") -> str:
|
||||
head = f"---\nназвание: Тестовая работа\nтип: Отчёт\n{extra}---\n\n"
|
||||
parser = Parser(head + body)
|
||||
return Renderer(parser.tokens, parser.front_matter).render()
|
||||
|
||||
|
||||
def test_heading_numbering() -> None:
|
||||
tex = render("# Исследовательская часть\n\n## Обзор\n")
|
||||
assert "\\section{Исследовательская часть}" in tex
|
||||
@@ -139,3 +148,18 @@ def _table_block(tex: str) -> str:
|
||||
start = tex.index("\\begin{table}")
|
||||
end = tex.index("\\end{table}") + len("\\end{table}")
|
||||
return tex[start:end]
|
||||
|
||||
|
||||
def test_titlepage_default_is_used_when_field_absent() -> None:
|
||||
tex = render("Текст.\n")
|
||||
assert "\\begin{titlepage}" in tex
|
||||
assert "ОТЧЁТ ПО УЧЕБНОЙ ПРАКТИКЕ" not in tex
|
||||
|
||||
|
||||
def test_titlepage_registry_lists_three_layouts() -> None:
|
||||
assert set(TITLEPAGES) == {"default", "ptp-report", "ptp-task"}
|
||||
|
||||
|
||||
def test_titlepage_unknown_name_raises() -> None:
|
||||
with pytest.raises(ValueError, match="ptp-report"):
|
||||
render_fm("титульник: несуществующий\n")
|
||||
|
||||
Reference in New Issue
Block a user