From 6cf9124ce20d8720cf093d6c447f1ef4f691e6c0 Mon Sep 17 00:00:00 2001 From: Till Maas Date: Wed, 27 Nov 2019 19:08:03 +0100 Subject: [PATCH] tox: Rename extra to custom --- .travis/config.sh | 9 ------- .travis/custom.sh | 28 ++++++++++++++++++++++ custom_requirements.txt | 4 ++++ tox.ini | 53 +++++++++++++---------------------------- 4 files changed, 48 insertions(+), 46 deletions(-) create mode 100755 .travis/custom.sh create mode 100644 custom_requirements.txt diff --git a/.travis/config.sh b/.travis/config.sh index 5394e86..b7aea8e 100644 --- a/.travis/config.sh +++ b/.travis/config.sh @@ -2,12 +2,3 @@ export LSR_MOLECULE_DEPS='-rmolecule_requirements.txt' LSR_EXTRA_PACKAGES='python3-selinux' - -case "${TRAVIS_PYTHON_VERSION}" in - 3.6|"") - # Set these also if we are running locally: - export LSR_TEXTRA_DEPS='PyYAML' - export LSR_TEXTRA_DIR='tests' - export LSR_TEXTRA_CMD='./ensure_non_running_provider.py' - ;; -esac diff --git a/.travis/custom.sh b/.travis/custom.sh new file mode 100755 index 0000000..115fc85 --- /dev/null +++ b/.travis/custom.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# SPDX-License-Identifier: MIT + +# This script is executed with two arguments passed to it: +# +# $1 - path to environment python (python used inside virtual environment +# created by tox) +# $2 - path to system python (python 3.x installed on the system) + +set -e + +ME=$(basename $0) +SCRIPTDIR=$(readlink -f $(dirname $0)) +TOPDIR=$(readlink -f ${SCRIPTDIR}/..) + +# Include library and config: +. ${SCRIPTDIR}/utils.sh +. ${SCRIPTDIR}/config.sh + +# Sanitize arguments (see https://github.com/tox-dev/tox/issues/1463): +ENVPYTHON=$(readlink -f $1) +SYSPYTHON=$(readlink -f $2) +shift 2 + +# Write your custom commands here that should be run when `tox -e custom`: +if [[ -z "${TRAVIS}" ]] || lsr_check_python_version ${ENVPYTHON} -eq '3.6'; then + (set -x; cd ${TOPDIR}/tests; ${ENVPYTHON} ./ensure_non_running_provider.py) +fi diff --git a/custom_requirements.txt b/custom_requirements.txt new file mode 100644 index 0000000..9f34ef0 --- /dev/null +++ b/custom_requirements.txt @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: MIT + +# Write requirements for running your custom commands in tox here: +PyYAML diff --git a/tox.ini b/tox.ini index 8b2b748..e99dc23 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ envlist = black, pylint, flake8, py{26,27,36,37,38}, - extra + custom skipsdist = true skip_missing_interpreters = true @@ -17,6 +17,7 @@ deps = py26: pytest [base] +system_python = /usr/bin/python3 passenv = * setenv = PYTHONPATH = {toxinidir}/library:{toxinidir}/module_utils @@ -24,6 +25,8 @@ setenv = changedir = {toxinidir}/tests covtarget = {toxinidir}/library --cov {toxinidir}/module_utils pytesttarget = . +whitelist_externals = + bash [testenv:py26] envdir = {toxworkdir}/env-{env:TRAVIS_PYTHON_VERSION:2.6} @@ -197,39 +200,15 @@ commands = {[testenv:molecule_syntax]commands} {[testenv:molecule_test]commands} -# Here we provide a way how a role can add its custom command to be run. Such -# extra command is run at the end of each testenv run and is driven by -# environment variables. Involved environment variables are: -# -# LSR_TEXTRA_DEPS -# - contains dependency needed by commands to run smoothly; if more than -# one dependency is needed, use external file together with '-r' option -# (see PEP 508) -# -# LSR_TEXTRA_DIR -# - directory to which to cd -# -# LSR_TEXTRA_CMD -# - custom command to be run -# -# Example: `network` system role need to run `./tests/ensure_non_running_provider.py` -# to check for the existence of `*_provider.yml` playbooks. The script -# is run in Python 3.6. -# -# To make this possible, we add to `.travis/config.sh` a snippet: -# -# export LSR_TEXTRA_DEPS='PyYAML' -# export LSR_TEXTRA_DIR='tests' -# export LSR_TEXTRA_CMD='./ensure_non_running_provider.py' -# -[testenv:extra] -envdir = {toxworkdir}/env-{env:TRAVIS_PYTHON_VERSION:extra} +[testenv:custom] +envdir = {toxworkdir}/env-{env:TRAVIS_PYTHON_VERSION:custom} deps = - {env:LSR_TEXTRA_DEPS:} + -rcustom_requirements.txt passenv = * -changedir = {toxinidir}/{env:LSR_TEXTRA_DIR:.} +whitelist_externals = + {[base]whitelist_externals} commands = - {env:LSR_TEXTRA_CMD:python --version} + bash {toxinidir}/.travis/custom.sh {envpython} {[base]system_python} [pytest] addopts = -rxs @@ -248,9 +227,9 @@ max-line-length = 88 [travis] python = - 2.6: py26,extra - 2.7: py27,flake8,pylint,extra - 3.5: coveralls,molecule,extra - 3.6: py36,black,extra - 3.7: py37,extra - 3.8: py38,extra + 2.6: py26,custom + 2.7: py27,flake8,pylint,custom + 3.5: coveralls,molecule,custom + 3.6: py36,black,custom + 3.7: py37,custom + 3.8: py38,custom