blob: 084557a92a4192d7ba30599e565fba963c4cf902 [file] [edit]
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"
)