import mistletoe
import pytest
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
from renderer.fifty_ohm_latex_renderer import FiftyOhmLaTeXRenderer
from test.util import paragraph, render_html, render_slide
@pytest.mark.html
def test_thematic_break_html():
assertions = {
"---": '\n',
"---\n---": '\n\n',
}
for assertion in assertions:
assert render_html(assertion) == assertions[assertion]
@pytest.mark.html
def test_tag_html():
assertions = {
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("margin", "
Foo
", 1, 0) + "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("indepth", "Foo
", 1, 0) + "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("margin", "Foo
", 1, 0) + "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("tip", "Foo
", 1, 0) + "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("person", "Foo
", 1, 0) + "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("tip", "Foo
", 1, 0) + "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("indepth", "Foo
", 1, 0)
+ "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("unit", "Foo
", 1, 0) + "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("danger", "Foo
", 1, 0) + "\n",
"\nFoo\n": FiftyOhmHtmlRenderer.render_tag_helper("wordorigin", "Foo
", 1, 0)
+ "\n",
"\nFoo\n": "Foo
\n",
"\nFoo\n": "",
"Foo": paragraph("Foo"),
}
for assertion in assertions:
assert render_html(assertion) == assertions[assertion]
@pytest.mark.html
def test_thematic_break_and_tag_html():
assertions = {
"---\n\nFoo\n": '\n'
+ FiftyOhmHtmlRenderer.render_tag_helper("margin", "Foo
", 1, 1)
+ "\n",
"---\n\nFoo\n\n\nFoo\n": '\n'
+ FiftyOhmHtmlRenderer.render_tag_helper("margin", "Foo
", 1, 1)
+ "\n"
+ FiftyOhmHtmlRenderer.render_tag_helper("margin", "Foo
", 2, 1)
+ "\n",
"---\n\nFoo\n\n---\n\nFoo\n": '\n'
+ FiftyOhmHtmlRenderer.render_tag_helper("margin", "Foo
", 1, 1)
+ '\n\n'
+ FiftyOhmHtmlRenderer.render_tag_helper("margin", "Foo
", 2, 2)
+ "\n",
}
for assertion in assertions:
assert render_html(assertion) == assertions[assertion]
@pytest.mark.latex
def test_thematic_break_latex():
assertions = {
"---": "",
"---\n---": "",
}
for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmLaTeXRenderer) == assertions[assertion]
@pytest.mark.latex
def test_tag_latex():
assertions = {
"\nFoo\n": "\\Margin{\nFoo\n}",
"\nFoo\n": "\\MarginDanger{\nFoo\n}",
"\nFoo\n": "\\MarginWarning{\nFoo\n}",
"\nFoo\n": "\\MarginAttention{\nFoo\n}",
"\nFoo\n": "\\MarginTip{\nFoo\n}",
"\nFoo\n": "\\WebTip{\nFoo\n}",
"\nFoo\n": "\\MarginUnit{\nFoo\n}",
"\nFoo\n": "\\MarginInDepth{\nFoo\n}",
"\nFoo\n": "\\MarginWebInDepth{\nFoo\n}",
"\nFoo\n": "\\WebMargin{\nFoo\n}",
"\nFoo\n": "\\FullWidth{\nFoo\n}",
"\nFoo\n": "\nFoo\n",
"\nFoo\n": "",
}
for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmLaTeXRenderer) == assertions[assertion]
@pytest.mark.latex
def test_thematic_break_and_tag_latex():
assertions = {
"---\n\nFoo\n": "\\Margin{\nFoo\n}",
"---\n\nFoo\n\n\nFoo\n": "\\Margin{\nFoo\n}\\Margin{\nFoo\n}",
"---\n\nFoo\n\n---\n\nFoo\n": "\\Margin{\nFoo\n}\\Margin{\nFoo\n}",
}
for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmLaTeXRenderer) == assertions[assertion]
@pytest.mark.slide
def test_tag_slide():
assertions = {
"\nFoo\n": '\n\n',
"\nFoo\n": '\n\n',
"\nFoo\n": '\n\n',
"\nFoo\n": '\n\n',
}
for assertion in assertions:
assert render_slide(assertion) == assertions[assertion]
@pytest.mark.slide
def test_slide_break():
assertions = {
"---\na\n": "\n\n",
"---\na\n---\nb\n": "\n\n\n\n",
"--- foo\na\n": "\n\n",
"--- foo bar\na\n": "\n\n",
"--- foo bar \na\n": "\n\n",
}
for assertion in assertions:
assert render_slide(assertion) == assertions[assertion]