blob: afa39ead52a185c37b5ba1b07b97799e1891e5c2 [file] [log] [blame]
from pathlib import Path
import pytest
from shutil import which
@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_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"
)