Example #1
0
	def test_loading_extensions_by_module_name(self):
		markup = MarkdownMarkup(extensions=['markdown.extensions.footnotes'])
		source = ('Footnotes[^1] have a label and the content.\n\n'
		          '[^1]: This is a footnote content.')
		html = markup.get_document_body(source)
		self.assertIn('<sup', html)
		self.assertIn('footnote-backref', html)
Example #2
0
	def test_meta(self):
		markup = MarkdownMarkup()
		text = ('Required-Extensions: meta\n'
		        'Title: Hello, world!\n\n'
		        'Some text here.')
		title = markup.get_document_title(text)
		self.assertEqual('Hello, world!', title)
Example #3
0
	def test_mathjax(self):
		markup = MarkdownMarkup(extensions=['mathjax'])
		# Escaping should work
		self.assertEqual('', markup.get_javascript('Hello, \\$2+2$!'))
		js = markup.get_javascript(mathjax_source)
		self.assertIn('<script', js)
		body = markup.get_document_body(mathjax_source)
		self.assertEqual(mathjax_output, body)
Example #4
0
	def test_extensions_loading(self):
		markup = MarkdownMarkup()
		self.assertIsNone(markup._canonicalize_extension_name('nonexistent'))
		self.assertIsNone(markup._canonicalize_extension_name('nonexistent(someoption)'))
		self.assertIsNone(markup._canonicalize_extension_name('.foobar'))
		self.assertEqual(markup._canonicalize_extension_name('meta'), 'markdown.extensions.meta')
		self.assertEqual(markup._canonicalize_extension_name('meta(someoption)'),
			'markdown.extensions.meta(someoption)')
Example #5
0
	def test_mathjax_multilevel(self):
		markup = MarkdownMarkup()
		body = markup.get_document_body(mathjax_multilevel_source)
		self.assertEqual(mathjax_multilevel_output, body)
Example #6
0
	def test_mathjax_multiline(self):
		markup = MarkdownMarkup(extensions=['mathjax'])
		body = markup.get_document_body(mathjax_multiline_source)
		self.assertEqual(mathjax_multiline_output, body)
Example #7
0
	def test_mathjax_document_extension(self):
		markup = MarkdownMarkup()
		text = mathjax_header + mathjax_source
		body = markup.get_document_body(text)
		self.assertEqual(mathjax_header + mathjax_output, body)
Example #8
0
	def test_default_math(self):
		# by default $...$ delimeter should be disabled
		markup = MarkdownMarkup(extensions=[])
		self.assertEqual('<p>$1$</p>\n', markup.get_document_body('$1$'))
		self.assertEqual('<p>\n<script type="math/tex; mode=display">1</script>\n</p>\n',
			markup.get_document_body('$$1$$'))
Example #9
0
	def test_remove_extra_removes_mathjax(self):
		markup = MarkdownMarkup()
		html = markup.get_document_body('$$1$$')
		self.assertNotIn(html, 'math/tex')
Example #10
0
	def test_remove_extra_document_extension(self):
		markup = MarkdownMarkup(extensions=[])
		html = markup.get_document_body(
			'Required-Extensions: remove_extra\n\n' +
			tables_source)
		self.assertNotIn(html, '<table>')
Example #11
0
	def test_remove_extra(self):
		markup = MarkdownMarkup(extensions=['remove_extra'])
		html = markup.get_document_body(tables_source)
		self.assertNotIn(html, '<table>')
Example #12
0
	def test_extra(self):
		markup = MarkdownMarkup()
		html = markup.get_document_body(tables_source)
		self.assertEqual(tables_output, html)
		html = markup.get_document_body(deflists_source)
		self.assertEqual(deflists_output, html)
Example #13
0
	def test_document_extensions_parameters(self):
		markup = MarkdownMarkup(extensions=[])
		toc_header = '<!--- Required extensions: toc(anchorlink=1) --->\n\n'
		html = markup.get_document_body(toc_header + '## Header')
		self.assertEqual(html, toc_header +
			'<h2 id="header"><a class="toclink" href="#header">Header</a></h2>\n')
Example #14
0
	def test_extensions_parameters(self):
		markup = MarkdownMarkup(extensions=['toc(anchorlink=1)'])
		html = markup.get_document_body('## Header')
		self.assertEqual(html,
			'<h2 id="header"><a class="toclink" href="#header">Header</a></h2>\n')
Example #15
0
	def test_empty_file(self):
		markup = MarkdownMarkup()
		self.assertEqual(markup.get_document_body(''), '\n')
Example #16
0
  \end{pmatrix}
\end{equation*}
'''

mathjax_multilevel_output = \
r'''<p>
<script type="math/tex; mode=display">\begin{equation*}
  \begin{pmatrix}
    1 & 0\\
    0 & 1
  \end{pmatrix}
\end{equation*}</script>
</p>
'''

@unittest.skipUnless(MarkdownMarkup.available(), 'Markdown not available')
class MarkdownTest(unittest.TestCase):
	maxDiff = None

	def test_empty_file(self):
		markup = MarkdownMarkup()
		self.assertEqual(markup.get_document_body(''), '\n')

	def test_extensions_loading(self):
		markup = MarkdownMarkup()
		self.assertIsNone(markup._canonicalize_extension_name('nonexistent'))
		self.assertIsNone(markup._canonicalize_extension_name('nonexistent(someoption)'))
		self.assertIsNone(markup._canonicalize_extension_name('.foobar'))
		self.assertEqual(markup._canonicalize_extension_name('meta'), 'markdown.extensions.meta')
		self.assertEqual(markup._canonicalize_extension_name('meta(someoption)'),
			'markdown.extensions.meta(someoption)')