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 TestOptions(LegacyTestCase):
location = os.path.join(parent_test_dir, 'options')
lazy_ol_off = Kwargs(lazy_ol=False)
html4 = Kwargs(output_format='html4')
no_attributes = Kwargs(enable_attributes=False)
no_smart_emphasis = Kwargs(smart_emphasis=False)
class TestSafeMode(LegacyTestCase):
location = os.path.join(parent_test_dir, 'safe_mode')
default_kwargs = Kwargs(safe_mode='escape')
remove = Kwargs(safe_mode='remove')
replace = Kwargs(safe_mode='replace')
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
as a
.
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']
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=[
'markdown.extensions.attr_list',
'markdown.extensions.def_list',
'markdown.extensions.smarty'
]
)
codehilite = Kwargs(extensions=['markdown.extensions.codehilite'])
toc = Kwargs(extensions=['markdown.extensions.toc'])
toc_invalid = Kwargs(extensions=['markdown.extensions.toc'])
toc_out_of_order = Kwargs(extensions=['markdown.extensions.toc'])
toc_nested = Kwargs(
extensions=['markdown.extensions.toc'],
extension_configs={'markdown.extensions.toc': {'permalink': True}}
)
toc_nested2 = Kwargs(
extensions=['markdown.extensions.toc'],
extension_configs={'markdown.extensions.toc': {'permalink': "[link]"}}
)
toc_nested_list = Kwargs(extensions=['markdown.extensions.toc'])
wikilinks = Kwargs(extensions=['markdown.extensions.wikilinks'])
fenced_code = Kwargs(extensions=['markdown.extensions.fenced_code'])
github_flavored = Kwargs(extensions=['markdown.extensions.fenced_code'])
sane_lists = Kwargs(extensions=['markdown.extensions.sane_lists'])
nl2br_w_attr_list = Kwargs(
extensions=[
'markdown.extensions.nl2br',
'markdown.extensions.attr_list'
]
)
admonition = Kwargs(extensions=['markdown.extensions.admonition'])
smarty = Kwargs(
extensions=['markdown.extensions.smarty'],
extension_configs={'markdown.extensions.smarty': {'smart_angled_quotes': True}}
)
class TestExtensionsExtra(LegacyTestCase):
location = os.path.join(parent_test_dir, 'extensions/extra')
default_kwargs = Kwargs(extensions=['markdown.extensions.extra'])
loose_def_list = Kwargs(extensions=['markdown.extensions.def_list'])
simple_def_lists = Kwargs(extensions=['markdown.extensions.def_list'])
abbr = Kwargs(extensions=['markdown.extensions.abbr'])
footnotes = Kwargs(extensions=['markdown.extensions.footnotes'])
tables = Kwargs(extensions=['markdown.extensions.tables'])
tables_and_attr_list = Kwargs(
extensions=['markdown.extensions.tables', 'markdown.extensions.attr_list']
)
extra_config = Kwargs(
extensions=['markdown.extensions.extra'],
extension_configs={
'markdown.extensions.extra': {
'markdown.extensions.footnotes': {
'PLACE_MARKER': '~~~placemarker~~~'
}
}
}
)