aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/test_pdf.py
blob: aafa717e97fd4739d401b467ae108c271d9ef5e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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