feature: added tests for slides

This commit is contained in:
Prof. Dr. Matthias Jung DL9MJ
2025-06-24 22:04:42 +02:00
committed by Tim Grelka
parent 8a5a55371d
commit 283b6c8456
4 changed files with 43 additions and 7 deletions
+1 -1
View File
@@ -42,4 +42,4 @@ select = [
[tool.pytest.ini_options] [tool.pytest.ini_options]
addopts = ["--color=yes"] addopts = ["--color=yes"]
markers = ["html", "latex"] markers = ["html", "latex", "slide"]
+2 -5
View File
@@ -48,9 +48,6 @@ class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer):
qso += '</div>\n' qso += '</div>\n'
return qso return qso
def render_note(self, token):
return f'<aside class="notes">\n{self.render_inner(token)}\n</aside>\n'
def render_tag(self, token): def render_tag(self, token):
if token.tagtype == "fragment": if token.tagtype == "fragment":
return f'<div class="fragment">\n{self.render_inner(token)}\n</div>\n' return f'<div class="fragment">\n{self.render_inner(token)}\n</div>\n'
@@ -60,6 +57,6 @@ class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer):
return f'<div id="right">\n{self.render_inner(token)}\n</div>\n' return f'<div id="right">\n{self.render_inner(token)}\n</div>\n'
elif token.tagtype == "note": elif token.tagtype == "note":
return f'<aside class="notes">\n{self.render_inner(token)}\n</aside>\n' return f'<aside class="notes">\n{self.render_inner(token)}\n</aside>\n'
else:
return "" # Ignore other tags in slide context return "" # Ignore other tags in slide context anyway in tokenizer
+12 -1
View File
@@ -2,10 +2,11 @@ import mistletoe
import pytest import pytest
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
from renderer.fifty_ohm_html_slide_renderer import FiftyOhmHtmlSlideRenderer
@pytest.mark.html @pytest.mark.html
def test_table_html(): def test_qso_html():
assertions = { assertions = {
"<qso>\nfoo\n</qso>": FiftyOhmHtmlRenderer.render_tag_helper("qso", '<div class="qso_own">foo</div>\n', 1, 0) "<qso>\nfoo\n</qso>": FiftyOhmHtmlRenderer.render_tag_helper("qso", '<div class="qso_own">foo</div>\n', 1, 0)
+ "\n", + "\n",
@@ -21,3 +22,13 @@ def test_table_html():
for assertion in assertions: for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion] assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
@pytest.mark.slide
def test_qso_slide():
assertions = {
"<qso>\nfoo\n> bar\n</qso>":
'<div class="qso r-fit-text">\n<div class="qso_own fragment fade-right">foo</div>\n<div class="qso_other fragment fade-left">bar</div>\n</div>\n\n',
}
for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmHtmlSlideRenderer) == assertions[assertion]
+28
View File
@@ -2,6 +2,7 @@ import mistletoe
import pytest import pytest
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
from renderer.fifty_ohm_html_slide_renderer import FiftyOhmHtmlSlideRenderer
from renderer.fifty_ohm_latex_renderer import FiftyOhmLaTeXRenderer from renderer.fifty_ohm_latex_renderer import FiftyOhmLaTeXRenderer
@@ -103,3 +104,30 @@ def test_thematic_break_and_tag_latex():
for assertion in assertions: for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmLaTeXRenderer) == assertions[assertion] assert mistletoe.markdown(assertion, FiftyOhmLaTeXRenderer) == assertions[assertion]
@pytest.mark.slide
def test_tag_slide():
assertions = {
"<note>\nFoo\n</note>": '<aside class="notes">\n<p>Foo</p>\n</aside>\n\n',
"<fragment>\nFoo\n</fragment>": '<div class="fragment">\n<p>Foo</p>\n</div>\n\n',
"<left>\nFoo\n</left>": '<div id="left">\n<p>Foo</p>\n</div>\n\n',
"<right>\nFoo\n</right>": '<div id="right">\n<p>Foo</p>\n</div>\n\n',
}
for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmHtmlSlideRenderer) == assertions[assertion]
@pytest.mark.slide
def test_slide_break():
assertions = {
"---\na\n" : "<section>\n<p>a</p>\n</section>\n\n",
"---\na\n---\nb\n" : "<section>\n<p>a</p>\n</section>\n\n<section>\n<p>b</p>\n</section>\n\n",
"--- attention\na\n" : "<section data-background-color=\"#B8EAFF\">\n<p>a</p>\n</section>\n\n",
"--- unit\na\n" : "<section data-background-color=\"#40C08C\">\n<p>a</p>\n</section>\n\n",
"--- danger\na\n" : "<section data-background-color=\"#FF756D\">\n<p>a</p>\n</section>\n\n",
"--- foo\na\n" : "<section foo>\n<p>a</p>\n</section>\n\n",
}
for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmHtmlSlideRenderer) == assertions[assertion]