#! /usr/bin/env python3 # $Id: test_bullet_lists.py 9425 2023-06-30 14:56:47Z milde $ # Author: David Goodger # Copyright: This module has been placed in the public domain. """ Tests for states.py. """ 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[3])) 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 = '' 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['bullet_lists'] = [ ["""\ - item """, """\ item """], ["""\ * item 1 * item 2 """, """\ item 1 item 2 """], ["""\ No blank line between: + item 1 + item 2 """, """\ No blank line between: item 1 item 2 """], ["""\ - item 1, para 1. item 1, para 2. - item 2 """, """\ item 1, para 1. item 1, para 2. item 2 """], ["""\ - item 1, line 1 item 1, line 2 - item 2 """, """\ item 1, line 1 item 1, line 2 item 2 """], ["""\ Different bullets: - item 1 + item 1 * item 1 - item 1 """, """\ Different bullets: item 1 item 1 item 1 Bullet list ends without a blank line; unexpected unindent. item 1 """], ["""\ - item no blank line """, """\ item Bullet list ends without a blank line; unexpected unindent. no blank line """], ["""\ - empty item above """, """\ empty item above """], ["""\ - empty item above, no blank line """, """\ Bullet list ends without a blank line; unexpected unindent. empty item above, no blank line """], ["""\ Unicode bullets: \u2022 BULLET \u2023 TRIANGULAR BULLET \u2043 HYPHEN BULLET """, """\ Unicode bullets: BULLET TRIANGULAR BULLET HYPHEN BULLET """], ] if __name__ == '__main__': unittest.main()