diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-29 04:23:02 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-29 04:23:02 +0000 |
commit | 943e3dc057eca53e68ddec51529bd6a1279ebd8e (patch) | |
tree | 61fb7bac619a56dfbcdcbdb7b0d4d6535fc36fe9 /tests/test_renderers/test_include_directive.py | |
parent | Initial commit. (diff) | |
download | myst-parser-upstream.tar.xz myst-parser-upstream.zip |
Adding upstream version 0.18.1.upstream/0.18.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/test_renderers/test_include_directive.py')
-rw-r--r-- | tests/test_renderers/test_include_directive.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/test_renderers/test_include_directive.py b/tests/test_renderers/test_include_directive.py new file mode 100644 index 0000000..f02b246 --- /dev/null +++ b/tests/test_renderers/test_include_directive.py @@ -0,0 +1,52 @@ +import os +from io import StringIO +from pathlib import Path + +import pytest +from docutils.core import publish_doctree + +from myst_parser.parsers.docutils_ import Parser + +FIXTURE_PATH = Path(__file__).parent.joinpath("fixtures") + + +@pytest.mark.param_file(FIXTURE_PATH / "mock_include.md") +def test_render(file_params, tmp_path, monkeypatch): + monkeypatch.chdir(tmp_path) + + tmp_path.joinpath("other.md").write_text("a\nb\nc") + tmp_path.joinpath("fmatter.md").write_text("---\na: 1\n---\nb") + + doctree = publish_doctree( + file_params.content, + parser=Parser(), + settings_overrides={"myst_highlight_code_blocks": False}, + ) + + doctree["source"] = "tmpdir/test.md" + output = doctree.pformat().replace(str(tmp_path) + os.sep, "tmpdir" + "/").rstrip() + + file_params.assert_expected(output, rstrip=True) + + +@pytest.mark.param_file(FIXTURE_PATH / "mock_include_errors.md") +def test_errors(file_params, tmp_path, monkeypatch): + if file_params.title.startswith("Non-existent path") and os.name == "nt": + pytest.skip("tmp_path not converted correctly on Windows") + + monkeypatch.chdir(tmp_path) + + tmp_path.joinpath("bad.md").write_text("{a}`b`") + + report_stream = StringIO() + publish_doctree( + file_params.content, + source_path=str(tmp_path / "test.md"), + parser=Parser(), + settings_overrides={"halt_level": 6, "warning_stream": report_stream}, + ) + + file_params.assert_expected( + report_stream.getvalue().replace(str(tmp_path) + os.sep, "tmpdir" + "/"), + rstrip=True, + ) |