Skip to content

Module manubot.process.tests.test_process_command

View Source
import pathlib

import subprocess

import pytest

from manubot.util import shlex_join

directory = pathlib.Path(__file__).parent.resolve()

# List of manuscripts for testing. All subdirectories of ./manuscripts

manuscripts = [

    path.name for path in directory.joinpath("manuscripts").iterdir() if path.is_dir()

]

@pytest.mark.integration

@pytest.mark.parametrize("manuscript", manuscripts)

def test_example_manuscript(manuscript):

    """

    Test command line execution of manubot to build an example manuscript.

    """

    manuscript_dir = directory.joinpath("manuscripts", manuscript)

    args = [

        "manubot",

        "process",

        "--log-level",

        "INFO",

        "--skip-citations",

        "--content-directory",

        str(manuscript_dir.joinpath("content")),

        "--output-directory",

        str(manuscript_dir.joinpath("output")),

    ]

    if manuscript == "variables":

        args.extend(

            [

                "--template-variables-path",

                str(manuscript_dir.joinpath("content/template-variables.json")),

            ]

        )

    process = subprocess.run(args, capture_output=True, encoding="utf-8")

    print(shlex_join(process.args))

    print(process.stderr)

    assert process.returncode == 0

Variables

directory
manuscripts

Functions

test_example_manuscript

def test_example_manuscript(
    manuscript
)

Test command line execution of manubot to build an example manuscript.

View Source
@pytest.mark.integration

@pytest.mark.parametrize("manuscript", manuscripts)

def test_example_manuscript(manuscript):

    """

    Test command line execution of manubot to build an example manuscript.

    """

    manuscript_dir = directory.joinpath("manuscripts", manuscript)

    args = [

        "manubot",

        "process",

        "--log-level",

        "INFO",

        "--skip-citations",

        "--content-directory",

        str(manuscript_dir.joinpath("content")),

        "--output-directory",

        str(manuscript_dir.joinpath("output")),

    ]

    if manuscript == "variables":

        args.extend(

            [

                "--template-variables-path",

                str(manuscript_dir.joinpath("content/template-variables.json")),

            ]

        )

    process = subprocess.run(args, capture_output=True, encoding="utf-8")

    print(shlex_join(process.args))

    print(process.stderr)

    assert process.returncode == 0