blob: c4131863349deb8019cc04d4a358bc37f0def9f8 [file] [log] [blame]
Martí Bolívarbd827052020-08-21 15:47:22 -07001#!/usr/bin/env python3
2
3# Copyright (c) 2020 Nordic Semiconductor ASA
4#
5# SPDX-License-Identifier: Apache-2.0
6
7# A convenience script provided for running tests on the runners
8# package. Runs mypy and pytest. Any extra arguments in sys.argv are
9# passed along to pytest.
10#
11# Using tox was considered, but rejected as overkill for now.
12#
13# We would have to configure tox to create the test virtualenv with
14# all of zephyr's scripts/requirements.txt, which seems like too much
15# effort for now. We just run in the same Python environment as the
16# user for developer testing and trust CI to set that environment up
17# properly for integration testing.
18#
19# If this file starts to reimplement too many features that are
20# already available in tox, we can revisit this decision.
21
22import os
23import shlex
24import subprocess
25import sys
26
27here = os.path.abspath(os.path.dirname(__file__))
28
29mypy = [sys.executable, '-m', 'mypy', f'--config-file={here}/mypy.ini',
30 '--package', 'runners']
31pytest = [sys.executable, '-m', 'pytest'] + sys.argv[1:]
32
33print(f'Running mypy from {here}:\n\t' +
34 ' '.join(shlex.quote(s) for s in mypy),
35 flush=True)
36subprocess.run(mypy, check=True, cwd=here)
37print(f'Running pytest from {here}:\n\t' +
38 ' '.join(shlex.quote(s) for s in pytest),
39 flush=True)
40subprocess.run(pytest, check=True, cwd=here)