Source code for testing.options
"""Helpers for pytest options mirrored by environment variables."""
import os
MIRRORED_OPTIONS = {
"simulation_models_path": (
"SIMTOOLS_SIMULATION_MODELS_PATH",
"Read simulation models from files at this path.",
),
"simulation_models_git_path": (
"SIMTOOLS_SIMULATION_MODELS_GIT_PATH",
"Read simulation models from a local Git repository at this path.",
),
"simulation_models_git_revision": (
"SIMTOOLS_SIMULATION_MODELS_GIT_REVISION",
"Git revision used for the simulation-model reader.",
),
"simtools_tests_path": (
"SIMTOOLS_TESTS_PATH",
"Root of the versioned simtools-tests repository.",
),
}
[docs]
def add_mirrored_options(parser):
"""Add pytest options whose values can also come from environment variables."""
for option_name, (_, help_text) in MIRRORED_OPTIONS.items():
parser.addoption(
f"--{option_name}",
dest=option_name,
default=None,
help=help_text,
)
[docs]
def get_mirrored_option(config, option_name):
"""Return a command-line option, falling back to its environment variable."""
value = config.getoption(option_name, default=None)
if value is not None:
return value
return os.environ.get(MIRRORED_OPTIONS[option_name][0])