#! /usr/bin/env python3 # $Id: test_code_none.py 9425 2023-06-30 14:56:47Z milde $ # Author: Guenter Milde # Copyright: This module has been placed in the public domain. """ Test the 'code' directive in body.py with syntax_highlight = 'none'. """ from pathlib import Path import sys import unittest if __name__ == '__main__': # prepend the "docutils root" to the Python library path # so we import the local `docutils` package. sys.path.insert(0, str(Path(__file__).resolve().parents[4])) from docutils.frontend import get_default_settings from docutils.parsers.rst import Parser from docutils.utils import new_document class ParserTestCase(unittest.TestCase): def test_parser(self): parser = Parser() settings = get_default_settings(Parser) settings.warning_stream = '' settings.syntax_highlight = 'none' for name, cases in totest.items(): for casenum, (case_input, case_expected) in enumerate(cases): with self.subTest(id=f'totest[{name!r}][{casenum}]'): document = new_document('test data', settings.copy()) parser.parse(case_input, document) output = document.pformat() self.assertEqual(case_expected, output) totest = {} totest['code_parsing_none'] = [ ["""\ .. code:: This is a code block. """, """\ This is a code block. """], ["""\ .. code:: python :number-lines: 7 def my_function(): '''Test the lexer. ''' # and now for something completely different print(8/2) """, """\ 7 \n\ def my_function(): 8 \n\ \'\'\'Test the lexer. 9 \n\ \'\'\' 10 \n\ \n\ 11 \n\ # and now for something completely different 12 \n\ print(8/2) """], ["""\ .. code:: latex hello \\emph{world} % emphasize """, """\ hello \\emph{world} % emphasize """], ] if __name__ == '__main__': unittest.main()