Completed
Branch master (4a6da2)
by Christophe
28s
created

opening()   A

Complexity

Conditions 4

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
c 1
b 0
f 0
dl 0
loc 4
rs 9.2
1
# This Python file uses the following encoding: utf-8
2
3
from unittest import TestCase
4
from panflute import *
5
6
import pandoc_latex_color
7
8
def metadata():
9
    return {
10
        'pandoc-latex-color': MetaList(
11
            MetaMap(
12
                color=MetaString('red'),
13
                classes=MetaList(MetaString('class1'), MetaString('class2'))
14
            )
15
        )
16
    }
17
18
def opening(value, type):
19
    assert isinstance(value, type)
20
    assert value.format == 'tex'
21
    assert value.text == '{\\color{red} '
22
23
def closing(value, type):
24
    assert isinstance(value, type)
25
    assert value.format == 'tex'
26
    assert value.text == '}'
27
28
def span(elem, doc, color):
29
    pandoc_latex_color.main(doc)
30
    assert isinstance(elem.content[0], RawInline)
31
    assert elem.content[0].format == 'tex'
32
    assert elem.content[0].text == '\\color{' + color + '} '
33
34
def test_span_classes():
35
    elem = Span(classes=['class1', 'class2'])
36
    doc = Doc(Para(elem), metadata=metadata(), format='latex', api_version=(1, 17, 2))
37
    span(elem, doc, doc.get_metadata()['pandoc-latex-color'][0]['color'])
38
39
def test_span_attributes():
40
    elem = Span(attributes={'latex-color': 'red'})
41
    doc = Doc(Para(elem), format='latex', api_version=(1, 17, 2))
42
    span(elem, doc, 'red')
43
44
def div(elem, doc):
45
    pandoc_latex_color.main(doc)
46
    opening(elem.content[0], RawBlock)
47
    closing(elem.content[1], RawBlock)
48
49
def test_div_classes():
50
    elem = Div(classes=['class1', 'class2'])
51
    doc = Doc(elem, metadata=metadata(), format='latex', api_version=(1, 17, 2))
52
    div(elem, doc)
53
54
def test_div_attributes():
55
    elem = Div(attributes={'latex-color': 'red'})
56
    doc = Doc(elem, format='latex', api_version=(1, 17, 2))
57
    div(elem, doc)
58
59
def test_bad_color():
60
    metadata = {
61
        'pandoc-latex-color': MetaList(
62
            MetaMap(
63
                color=MetaString('badcolor'),
64
                classes=MetaList(MetaString('class1'), MetaString('class2'))
65
            )
66
        )
67
    }
68
    elem = Span(classes=['class1', 'class2'])
69
    doc = Doc(Para(elem), metadata=metadata, format='latex', api_version=(1, 17, 2))
70
    pandoc_latex_color.main(doc)
71
    assert isinstance(elem.content[0], RawInline)
72
    assert elem.content[0].format == 'tex'
73
    assert elem.content[0].text == '\\color{black} '
74
75
def test_missing_color():
76
    metadata = {
77
        'pandoc-latex-color': MetaList(
78
            MetaMap(
79
                classes=MetaList(MetaString('class1'), MetaString('class2'))
80
            )
81
        )
82
    }
83
    elem = Span(classes=['class1', 'class2'])
84
    doc = Doc(Para(elem), metadata=metadata, format='latex', api_version=(1, 17, 2))
85
    span(elem, doc, 'black')
86
87