From 4f42a9706715c9c5add46632343f7108aabcd530 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 12 Jun 2019 17:42:43 -0400 Subject: run_tests: add a helper for invoking unittests This makes it very easy for people to run all our unittests with just `./run_tests`. There doesn't seem to be any other way currently to quickly invoke any of the tests. Change-Id: I1f9a3745fa397a1e797bd64065c2ba7f338de4a1 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/227613 Tested-by: David Pursehouse Reviewed-by: David Pursehouse --- run_tests | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 run_tests (limited to 'run_tests') diff --git a/run_tests b/run_tests new file mode 100755 index 00000000..f72b22c5 --- /dev/null +++ b/run_tests @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding:utf-8 -*- +# Copyright 2019 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Wrapper to run pytest with the right settings.""" + +from __future__ import print_function + +import errno +import os +import subprocess +import sys + + +def run_pytest(cmd, argv): + """Run the unittests via |cmd|.""" + try: + subprocess.check_call([cmd] + argv) + return 0 + except OSError as e: + if e.errno == errno.ENOENT: + print('%s: unable to run `%s`: %s' % (__file__, cmd, e), file=sys.stderr) + print('%s: Try installing pytest: sudo apt-get install python-pytest' % + (__file__,), file=sys.stderr) + return 1 + else: + raise + + +def main(argv): + """The main entry.""" + # Add the repo tree to PYTHONPATH as the tests expect to be able to import + # modules directly. + topdir = os.path.dirname(os.path.realpath(__file__)) + pythonpath = os.environ.get('PYTHONPATH', '') + os.environ['PYTHONPATH'] = '%s:%s' % (topdir, pythonpath) + + return run_pytest('pytest', argv) + + +if __name__ == '__main__': + sys.exit(main(sys.argv[1:])) -- cgit v1.2.3-54-g00ecf