# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
"""Test runner for ZMK."""

import os
import subprocess

from west.commands import WestCommand
from west import log  # use this for user output


class Test(WestCommand):
    def __init__(self):
        super().__init__(
            name="test",
            help="run ZMK testsuite",
            description="Run the ZMK testsuite.",
        )

    def do_add_parser(self, parser_adder):
        parser = parser_adder.add_parser(
            self.name,
            help=self.help,
            description=self.description,
        )

        parser.add_argument(
            "test_path",
            default="all",
            help='The path to the test. Defaults to "all".',
            nargs="?",
        )
        return parser

    def do_run(self, args, unknown_args):
        # the run-test script assumes the app directory is the current dir.
        os.chdir(f"{self.topdir}/app")
        completed_process = subprocess.run(
            [f"{self.topdir}/app/run-test.sh", args.test_path]
        )
        exit(completed_process.returncode)