refactor: avoid parsing document twice for figure numbers
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
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
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -16,7 +15,7 @@ def test_comment_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
|
||||
assert render_html(assertion) == assertions[assertion]
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
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
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -14,7 +13,7 @@ def test_dash_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion])
|
||||
assert render_html(assertion) == paragraph(assertions[assertion])
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import pytest
|
||||
from mistletoe import Document
|
||||
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from test.util import render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -14,6 +13,5 @@ def test_formula_html():
|
||||
r"Lorem Ipsum" + "\n" + r"$a \cdot b$": "<p>Lorem Ipsum</p>\n\n" + r"$$a \cdot b$$" + "\n\n",
|
||||
}
|
||||
|
||||
with FiftyOhmHtmlRenderer() as renderer:
|
||||
for assertion in assertions:
|
||||
assert renderer.render(Document(assertion)) == assertions[assertion]
|
||||
for assertion in assertions:
|
||||
assert render_html(assertion) == assertions[assertion]
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
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
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -11,7 +10,7 @@ def test_halfwidth_space_html():
|
||||
input = "Dies ist z.B. ein Test. D.h. hier sollten d.h. Spaces ersetzt worden sein."
|
||||
target = "Dies ist z. B. ein Test. D. h. hier sollten d. h. Spaces ersetzt worden sein."
|
||||
|
||||
assert mistletoe.markdown(input, FiftyOhmHtmlRenderer) == paragraph(target)
|
||||
assert render_html(input) == paragraph(target)
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import mistletoe
|
||||
import pytest
|
||||
|
||||
from renderer.document import Document
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from renderer.fifty_ohm_html_slide_renderer import FiftyOhmHtmlSlideRenderer
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
def test_hierarchical_picture_numbering():
|
||||
"""Test that pictures get hierarchical numbers in format edition-chapter.section.counter"""
|
||||
"""Pictures get hierarchical numbers in format edition-chapter.section.counter"""
|
||||
markdown_text = """
|
||||
[picture:123:pic1:First picture]
|
||||
|
||||
@@ -20,30 +20,26 @@ Reference to second: [ref:pic2]
|
||||
"""
|
||||
|
||||
renderer = FiftyOhmHtmlRenderer(edition="E", chapter="2", section="3")
|
||||
doc = mistletoe.Document(markdown_text)
|
||||
doc = Document(markdown_text)
|
||||
|
||||
# First pass: collect figures
|
||||
renderer.collect_figures(doc)
|
||||
# Counter is assigned in document order during parsing.
|
||||
assert doc.references["pic1"] == "1"
|
||||
assert doc.references["pic2"] == "2"
|
||||
|
||||
# Verify figure map
|
||||
assert renderer.figure_map["pic1"] == "E-2.3.1"
|
||||
assert renderer.figure_map["pic2"] == "E-2.3.2"
|
||||
|
||||
# Second pass: render
|
||||
result = renderer.render(doc)
|
||||
|
||||
# Verify hierarchical numbers in output
|
||||
# Hierarchical numbers in the figure captions.
|
||||
assert "Abbildung E-2.3.1:" in result
|
||||
assert "Abbildung E-2.3.2:" in result
|
||||
|
||||
# Verify references are resolved
|
||||
# References are resolved to the same numbers.
|
||||
assert ">E-2.3.1</a>" in result
|
||||
assert ">E-2.3.2</a>" in result
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
def test_hierarchical_photo_numbering():
|
||||
"""Test that photos get hierarchical numbers"""
|
||||
"""Photos get hierarchical numbers from the shared counter"""
|
||||
markdown_text = """
|
||||
[photo:789:photo1:First photo]
|
||||
|
||||
@@ -53,12 +49,10 @@ Reference: [ref:photo1]
|
||||
"""
|
||||
|
||||
renderer = FiftyOhmHtmlRenderer(edition="N", chapter="1", section="2")
|
||||
doc = mistletoe.Document(markdown_text)
|
||||
doc = Document(markdown_text)
|
||||
|
||||
renderer.collect_figures(doc)
|
||||
|
||||
assert renderer.figure_map["photo1"] == "N-1.2.1"
|
||||
assert renderer.figure_map["photo2"] == "N-1.2.2"
|
||||
assert doc.references["photo1"] == "1"
|
||||
assert doc.references["photo2"] == "2"
|
||||
|
||||
result = renderer.render(doc)
|
||||
|
||||
@@ -69,7 +63,7 @@ Reference: [ref:photo1]
|
||||
|
||||
@pytest.mark.html
|
||||
def test_hierarchical_table_numbering():
|
||||
"""Test that tables with names get hierarchical numbers"""
|
||||
"""Tables with names get hierarchical numbers from the shared counter"""
|
||||
markdown_text = """
|
||||
| Header 1 | Header 2 |
|
||||
| Data 1 | Data 2 |
|
||||
@@ -83,12 +77,10 @@ Reference: [ref:table1]
|
||||
"""
|
||||
|
||||
renderer = FiftyOhmHtmlRenderer(edition="A", chapter="3", section="1")
|
||||
doc = mistletoe.Document(markdown_text)
|
||||
doc = Document(markdown_text)
|
||||
|
||||
renderer.collect_figures(doc)
|
||||
|
||||
assert renderer.figure_map["table1"] == "A-3.1.1"
|
||||
assert renderer.figure_map["table2"] == "A-3.1.2"
|
||||
assert doc.references["table1"] == "1"
|
||||
assert doc.references["table2"] == "2"
|
||||
|
||||
result = renderer.render(doc)
|
||||
|
||||
@@ -99,7 +91,7 @@ Reference: [ref:table1]
|
||||
|
||||
@pytest.mark.html
|
||||
def test_mixed_figure_types_share_counter():
|
||||
"""Test that pictures, photos, and tables share a single unified counter"""
|
||||
"""Pictures, photos, and tables share a single unified counter in document order"""
|
||||
markdown_text = """
|
||||
[picture:1:pic1:Picture one]
|
||||
|
||||
@@ -115,19 +107,16 @@ References: [ref:pic1], [ref:photo1], [ref:tab1], [ref:pic2]
|
||||
"""
|
||||
|
||||
renderer = FiftyOhmHtmlRenderer(edition="E", chapter="5", section="2")
|
||||
doc = mistletoe.Document(markdown_text)
|
||||
doc = Document(markdown_text)
|
||||
|
||||
renderer.collect_figures(doc)
|
||||
|
||||
# All types share the same counter
|
||||
assert renderer.figure_map["pic1"] == "E-5.2.1"
|
||||
assert renderer.figure_map["photo1"] == "E-5.2.2"
|
||||
assert renderer.figure_map["tab1"] == "E-5.2.3"
|
||||
assert renderer.figure_map["pic2"] == "E-5.2.4"
|
||||
# All types share the same counter, assigned in document order.
|
||||
assert doc.references["pic1"] == "1"
|
||||
assert doc.references["photo1"] == "2"
|
||||
assert doc.references["tab1"] == "3"
|
||||
assert doc.references["pic2"] == "4"
|
||||
|
||||
result = renderer.render(doc)
|
||||
|
||||
# Verify all references are resolved with correct numbers
|
||||
assert "Abbildung E-5.2.1:" in result # pic1
|
||||
assert "Abbildung E-5.2.2:" in result # photo1
|
||||
assert "Tabelle E-5.2.3:" in result # tab1
|
||||
@@ -136,7 +125,7 @@ References: [ref:pic1], [ref:photo1], [ref:tab1], [ref:pic2]
|
||||
|
||||
@pytest.mark.slide
|
||||
def test_slide_renderer_adds_s_suffix():
|
||||
"""Test that slide renderer adds 'S' suffix to edition"""
|
||||
"""The slide renderer adds an 'S' suffix to the edition"""
|
||||
markdown_text = """
|
||||
[picture:1:pic1:Slide picture]
|
||||
|
||||
@@ -144,17 +133,11 @@ Reference: [ref:pic1]
|
||||
"""
|
||||
|
||||
renderer = FiftyOhmHtmlSlideRenderer(edition="E", chapter="2", section="1")
|
||||
doc = mistletoe.Document(markdown_text)
|
||||
|
||||
# Verify edition has S suffix
|
||||
# Edition gains the S suffix.
|
||||
assert renderer.edition == "ES"
|
||||
|
||||
renderer.collect_figures(doc)
|
||||
|
||||
# Verify hierarchical number includes S
|
||||
assert renderer.figure_map["pic1"] == "ES-2.1.1"
|
||||
|
||||
result = renderer.render(doc)
|
||||
result = renderer.render(Document(markdown_text))
|
||||
|
||||
assert "Abbildung ES-2.1.1:" in result
|
||||
assert ">ES-2.1.1</a>" in result
|
||||
@@ -162,49 +145,38 @@ Reference: [ref:pic1]
|
||||
|
||||
@pytest.mark.html
|
||||
def test_fallback_numbering_without_context():
|
||||
"""Test that numbering falls back to simple counter when context is missing"""
|
||||
"""Numbering falls back to a simple counter when context is missing"""
|
||||
markdown_text = """
|
||||
[picture:1:pic1:Picture]
|
||||
|
||||
Reference: [ref:pic1]
|
||||
"""
|
||||
|
||||
# No edition/chapter/section provided
|
||||
# No edition/chapter/section provided.
|
||||
renderer = FiftyOhmHtmlRenderer()
|
||||
doc = mistletoe.Document(markdown_text)
|
||||
|
||||
renderer.collect_figures(doc)
|
||||
|
||||
# Should fall back to simple counter
|
||||
assert renderer.figure_map["pic1"] == "1"
|
||||
|
||||
result = renderer.render(doc)
|
||||
result = renderer.render(Document(markdown_text))
|
||||
|
||||
# Falls back to the bare counter.
|
||||
assert "Abbildung 1:" in result
|
||||
assert ">1</a>" in result
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
def test_unresolved_reference():
|
||||
"""Test that references to non-existent figures show '?'"""
|
||||
"""References to non-existent figures show '?'"""
|
||||
markdown_text = """
|
||||
Reference to non-existent: [ref:nonexistent]
|
||||
"""
|
||||
|
||||
renderer = FiftyOhmHtmlRenderer(edition="E", chapter="1", section="1")
|
||||
doc = mistletoe.Document(markdown_text)
|
||||
result = renderer.render(Document(markdown_text))
|
||||
|
||||
renderer.collect_figures(doc)
|
||||
|
||||
result = renderer.render(doc)
|
||||
|
||||
# Should show ? for unresolved reference
|
||||
assert ">?</a>" in result
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
def test_table_without_name_not_numbered():
|
||||
"""Test that tables without names are not numbered"""
|
||||
"""Tables without names are not numbered and do not consume a counter slot"""
|
||||
markdown_text = """
|
||||
| Header 1 | Header 2 |
|
||||
| Data 1 | Data 2 |
|
||||
@@ -213,10 +185,12 @@ def test_table_without_name_not_numbered():
|
||||
"""
|
||||
|
||||
renderer = FiftyOhmHtmlRenderer(edition="E", chapter="1", section="1")
|
||||
doc = mistletoe.Document(markdown_text)
|
||||
doc = Document(markdown_text)
|
||||
|
||||
renderer.collect_figures(doc)
|
||||
# Only the picture is registered.
|
||||
assert doc.references == {"pic1": "1"}
|
||||
|
||||
# Only the picture should be numbered
|
||||
assert renderer.figure_map["pic1"] == "E-1.1.1"
|
||||
assert renderer.figure_counter == 1
|
||||
result = renderer.render(doc)
|
||||
|
||||
assert "Abbildung E-1.1.1:" in result
|
||||
assert "Tabelle" not in result
|
||||
|
||||
+1
-1
@@ -2,9 +2,9 @@ import json
|
||||
|
||||
import pytest
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
from mistletoe import Document
|
||||
|
||||
import src.config as config
|
||||
from renderer.document import Document
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
|
||||
conf = config.Config()
|
||||
|
||||
@@ -3,9 +3,9 @@ import random
|
||||
|
||||
import pytest
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
from mistletoe import Document
|
||||
|
||||
import src.config as config
|
||||
from renderer.document import Document
|
||||
from renderer.fifty_ohm_html_slide_renderer import FiftyOhmHtmlSlideRenderer
|
||||
|
||||
conf = config.Config()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
from mistletoe import Document
|
||||
|
||||
from renderer.document import Document
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
|
||||
|
||||
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
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
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -42,7 +41,7 @@ def test_index_html():
|
||||
}
|
||||
|
||||
for key, value in assertions.items():
|
||||
assert mistletoe.markdown(key, FiftyOhmHtmlRenderer) == paragraph(value)
|
||||
assert render_html(key) == paragraph(value)
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
|
||||
+2
-3
@@ -1,8 +1,7 @@
|
||||
import mistletoe
|
||||
import pytest
|
||||
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from test.util import paragraph
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -17,4 +16,4 @@ def test_morse_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion])
|
||||
assert render_html(assertion) == paragraph(assertions[assertion])
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
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
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -11,7 +10,7 @@ def test_paragraph_html():
|
||||
input = "Der Test befindet sich unter §2 vielleicht aber auch § 3."
|
||||
target = "Der Test befindet sich unter § 2 vielleicht aber auch § 3."
|
||||
|
||||
assert mistletoe.markdown(input, FiftyOhmHtmlRenderer) == paragraph(target)
|
||||
assert render_html(input) == paragraph(target)
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -24,7 +23,7 @@ def test_three_points_html():
|
||||
}
|
||||
|
||||
for key, value in assertions.items():
|
||||
assert mistletoe.markdown(key, FiftyOhmHtmlRenderer) == paragraph(value)
|
||||
assert render_html(key) == paragraph(value)
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -32,7 +31,7 @@ def test_absatz_html():
|
||||
input = "Der Test befindet sich unter Abs.2 vielleicht aber auch Abs. 3."
|
||||
target = "Der Test befindet sich unter Abs. 2 vielleicht aber auch Abs. 3."
|
||||
|
||||
assert mistletoe.markdown(input, FiftyOhmHtmlRenderer) == paragraph(target)
|
||||
assert render_html(input) == paragraph(target)
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -40,7 +39,7 @@ def test_class_html():
|
||||
input = "Ich lerne für Klasse A, Klasse E und Klasse N."
|
||||
target = "Ich lerne für Klasse A, Klasse E und Klasse N."
|
||||
|
||||
assert mistletoe.markdown(input, FiftyOhmHtmlRenderer) == paragraph(target)
|
||||
assert render_html(input) == paragraph(target)
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
|
||||
+8
-9
@@ -1,19 +1,17 @@
|
||||
import mistletoe
|
||||
import pytest
|
||||
|
||||
from renderer.document import Document
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from renderer.fifty_ohm_latex_renderer import FiftyOhmLaTeXRenderer
|
||||
from test.util import paragraph
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
def test_photo_html():
|
||||
assertions = {
|
||||
"[photo:123:abc:Text]": FiftyOhmHtmlRenderer.render_photo_helper("123", "abc", "Text", "TODO", ""),
|
||||
}
|
||||
assertions = {"[photo:123:abc:Text]": ("123", "abc", "Text", "A-5.7.1", "")}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion])
|
||||
with FiftyOhmHtmlRenderer(edition="A", chapter="5", section="7") as renderer:
|
||||
for assertion in assertions:
|
||||
assert renderer.render(Document(assertion)) == renderer.render_photo_helper(*assertions[assertion]) + "\n"
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
@@ -22,5 +20,6 @@ def test_photo_latex():
|
||||
"[photo:123:abc:Text]": FiftyOhmLaTeXRenderer.render_photo_helper("123", "abc", "Text", "TODO"),
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmLaTeXRenderer) == "\n" + assertions[assertion] + "\n"
|
||||
with FiftyOhmLaTeXRenderer() as renderer:
|
||||
for assertion in assertions:
|
||||
assert renderer.render(Document(assertion)) == assertions[assertion]
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import mistletoe
|
||||
import pytest
|
||||
|
||||
from renderer.document import Document
|
||||
@@ -21,5 +20,6 @@ def test_picture_latex():
|
||||
"[picture:0:abc:Text]": FiftyOhmLaTeXRenderer.render_picture_helper("0", "abc", "Text", "TODO"),
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmLaTeXRenderer) == "\n" + assertions[assertion] + "\n"
|
||||
with FiftyOhmLaTeXRenderer() as renderer:
|
||||
for assertion in assertions:
|
||||
assert renderer.render(Document(assertion)) == assertions[assertion]
|
||||
|
||||
+3
-4
@@ -1,8 +1,7 @@
|
||||
import mistletoe
|
||||
import pytest
|
||||
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from renderer.fifty_ohm_html_slide_renderer import FiftyOhmHtmlSlideRenderer
|
||||
from test.util import render_html, render_slide
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -21,7 +20,7 @@ def test_qso_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
|
||||
assert render_html(assertion) == assertions[assertion]
|
||||
|
||||
|
||||
@pytest.mark.slide
|
||||
@@ -31,4 +30,4 @@ def test_qso_slide():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlSlideRenderer) == assertions[assertion]
|
||||
assert render_slide(assertion) == assertions[assertion]
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import json
|
||||
|
||||
import pytest
|
||||
from mistletoe import Document
|
||||
|
||||
from renderer.document import Document
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from renderer.fifty_ohm_latex_renderer import FiftyOhmLaTeXRenderer
|
||||
from test.util import paragraph
|
||||
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
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
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -18,7 +17,7 @@ def test_quote_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion])
|
||||
assert render_html(assertion) == paragraph(assertions[assertion])
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import mistletoe
|
||||
import pytest
|
||||
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from test.util import paragraph
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -15,4 +13,4 @@ def test_references_html():
|
||||
}
|
||||
|
||||
for key, value in assertions.items():
|
||||
assert mistletoe.markdown(key, FiftyOhmHtmlRenderer) == paragraph(value)
|
||||
assert render_html(key) == paragraph(value)
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
from mistletoe import Document
|
||||
|
||||
from renderer.document import Document
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from renderer.fifty_ohm_latex_renderer import FiftyOhmLaTeXRenderer
|
||||
|
||||
@@ -15,7 +15,7 @@ def test_table_html():
|
||||
"| l: a |\n| b |\n| c |": '<table class="table table-hover">\n<thead>\n<tr>\n<th style="text-align: left;">a</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style="text-align: left;">b</td>\n</tr>\n<tr>\n<td style="text-align: left;">c</td>\n</tr>\n</tbody>\n</table>\n', # noqa: E501
|
||||
"| a |\n| b |\n| c |": '<table class="table table-hover">\n<thead>\n<tr>\n<th>a</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>b</td>\n</tr>\n<tr>\n<td>c</td>\n</tr>\n</tbody>\n</table>\n', # noqa: E501
|
||||
"| l: a |\n| *b* |": '<table class="table table-hover">\n<thead>\n<tr>\n<th style="text-align: left;">a</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style="text-align: left;"><em>b</em></td>\n</tr>\n</tbody>\n</table>\n', # noqa: E501
|
||||
"| l: a |\n| b |\n[table:n_ab:A und B]": '<table class="table table-hover" id="ref_n_ab" name="n_ab">\n<thead>\n<tr>\n<th style="text-align: left;">a</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style="text-align: left;">b</td>\n</tr>\n</tbody>\n<caption>A und B</caption>\n</table>\n', # noqa: E501
|
||||
"| l: a |\n| b |\n[table:n_ab:A und B]": '<table class="table table-hover" id="ref_n_ab" name="n_ab">\n<thead>\n<tr>\n<th style="text-align: left;">a</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style="text-align: left;">b</td>\n</tr>\n</tbody>\n<caption>Tabelle 1: A und B</caption>\n</table>\n', # noqa: E501
|
||||
"| l: *a* |": '<table class="table table-hover">\n<thead>\n<tr>\n<th style="text-align: left;"><em>a</em></th>\n</tr>\n</thead>\n</table>\n', # noqa: E501
|
||||
"| l: a |\n| [morse:a] |": '<table class="table table-hover">\n<thead>\n<tr>\n<th style="text-align: left;">a</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style="text-align: left;"><span class="morse"><span class="morse_char">\n<span class="morse_symbol">\n▄</span>\n<span class="morse_symbol">\n▄▄▄</span>\n</span>\n</span></td>\n</tr>\n</tbody>\n</table>\n', # noqa: E501
|
||||
"| l: abc | r: abc | X: abc |\n| 123 | 456 | 789 | \n | 987 | 654 | 321 | ": '<table class="table table-hover">\n<thead>\n<tr>\n<th style="text-align: left;">abc</th>\n<th style="text-align: right;">abc</th>\n<th>abc</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style="text-align: left;">123</td>\n<td style="text-align: right;">456</td>\n<td>789</td>\n</tr>\n<tr>\n<td style="text-align: left;">987</td>\n<td style="text-align: right;">654</td>\n<td>321</td>\n</tr>\n</tbody>\n</table>\n', # noqa: E501
|
||||
|
||||
+6
-7
@@ -2,9 +2,8 @@ import mistletoe
|
||||
import pytest
|
||||
|
||||
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 test.util import paragraph
|
||||
from test.util import paragraph, render_html, render_slide
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -15,7 +14,7 @@ def test_thematic_break_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
|
||||
assert render_html(assertion) == assertions[assertion]
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -39,7 +38,7 @@ def test_tag_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
|
||||
assert render_html(assertion) == assertions[assertion]
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -61,7 +60,7 @@ def test_thematic_break_and_tag_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
|
||||
assert render_html(assertion) == assertions[assertion]
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
@@ -119,7 +118,7 @@ def test_tag_slide():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlSlideRenderer) == assertions[assertion]
|
||||
assert render_slide(assertion) == assertions[assertion]
|
||||
|
||||
|
||||
@pytest.mark.slide
|
||||
@@ -133,4 +132,4 @@ def test_slide_break():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlSlideRenderer) == assertions[assertion]
|
||||
assert render_slide(assertion) == assertions[assertion]
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
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
|
||||
from test.util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -15,7 +14,7 @@ def test_underline_html():
|
||||
}
|
||||
|
||||
for assertion in assertions:
|
||||
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion])
|
||||
assert render_html(assertion) == paragraph(assertions[assertion])
|
||||
|
||||
|
||||
@pytest.mark.latex
|
||||
|
||||
+4
-7
@@ -1,9 +1,6 @@
|
||||
import mistletoe
|
||||
import pytest
|
||||
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
|
||||
from .util import paragraph
|
||||
from .util import paragraph, render_html
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -21,7 +18,7 @@ def test_basic_units_html():
|
||||
}
|
||||
|
||||
for input, output in assertions.items():
|
||||
assert mistletoe.markdown(input, FiftyOhmHtmlRenderer) == paragraph(output)
|
||||
assert render_html(input) == paragraph(output)
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -33,7 +30,7 @@ def test_translated_units_html():
|
||||
}
|
||||
|
||||
for input, output in assertions.items():
|
||||
assert mistletoe.markdown(input, FiftyOhmHtmlRenderer) == paragraph(output)
|
||||
assert render_html(input) == paragraph(output)
|
||||
|
||||
|
||||
@pytest.mark.html
|
||||
@@ -46,4 +43,4 @@ def test_special_units_html():
|
||||
}
|
||||
|
||||
for input, output in assertions.items():
|
||||
assert mistletoe.markdown(input, FiftyOhmHtmlRenderer) == paragraph(output)
|
||||
assert render_html(input) == paragraph(output)
|
||||
|
||||
@@ -1,2 +1,19 @@
|
||||
from renderer.document import Document
|
||||
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||
from renderer.fifty_ohm_html_slide_renderer import FiftyOhmHtmlSlideRenderer
|
||||
|
||||
|
||||
def paragraph(text):
|
||||
return f"<p>{text}</p>\n"
|
||||
|
||||
|
||||
def render_html(markdown):
|
||||
"""Render markdown with the HTML renderer through the project's Document."""
|
||||
with FiftyOhmHtmlRenderer() as renderer:
|
||||
return renderer.render(Document(markdown))
|
||||
|
||||
|
||||
def render_slide(markdown):
|
||||
"""Render markdown with the slide renderer through the project's Document."""
|
||||
with FiftyOhmHtmlSlideRenderer() as renderer:
|
||||
return renderer.render(Document(markdown))
|
||||
|
||||
Reference in New Issue
Block a user