test_markdown.py
99 lines
| 2.5 KiB
| text/x-python
|
PythonLexer
|
r11902 | |||
""" | ||||
Module with tests for Markdown | ||||
""" | ||||
#----------------------------------------------------------------------------- | ||||
# Copyright (c) 2013, the IPython Development Team. | ||||
# | ||||
# Distributed under the terms of the Modified BSD License. | ||||
# | ||||
# The full license is in the file COPYING.txt, distributed with this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
|
r11920 | from copy import copy | ||
|
r11902 | |||
from IPython.testing.decorators import onlyif_cmds_exist | ||||
|
r11917 | from IPython.utils.py3compat import string_types | ||
|
r11902 | |||
from ...tests.base import TestsBase | ||||
|
r11928 | from ..markdown import markdown2latex, markdown2html, markdown2rst | ||
|
r11902 | |||
#----------------------------------------------------------------------------- | ||||
# Class | ||||
#----------------------------------------------------------------------------- | ||||
class TestMarkdown(TestsBase): | ||||
tests = [ | ||||
'*test', | ||||
'**test', | ||||
'*test*', | ||||
'_test_', | ||||
'__test__', | ||||
'__*test*__', | ||||
'**test**', | ||||
'#test', | ||||
'##test', | ||||
'test\n----', | ||||
|
r11916 | 'test [link](https://google.com/)'] | ||
|
r11902 | |||
|
r11917 | tokens = [ | ||
'*test', | ||||
'**test', | ||||
'test', | ||||
'test', | ||||
'test', | ||||
'test', | ||||
'test', | ||||
'test', | ||||
'test', | ||||
'test', | ||||
('test', 'https://google.com/')] | ||||
|
r11902 | |||
@onlyif_cmds_exist('pandoc') | ||||
def test_markdown2latex(self): | ||||
""" | ||||
markdown2latex test | ||||
""" | ||||
for index, test in enumerate(self.tests): | ||||
|
r11919 | yield self._try_markdown, markdown2latex, test, self.tokens[index] | ||
|
r11902 | |||
@onlyif_cmds_exist('pandoc') | ||||
def test_markdown2html(self): | ||||
""" | ||||
markdown2html test | ||||
""" | ||||
for index, test in enumerate(self.tests): | ||||
|
r11919 | yield self._try_markdown, markdown2html, test, self.tokens[index] | ||
|
r11902 | |||
@onlyif_cmds_exist('pandoc') | ||||
def test_markdown2rst(self): | ||||
""" | ||||
markdown2rst test | ||||
""" | ||||
|
r11920 | |||
#Modify token array for rst, escape asterik | ||||
tokens = copy(self.tokens) | ||||
tokens[0] = r'\*test' | ||||
tokens[1] = r'\*\*test' | ||||
|
r11902 | for index, test in enumerate(self.tests): | ||
|
r11917 | yield self._try_markdown, markdown2rst, test, tokens[index] | ||
|
r11902 | |||
|
r11917 | def _try_markdown(self, method, test, tokens): | ||
results = method(test) | ||||
if isinstance(tokens, string_types): | ||||
assert tokens in results | ||||
else: | ||||
for token in tokens: | ||||
assert token in results | ||||