import pytest from fietsboek import pdf @pytest.mark.parametrize("value, expected", [ ('', '""'), ('a', '"\\u{61}"'), ('FOO', '"\\u{46}\\u{4f}\\u{4f}"'), ('äß', '"\\u{e4}\\u{df}"'), ('"', '"\\u{22}"'), ("'", '"\\u{27}"'), ]) def test_typst_string(value, expected): assert pdf.typst_string(value) == expected @pytest.mark.parametrize("value, expected", [ ("foo", "foo"), ("*foo*", "\\*foo\\*"), ("#strong[foo]", "\\#strong\\[foo\\]"), ("= foo", "\\= foo"), ("par 1\n\npar 2", "par 1\n\npar 2"), ]) def test_typst_escape(value, expected): assert pdf.typst_escape(value) == expected @pytest.mark.parametrize("md_source, typst_source", [ ("*foo*", "#emph[foo]\n\n"), ("**foo**", "#strong[foo]\n\n"), ("***foo***", "#strong[#emph[foo]]\n\n"), ("[Teksd](https://link)", '#link("\\u{68}\\u{74}\\u{74}\\u{70}\\u{73}\\u{3a}' '\\u{2f}\\u{2f}\\u{6c}\\u{69}\\u{6e}\\u{6b}")[Teksd]\n\n'), ("""\ # Uperschrift Teksd""", """\ #heading(level: 1)[Uperschrift] Teksd\n\n"""), ("""\ * Eitem 1 * Eitem 2""", """\ #list( [Eitem 1], [Eitem 2], )"""), ("""\ 1. Eitem 1 1. Eitem 2""", """\ #enum( [Eitem 1], [Eitem 2], )"""), ]) def test_md_to_typst(md_source, typst_source): assert pdf.md_to_typst(md_source) == typst_source