| from pathlib import Path |
| from shutil import which |
| |
| import pytest |
| |
| |
| @pytest.fixture |
| def spec_text(): |
| return Path(__file__).parent.joinpath("samples", "spec.md").read_text() |
| |
| |
| @pytest.mark.benchmark(group="packages") |
| def test_markdown_it_py(benchmark, spec_text): |
| import markdown_it |
| |
| parser = markdown_it.MarkdownIt("commonmark") |
| benchmark.extra_info["version"] = markdown_it.__version__ |
| benchmark(parser.render, spec_text) |
| |
| |
| @pytest.mark.benchmark(group="packages") |
| def test_markdown_it_pyrs(benchmark, spec_text): |
| import markdown_it_pyrs |
| |
| parser = markdown_it_pyrs.MarkdownIt("commonmark") |
| benchmark.extra_info["version"] = markdown_it_pyrs.__version__ |
| benchmark(parser.render, spec_text) |
| |
| |
| @pytest.mark.benchmark(group="packages") |
| def test_mistune(benchmark, spec_text): |
| import mistune |
| |
| benchmark.extra_info["version"] = mistune.__version__ |
| benchmark(mistune.markdown, spec_text) |
| |
| |
| @pytest.mark.benchmark(group="packages") |
| def test_commonmark_py(benchmark, spec_text): |
| import commonmark |
| |
| benchmark.extra_info["version"] = "0.9.1" |
| benchmark(commonmark.commonmark, spec_text) |
| |
| |
| @pytest.mark.benchmark(group="packages") |
| def test_pymarkdown(benchmark, spec_text): |
| import markdown |
| |
| benchmark.extra_info["version"] = markdown.__version__ |
| benchmark(markdown.markdown, spec_text) |
| |
| |
| @pytest.mark.benchmark(group="packages") |
| def test_pymarkdown_extra(benchmark, spec_text): |
| import markdown |
| |
| benchmark.extra_info["version"] = markdown.__version__ |
| benchmark(markdown.markdown, spec_text, extensions=["extra"]) |
| |
| |
| @pytest.mark.benchmark(group="packages") |
| def test_mistletoe(benchmark, spec_text): |
| import mistletoe |
| |
| benchmark.extra_info["version"] = mistletoe.__version__ |
| benchmark(mistletoe.markdown, spec_text) |
| |
| |
| @pytest.mark.skipif(which("pandoc") is None, reason="pandoc executable not found") |
| @pytest.mark.benchmark(group="packages") |
| def test_panflute(benchmark, spec_text): |
| import panflute |
| |
| benchmark.extra_info["version"] = panflute.__version__ |
| benchmark( |
| panflute.convert_text, spec_text, input_format="markdown", output_format="html" |
| ) |