Files
chinook/chinook/pipeline/_test.py
T

41 lines
1.1 KiB
Python

from logging import getLogger
from logging import Logger
from ..models import Project
from ..models import Result
from .._config import Config
from ._commands import Command
from ._commands import ExecuteTest
from ._except import NoTestsFoundError
from ._execute import execute
from ._prepare import prepare
from ._prepare import prepare_dependencies
_logger = getLogger("chinook")
def test(
appcfg: Config,
project: Project,
logger: Logger = _logger
) -> list[Result]:
if len(project.tests) == 0:
raise NoTestsFoundError(project)
commands: list[Command] = []
for target in project.tests:
commands.extend(prepare_dependencies(appcfg, project, target, logger))
commands.extend(prepare(appcfg, project, target, logger))
results = execute(commands, "Building")
for result in results:
if not result.success:
return results
commands.clear()
for target in project.tests:
testfile = project.destination.bin(target.name)
commands.append(ExecuteTest(None, None, logger, testfile))
results.extend(execute(commands, "Testing"))
return results