Source code for snakescale.testing
from pathlib import Path
from typing import Optional
from snakemake.utils import available_cpu_count
from snakescale.utils import ProcessReturn, call_snakemake
TEST_ARGUMENTS_BASE = ''
TEST_ARGUMENTS_BASE += ' -F'
TEST_ARGUMENTS_BASE += ' --use-conda'
TEST_ARGUMENTS_BASE += ' --printshellcmds'
TEST_ARGUMENTS_BASE += f' --cores {available_cpu_count()}'
[docs]def run_tool_test(
tool: str, subtool: Optional[str] = None, version: str = 'latest'
) -> ProcessReturn:
"""Execute a tool and optional subtool test against a specific wrapper version."""
from snakescale import scale
wrapper_dir = Path(scale(tool, subtool, version, as_uri=False)) / 'test'
arguments = TEST_ARGUMENTS_BASE
arguments += f' --directory {wrapper_dir}'
arguments += f' --snakefile {wrapper_dir}/Snakefile'
process_return = call_snakemake(arguments)
return process_return