#!/usr/bin/env python3 # Copyright (c) 2020 Nordic Semiconductor ASA # # SPDX-License-Identifier: Apache-2.0 # A convenience script provided for running tests on the runners # package. Runs mypy and pytest. Any extra arguments in sys.argv are # passed along to pytest. # # Using tox was considered, but rejected as overkill for now. # # We would have to configure tox to create the test virtualenv with # all of zephyr's scripts/requirements.txt, which seems like too much # effort for now. We just run in the same Python environment as the # user for developer testing and trust CI to set that environment up # properly for integration testing. # # If this file starts to reimplement too many features that are # already available in tox, we can revisit this decision. import os import shlex import subprocess import sys here = os.path.abspath(os.path.dirname(__file__)) mypy = [sys.executable, '-m', 'mypy', f'--config-file={here}/mypy.ini', '--package', 'runners'] pytest = [sys.executable, '-m', 'pytest'] + sys.argv[1:] print(f'Running mypy from {here}:\n\t' + ' '.join(shlex.quote(s) for s in mypy), flush=True) subprocess.run(mypy, check=True, cwd=here) print(f'Running pytest from {here}:\n\t' + ' '.join(shlex.quote(s) for s in pytest), flush=True) subprocess.run(pytest, check=True, cwd=here)