Coverage for hdl_registers/generator/html/test/test_html_translator.py: 100%
46 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-12 11:11 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-12 11:11 +0000
1# --------------------------------------------------------------------------------------------------
2# Copyright (c) Lukas Vik. All rights reserved.
3#
4# This file is part of the hdl-registers project, an HDL register generator fast enough to run
5# in real time.
6# https://hdl-registers.com
7# https://github.com/hdl-registers/hdl-registers
8# --------------------------------------------------------------------------------------------------
10import pytest
12from hdl_registers.generator.html.html_translator import HtmlTranslator
15@pytest.fixture
16def html_translator():
17 return HtmlTranslator()
20def test_markdown_parser_can_handle_annotating_sentences(html_translator):
21 expected = "This sentence <strong>should have a large portion</strong> in bold face"
22 text = r"This sentence **should have a large portion** in bold face"
23 assert expected in html_translator.translate(text)
25 expected = "This sentence <em>should have a large portion</em> in italics"
26 text = "This sentence *should have a large portion* in italics"
27 assert expected in html_translator.translate(text)
30def test_markdown_parser_can_handle_escaped_asterisks(html_translator):
31 expected = "Part of this sentence **should be surrounded** by double asterisks"
32 text = r"Part of this sentence \*\*should be surrounded\*\* by double asterisks"
33 assert expected in html_translator.translate(text)
35 expected = "Part of this sentence *should be surrounded* by asterisks"
36 text = r"Part of this sentence \*should be surrounded\* by asterisks"
37 assert expected in html_translator.translate(text)
39 expected = "Part of this sentence <em>*should be in italics and surrounded*</em> by asterisks"
40 text = r"Part of this sentence *\*should be in italics and surrounded\** by asterisks"
41 assert expected in html_translator.translate(text)
43 expected = "Part of this sentence should have an <em>*</em> in italics"
44 text = r"Part of this sentence should have an *\** in italics"
45 assert expected in html_translator.translate(text)
48def test_line_breaks(html_translator):
49 expected = "Two empty lines</p>\n<p>between paragraphs."
50 text = "Two empty lines\n\nbetween paragraphs."
51 assert expected in html_translator.translate(text)
53 expected = "Three empty lines</p>\n<p>between paragraphs."
54 text = "Three empty lines\n\n\nbetween paragraphs."
55 assert expected in html_translator.translate(text)
57 expected = r"Escaped nnn should not result in paragraph break."
58 text = r"Escaped \n\n\n should not result in paragraph break."
59 assert expected in html_translator.translate(text)
61 expected = "<p>One empty line\nmeans same paragraph.</p>"
62 text = "One empty line\nmeans same paragraph."
63 assert expected in html_translator.translate(text)
66def test_literal_underscore_can_be_used(html_translator):
67 # We do not translate underscores, unlike some markdown
68 expected = "This sentence <strong>contains_underscores</strong> in some_places"
69 text = r"This sentence **contains_underscores** in some_places"
70 assert expected in html_translator.translate(text)
73def test_angle_brackets_should_be_translated_to_html(html_translator):
74 expected = "This string << contains > brackets ><"
75 text = "This string << contains > brackets ><"
76 assert expected in html_translator.translate(text)