blob: dbf7eab09c263b018c25695a5a5cd62d13057c4a [file] [log] [blame]
import pytest
import os
from ruamel import yaml
from tests.testutils import cli
# Project directory
DATA_DIR = os.path.join(
os.path.dirname(os.path.realpath(__file__)),
"project",
)
@pytest.mark.datafiles(DATA_DIR)
@pytest.mark.parametrize("specify_path, build_manifest", [
(True, True), (True, False), (False, True)
])
def test_manifest_created(tmpdir, cli, datafiles, specify_path, build_manifest):
project = os.path.join(datafiles.dirname, datafiles.basename)
manifest_path = os.path.join(str(tmpdir), "build_manifest.yaml")
args = ['build', "base.bst"]
if specify_path:
args += ["--manifest-path", manifest_path]
if build_manifest:
args.append("--build-manifest")
result = cli.run(project=project, args=args)
result.assert_success()
with open(manifest_path) as f:
manifest = yaml.load(f, Loader=yaml.loader.RoundTripLoader)
assert len(manifest["Elements"]["base"]["Sources"]) == 1
@pytest.mark.datafiles(DATA_DIR)
@pytest.mark.parametrize("extension, valid", [
(".yaml", True),
(".yml", True),
(".bst", False),
(".ynl", False),
(".xml", False),
(".mnf", False),
(".txt", False),
(".abc", False),
(".json", False)
])
def test_manifest_extensions(tmpdir, cli, datafiles, extension, valid):
project = os.path.join(datafiles.dirname, datafiles.basename)
manifest_path = os.path.join(str(tmpdir), "build_manifest{}" + extension)
result = cli.run(project=project, args=['build', "base.bst", "--manifest-path", manifest_path])
if valid:
result.assert_success()
else:
assert result.exit_code == 2