diff options
| author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2020-12-01 11:38:25 +0000 |
|---|---|---|
| committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2020-12-01 11:38:25 +0000 |
| commit | 2ebef8482530af80645cab9e44404eb281d4e34a (patch) | |
| tree | 8f27c3f3bfadfc480618dd01f3c39f5d70d47516 /test/DocutilsTestSupport.py | |
| parent | 07f79b011dbf281b00b3f751df039935f8100e05 (diff) | |
| download | docutils-2ebef8482530af80645cab9e44404eb281d4e34a.tar.gz | |
Add support for Markdown.
Provide a wrapper for the 3rd party `recommonmark`__ Markdown parser
already in use in Sphinx.
Add test cases for CommonMark parsing.
Also: Correct copyright note and set executable bit on two tests.
Fix small typo in test content.
__ https://pypi.org/project/recommonmark/
git-svn-id: https://svn.code.sf.net/p/docutils/code/trunk/docutils@8585 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'test/DocutilsTestSupport.py')
| -rw-r--r-- | test/DocutilsTestSupport.py | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/test/DocutilsTestSupport.py b/test/DocutilsTestSupport.py index dd902bd37..3b00a7fd2 100644 --- a/test/DocutilsTestSupport.py +++ b/test/DocutilsTestSupport.py @@ -47,6 +47,7 @@ import unittest import re import inspect import traceback +import warnings from pprint import pformat testroot = os.path.abspath(os.path.dirname(__file__) or os.curdir) @@ -63,7 +64,7 @@ try: from docutils import frontend, nodes, statemachine, utils from docutils.utils import urischemes from docutils.transforms import universal - from docutils.parsers import rst + from docutils.parsers import rst, recommonmark_wrapper from docutils.parsers.rst import states, tableparser, roles, languages from docutils.readers import standalone, pep from docutils.statemachine import StringList, string2lines @@ -82,7 +83,6 @@ try: except: import pdb - if sys.version_info >= (3, 0): unicode = str # noqa @@ -518,6 +518,38 @@ class PEPParserTestSuite(ParserTestSuite): test_case_class = PEPParserTestCase +class RecommonmarkParserTestCase(ParserTestCase): + + """Recommonmark-specific parser test case.""" + + parser = recommonmark_wrapper.Parser() + """Parser shared by all RecommonmarkParserTestCases.""" + + option_parser = frontend.OptionParser( + components=(recommonmark_wrapper.Parser,)) + settings = option_parser.get_default_values() + settings.report_level = 5 + settings.halt_level = 5 + settings.debug = package_unittest.debug + +class RecommonmarkParserTestSuite(ParserTestSuite): + + """A collection of RecommonmarkParserTestCases.""" + + test_case_class = RecommonmarkParserTestCase + skip_message = 'skip "%s" (module `recommonmark` not found)' + + def generateTests(self, dict, dictname='totest'): + if 'recommonmark' not in recommonmark_wrapper.Parser.supported: + if RecommonmarkParserTestSuite.skip_message: # warn (only once) + print(self.skip_message%self.id) + RecommonmarkParserTestSuite.skip_message = '' + return + # suppress UserWarnings from recommonmark parser + warnings.filterwarnings('ignore', message='Unsupported.*type') + ParserTestSuite.generateTests(self, dict, dictname='totest') + + class GridTableParserTestCase(CustomTestCase): parser = tableparser.GridTableParser() @@ -756,7 +788,7 @@ class HtmlWriterPublishPartsTestCase(WriterPublishTestCase): class HtmlPublishPartsTestSuite(CustomTestSuite): testcase_class = HtmlWriterPublishPartsTestCase - + def generateTests(self, dict, dictname='totest'): for name, (settings_overrides, cases) in dict.items(): settings = self.suite_settings.copy() |
