FontSizeTest.test_codeblock_classes()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nop 1
1
from unittest import TestCase
2
from panflute import (
3
    Code,
4
    CodeBlock,
5
    Div,
6
    Doc,
7
    MetaList,
8
    MetaMap,
9
    MetaString,
10
    Para,
11
    RawBlock,
12
    RawInline,
13
    Span,
14
)
15
16
import pandoc_latex_fontsize
17
18
19
class FontSizeTest(TestCase):
20
    def metadata(self):
21
        return {
22
            "pandoc-latex-fontsize": MetaList(
23
                MetaMap(
24
                    size=MetaString("LARGE"),
25
                    classes=MetaList(MetaString("class1"), MetaString("class2")),
26
                )
27
            )
28
        }
29
30
    def opening(self, value, type):
31
        self.assertIsInstance(value, type)
32
        self.assertEqual(value.format, "tex")
33
        self.assertEqual(value.text, "{\\LARGE ")
34
35
    def closing(self, value, type):
36
        self.assertIsInstance(value, type)
37
        self.assertEqual(value.format, "tex")
38
        self.assertEqual(value.text, "}")
39
40
    def span(self, elem, doc, size):
41
        pandoc_latex_fontsize.main(doc)
42
        self.assertIsInstance(elem.content[0], RawInline)
43
        self.assertEqual(elem.content[0].format, "tex")
44
        self.assertEqual(elem.content[0].text, "\\" + size + " ")
45
46
    def test_span_classes(self):
47
        elem = Span(classes=["class1", "class2"])
48
        doc = Doc(Para(elem), metadata=self.metadata(), format="latex")
49
        self.span(elem, doc, doc.get_metadata()["pandoc-latex-fontsize"][0]["size"])
50
51
    def test_span_attributes(self):
52
        elem = Span(attributes={"latex-fontsize": "LARGE"})
53
        doc = Doc(Para(elem), format="latex")
54
        self.span(elem, doc, "LARGE")
55
56
    def div(self, elem, doc):
57
        pandoc_latex_fontsize.main(doc)
58
        self.opening(elem.content[0], RawBlock)
59
        self.closing(elem.content[1], RawBlock)
60
61
    def test_div_classes(self):
62
        elem = Div(classes=["class1", "class2"])
63
        doc = Doc(elem, metadata=self.metadata(), format="latex")
64
        self.div(elem, doc)
65
66
    def test_div_attributes(self):
67
        elem = Div(attributes={"latex-fontsize": "LARGE"})
68
        doc = Doc(elem, format="latex")
69
        self.div(elem, doc)
70
71
    def code(self, elem, doc):
72
        pandoc_latex_fontsize.main(doc)
73
        self.opening(doc.content[0].content[0], RawInline)
74
        self.closing(doc.content[0].content[2], RawInline)
75
76
    def test_code_classes(self):
77
        elem = Code("", classes=["class1", "class2"])
78
        doc = Doc(Para(elem), metadata=self.metadata(), format="latex")
79
        self.code(elem, doc)
80
81
    def test_code_attributes(self):
82
        elem = Code("", attributes={"latex-fontsize": "LARGE"})
83
        doc = Doc(Para(elem), format="latex")
84
        self.code(elem, doc)
85
86
    def codeblock(self, elem, doc):
87
        pandoc_latex_fontsize.main(doc)
88
        self.opening(doc.content[0], RawBlock)
89
        self.closing(doc.content[2], RawBlock)
90
91
    def test_codeblock_classes(self):
92
        elem = CodeBlock("", classes=["class1", "class2"])
93
        doc = Doc(elem, metadata=self.metadata(), format="latex")
94
        self.codeblock(elem, doc)
95
96
    def test_codeblock_attributes(self):
97
        elem = CodeBlock("", attributes={"latex-fontsize": "LARGE"})
98
        doc = Doc(elem, format="latex")
99
        self.codeblock(elem, doc)
100
101
    def test_bad_size(self):
102
        metadata = {
103
            "pandoc-latex-fontsize": MetaList(
104
                MetaMap(
105
                    size=MetaString("BADSIZE"),
106
                    classes=MetaList(MetaString("class1"), MetaString("class2")),
107
                )
108
            )
109
        }
110
        elem = Span(classes=["class1", "class2"])
111
        doc = Doc(Para(elem), metadata=metadata, format="latex")
112
        pandoc_latex_fontsize.main(doc)
113
        self.assertIsInstance(elem.content[0], RawInline)
114
        self.assertEqual(elem.content[0].format, "tex")
115
        self.assertEqual(elem.content[0].text, "\\normalsize ")
116
117
    def test_missing_size(self):
118
        metadata = {
119
            "pandoc-latex-fontsize": MetaList(
120
                MetaMap(classes=MetaList(MetaString("class1"), MetaString("class2")))
121
            )
122
        }
123
        elem = Span(classes=["class1", "class2"])
124
        doc = Doc(Para(elem), metadata=metadata, format="latex")
125
        self.span(elem, doc, "normalsize")
126