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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
import unittest
from mistletoe import Document, ast_renderer
class TestAstRenderer(unittest.TestCase):
def test(self):
self.maxDiff = None
d = Document([
'# heading 1\n',
'\n',
'hello\n',
'world\n',
])
output = ast_renderer.get_ast(d)
expected = {'type': 'Document',
'footnotes': {},
'line_number': 1,
'children': [{
'type': 'Heading',
'level': 1,
'line_number': 1,
'children': [{
'type': 'RawText',
'content': 'heading 1'
}]
}, {
'type': 'Paragraph',
'line_number': 3,
'children': [{
'type': 'RawText',
'content': 'hello'
}, {
'type': 'LineBreak',
'soft': True,
'content': ''
}, {
'type': 'RawText',
'content': 'world'
}]
}]}
self.assertEqual(output, expected)
def test_footnotes(self):
self.maxDiff = None
d = Document([
'[bar][baz]\n',
'\n',
'[baz]: spam\n',
])
expected = {'type': 'Document',
'footnotes': {'baz': ('spam', '')},
'line_number': 1,
'children': [{
'type': 'Paragraph',
'line_number': 1,
'children': [{
'type': 'Link',
'target': 'spam',
'title': '',
'children': [{
'type': 'RawText',
'content': 'bar'
}]
}]
}]}
output = ast_renderer.get_ast(d)
self.assertEqual(output, expected)
def test_table(self):
self.maxDiff = None
d = Document([
"| A | B |\n",
"| --- | --- |\n",
"| 1 | 2 |\n",
])
expected = {
"type": "Document",
"footnotes": {},
'line_number': 1,
"children": [{
"type": "Table",
"column_align": [None, None],
'line_number': 1,
"header": {
"type": "TableRow",
"row_align": [None, None],
'line_number': 1,
"children": [{
"type": "TableCell",
"align": None,
'line_number': 1,
"children": [{
"type": "RawText",
"content": "A",
}]}, {
"type": "TableCell",
"align": None,
'line_number': 1,
"children": [{
"type": "RawText",
"content": "B",
}]
}],
},
"children": [{
"type": "TableRow",
"row_align": [None, None],
'line_number': 3,
"children": [{
"type": "TableCell",
"align": None,
'line_number': 3,
"children": [{
"type": "RawText",
"content": "1",
}]}, {
"type": "TableCell",
"align": None,
'line_number': 3,
"children": [{
"type": "RawText",
"content": "2",
}]
}],
}],
}],
}
output = ast_renderer.get_ast(d)
self.assertEqual(output, expected)
|