Completed
Push — master ( f43d3b...32f29f )
by Dongxin
01:09
created

render()   B

Complexity

Conditions 6

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 6
dl 0
loc 21
rs 7.8867
1
#!/usr/bin/env python
2
# encoding: utf-8
3
4
import os
5
import re
6
import mistune
7
root = os.path.dirname(__file__)
8
9
known = []
10
m = mistune.Markdown()
11
12
13
def render(folder, name):
14
    filepath = os.path.join(folder, name + '.text')
15
    with open(filepath) as f:
16
        content = f.read()
17
18
    html = m.parse(content)
19
20
    filepath = os.path.join(folder, name + '.html')
21
    with open(filepath) as f:
22
        result = f.read()
23
24
    html = re.sub(r'\s', '', html)
25
    result = re.sub(r'\s', '', result)
26
    for i, s in enumerate(html):
27
        if s != result[i]:
28
            begin = max(i - 30, 0)
29
            msg = '\n\n%s\n------Not Equal(%d)------\n%s' % (
30
                html[begin:i + 30], i, result[begin:i + 30]
31
            )
32
            raise ValueError(msg)
33
    assert html == result
34
35
36
def listdir(folder):
37
    folder = os.path.join(root, 'fixtures', folder)
38
    files = os.listdir(folder)
39
    files = filter(lambda o: o.endswith('.text'), files)
40
    names = map(lambda o: o[:-5], files)
41
    return folder, names
42
43
44
def test_extra():
45
    folder, names = listdir('extra')
46
    for key in names:
47
        yield render, folder, key
48
49
50
def test_normal():
51
    folder, names = listdir('normal')
52
    for key in names:
53
        yield render, folder, key
54