forked from Python-Markdown/markdown
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_legacy.py
196 lines (136 loc) · 5.45 KB
/
test_legacy.py
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
"""
Python Markdown
A Python implementation of John Gruber's Markdown.
Documentation: https://python-markdown.github.io/
GitHub: https://github.com/Python-Markdown/markdown/
PyPI: https://pypi.org/project/Markdown/
Started by Manfred Stienstra (http://www.dwerg.net/).
Maintained for a few years by Yuri Takhteyev (http://www.freewisdom.org).
Currently maintained by Waylan Limberg (https://github.com/waylan),
Dmitry Shachnev (https://github.com/mitya57) and Isaac Muse (https://github.com/facelessuser).
Copyright 2007-2018 The Python Markdown Project (v. 1.7 and later)
Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
Copyright 2004 Manfred Stienstra (the original version)
License: BSD (see LICENSE.md for details).
"""
from markdown.test_tools import LegacyTestCase, Kwargs
import os
import warnings
# Warnings should cause tests to fail...
warnings.simplefilter('error')
# Except for the warnings that shouldn't
warnings.filterwarnings('default', category=PendingDeprecationWarning)
warnings.filterwarnings('default', category=DeprecationWarning, module='markdown')
parent_test_dir = os.path.abspath(os.path.dirname(__file__))
class TestBasic(LegacyTestCase):
location = os.path.join(parent_test_dir, 'basic')
class TestMisc(LegacyTestCase):
location = os.path.join(parent_test_dir, 'misc')
class TestPhp(LegacyTestCase):
"""
Notes on "excluded" tests:
Quotes in attributes: attributes get output in differant order
Inline HTML (Span): Backtick in raw HTML attribute TODO: fixme
Backslash escapes: Weird whitespace issue in output
Ins & del: Our behavior follows markdown.pl I think PHP is wrong here
Auto Links: TODO: fix raw HTML so is doesn't match <[email protected]> as a <hr>.
Empty List Item: We match markdown.pl here. Maybe someday we'll support this
Headers: TODO: fix headers to not require blank line before
Mixed OLs and ULs: We match markdown.pl here. I think PHP is wrong here
Emphasis: We have various minor differances in combined & incorrect em markup.
Maybe fix a few of them - but most aren't too important
Code block in a list item: We match markdown.pl - not sure how php gets that output??
PHP-Specific Bugs: Not sure what to make of the escaping stuff here.
Why is PHP not removing a blackslash?
"""
location = os.path.join(parent_test_dir, 'php')
normalize = True
input_ext = '.text'
output_ext = '.xhtml'
exclude = [
'Quotes_in_attributes',
'Inline_HTML_(Span)',
'Backslash_escapes',
'Ins_&_del',
'Auto_Links',
'Empty_List_Item',
'Headers',
'Mixed_OLs_and_ULs',
'Emphasis',
'Code_block_in_a_list_item',
'PHP_Specific_Bugs'
]
# class TestPhpExtra(LegacyTestCase):
# location = os.path.join(parent_test_dir, 'php/extra')
# normalize = True
# input_ext = '.text'
# output_ext = '.xhtml'
# default_kwargs = Kwargs(extensions=['extra'])
class TestPl2004(LegacyTestCase):
location = os.path.join(parent_test_dir, 'pl/Tests_2004')
normalize = True
input_ext = '.text'
exclude = ['Yuri_Footnotes', 'Yuri_Attributes']
class TestPl2007(LegacyTestCase):
"""
Notes on "excluded" tests:
Images: the attributes don't get ordered the same so we skip this
Code Blocks: some weird whitespace issue
Links, reference style: weird issue with nested brackets TODO: fixme
Backslash escapes: backticks in raw html attributes TODO: fixme
Code Spans: more backticks in raw html attributes TODO: fixme
"""
location = os.path.join(parent_test_dir, 'pl/Tests_2007')
normalize = True
input_ext = '.text'
exclude = [
'Images',
'Code_Blocks',
'Links,_reference_style',
'Backslash_escapes',
'Code_Spans'
]
class TestExtensions(LegacyTestCase):
location = os.path.join(parent_test_dir, 'extensions')
exclude = ['codehilite']
attr_list = Kwargs(extensions=['attr_list', 'def_list', 'smarty'])
codehilite = Kwargs(extensions=['codehilite'])
toc = Kwargs(extensions=['toc'])
toc_invalid = Kwargs(extensions=['toc'])
toc_out_of_order = Kwargs(extensions=['toc'])
toc_nested = Kwargs(
extensions=['toc'],
extension_configs={'toc': {'permalink': True}}
)
toc_nested2 = Kwargs(
extensions=['toc'],
extension_configs={'toc': {'permalink': "[link]"}}
)
toc_nested_list = Kwargs(extensions=['toc'])
wikilinks = Kwargs(extensions=['wikilinks'])
github_flavored = Kwargs(extensions=['fenced_code'])
sane_lists = Kwargs(extensions=['sane_lists'])
nl2br_w_attr_list = Kwargs(extensions=['nl2br', 'attr_list'])
admonition = Kwargs(extensions=['admonition'])
smarty = Kwargs(
extensions=['smarty'],
extension_configs={'smarty': {'smart_angled_quotes': True}}
)
class TestExtensionsExtra(LegacyTestCase):
location = os.path.join(parent_test_dir, 'extensions/extra')
default_kwargs = Kwargs(extensions=['extra'])
loose_def_list = Kwargs(extensions=['def_list'])
simple_def_lists = Kwargs(extensions=['def_list'])
abbr = Kwargs(extensions=['abbr'])
footnotes = Kwargs(extensions=['footnotes'])
tables = Kwargs(extensions=['tables'])
extra_config = Kwargs(
extensions=['extra'],
extension_configs={
'extra': {
'footnotes': {
'PLACE_MARKER': '~~~placemarker~~~'
}
}
}
)