| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/usr/bin/env python3
- # 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."""
- import errno
- import os
- import shutil
- import subprocess
- import sys
- def find_pytest():
- """Try to locate a good version of pytest."""
- # Use the Python 3 version if available.
- ret = shutil.which('pytest-3')
- if ret:
- return ret
- # Hopefully this is a Python 3 version.
- ret = shutil.which('pytest')
- if ret:
- return ret
- print(f'{__file__}: unable to find pytest.', file=sys.stderr)
- print(f'{__file__}: Try installing: sudo apt-get install python-pytest',
- file=sys.stderr)
- def main(argv):
- """The main entry."""
- # Add the repo tree to PYTHONPATH as the tests expect to be able to import
- # modules directly.
- pythonpath = os.path.dirname(os.path.realpath(__file__))
- oldpythonpath = os.environ.get('PYTHONPATH', None)
- if oldpythonpath is not None:
- pythonpath += os.pathsep + oldpythonpath
- os.environ['PYTHONPATH'] = pythonpath
- pytest = find_pytest()
- return subprocess.run([pytest] + argv, check=True)
- if __name__ == '__main__':
- sys.exit(main(sys.argv[1:]))
|