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