summaryrefslogtreecommitdiffstats
path: root/tests/test_renderers/test_include_directive.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_renderers/test_include_directive.py')
-rw-r--r--tests/test_renderers/test_include_directive.py52
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,
+ )