quizcomp.parser.commonmark_parsertest
1import os 2import typing 3 4import edq.util.json 5 6import quizcomp.model.constants 7import quizcomp.parser.document 8import quizcomp.testing.base 9 10THIS_DIR: str = os.path.abspath(os.path.dirname(os.path.realpath(__file__))) 11TESTDATA_DIR: str = os.path.join(THIS_DIR, 'testdata') 12COMMONMARK_TEST_DATA_PATH: str = os.path.join(TESTDATA_DIR, 'commonmark_test_cases.json.gz') 13 14SKIP_COMMONMARK_TESTS: typing.Set[int] = { 15 176, # Has non-JSON HTML style. 16} 17 18class TestCommonMark(quizcomp.testing.base.BaseTest): 19 """ 20 Test cases provided by CommonMark. 21 """ 22 23def _add_commonmark_tests() -> None: 24 """ 25 Add test cases that come directly from the CommonMark spec. 26 We won't try to validate the output, we just want to make sure they parse and render cleanly. 27 The main thing with these tests is ensuring that our custom rendering does not fail. 28 """ 29 30 test_data = edq.util.json.load_path(COMMONMARK_TEST_DATA_PATH) 31 32 for test_case in test_data: 33 id = test_case['example'] 34 35 if (id in SKIP_COMMONMARK_TESTS): 36 continue 37 38 text = test_case['markdown'] 39 section = quizcomp.testing.base.clean_name_part(test_case['section']) 40 41 for format in quizcomp.model.constants.PARSER_FORMATS: 42 name = f"test_commonmark__{id:04d}__{section}__{format.value}" 43 setattr(TestCommonMark, name, _get_commonmark_test(text, format)) 44 45def _get_commonmark_test(text: str, format: quizcomp.model.constants.Format) -> typing.Callable: 46 """ Get a test method. """ 47 48 def __method(self: TestCommonMark) -> None: 49 parsed_text = quizcomp.parser.document.ParsedDocument.parse_text(text) 50 51 options = { 52 # The examples use paths that we would try and encode. 53 'force_raw_image_src': True, 54 } 55 parsed_text.to_format(format, **options) 56 57 return __method 58 59_add_commonmark_tests()
THIS_DIR: str =
'/home/runner/work/quiz-composer/quiz-composer/quizcomp/parser'
TESTDATA_DIR: str =
'/home/runner/work/quiz-composer/quiz-composer/quizcomp/parser/testdata'
COMMONMARK_TEST_DATA_PATH: str =
'/home/runner/work/quiz-composer/quiz-composer/quizcomp/parser/testdata/commonmark_test_cases.json.gz'
SKIP_COMMONMARK_TESTS: Set[int] =
{176}
19class TestCommonMark(quizcomp.testing.base.BaseTest): 20 """ 21 Test cases provided by CommonMark. 22 """
Test cases provided by CommonMark.
def
test_commonmark__0025__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0025__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0025__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0025__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0025__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0025__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0026__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0026__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0026__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0026__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0026__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0026__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0027__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0027__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0027__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0027__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0027__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0027__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0028__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0028__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0028__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0028__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0028__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0028__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0029__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0029__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0029__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0029__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0029__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0029__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0030__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0030__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0030__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0030__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0030__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0030__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0031__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0031__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0031__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0031__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0031__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0031__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0032__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0032__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0032__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0032__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0032__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0032__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0033__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0033__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0033__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0033__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0033__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0033__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0034__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0034__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0034__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0034__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0034__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0034__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0035__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0035__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0035__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0035__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0035__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0035__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0036__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0036__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0036__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0036__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0036__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0036__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0037__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0037__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0037__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0037__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0037__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0037__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0038__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0038__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0038__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0038__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0038__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0038__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0039__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0039__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0039__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0039__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0039__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0039__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0040__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0040__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0040__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0040__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0040__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0040__entity_and_numeric_character_references__text(self: TestCommonMark) -> None:
def
test_commonmark__0041__entity_and_numeric_character_references__canvas(self: TestCommonMark) -> None:
def
test_commonmark__0041__entity_and_numeric_character_references__html(self: TestCommonMark) -> None:
def
test_commonmark__0041__entity_and_numeric_character_references__json(self: TestCommonMark) -> None:
def
test_commonmark__0041__entity_and_numeric_character_references__md(self: TestCommonMark) -> None:
def
test_commonmark__0041__entity_and_numeric_character_references__tex(self: TestCommonMark) -> None:
def
test_commonmark__0041__entity_and_numeric_character_references__text(self: TestCommonMark) -> None: