1#!/usr/bin/env python3 2 3from markdown import Markdown 4import unittest 5 6class MathTestCase(unittest.TestCase): 7 def verify(self, mkd_name, html_name, config=None): 8 config = config or dict() 9 md = Markdown(extensions=['mdx_math'], extension_configs={'mdx_math': config}) 10 with open('test_data/%s.mkd' % mkd_name) as mkd_file: 11 mkd = mkd_file.read() 12 with open('test_data/%s.html' % html_name) as html_file: 13 html = html_file.read() 14 self.assertEqual(html, md.convert(mkd) + '\n') 15 16 def r(mkd_name, html_name, **config): 17 return lambda self: self.verify(mkd_name, html_name, config=config) 18 19 test_inline_latex = r('inline_latex', 'inline') 20 test_inline_latex_escaped = r('inline_latex_escaped', 'inline_latex_escaped') 21 test_inline_latex_preview = r('inline_latex', 'inline_preview', add_preview=True) 22 test_inline_tex = r('inline_tex', 'inline', enable_dollar_delimiter=True) 23 test_inline_tex_disabled = r('inline_tex', 'inline_tex_disabled') 24 test_inline_tex_escaped = r('inline_tex_escaped', 'inline_tex_escaped', enable_dollar_delimiter=True) 25 test_inline_inside_code = r('inline_latex_inside_code', 'inline_latex_inside_code') 26 test_inline_inside_standalone = r('inline_inside_standalone', 'inline_inside_standalone') 27 test_inline_gitlab = r('inline_gitlab', 'inline', use_gitlab_delimiters=True) 28 test_standalone_latex = r('standalone_latex', 'standalone') 29 test_standalone_latex_escaped = r('standalone_latex_escaped', 'standalone_latex_escaped') 30 test_standalone_latex_preview = r('standalone_latex', 'standalone_preview', add_preview=True) 31 test_standalone_tex = r('standalone_tex', 'standalone') 32 test_standalone_gitlab = r('standalone_gitlab', 'standalone_gitlab', use_gitlab_delimiters=True) 33 test_standalone_gitlab_nested = r('standalone_gitlab_nested', 'standalone_gitlab_nested', use_gitlab_delimiters=True) 34 test_begin_end = r('beginend', 'beginend') 35 test_begin_end_preview = r('beginend', 'beginend_preview', add_preview=True) 36 test_inline_asciimath = r('inline_asciimath', 'inline_asciimath', use_asciimath=True) 37 38 39if __name__ == '__main__': 40 unittest.main(verbosity=2) 41