Avoid pollution and false positives with tox.ini

- added mising test-requirements.txt file
- updated testenv build to build in a tmp folder outside of src
- removing sitepackages in tox.ini to avoid test env pollution
- skip_missing_interpreters in tox.ini set to False to avoid false
positives by skipping missing interpreters.

Change-Id: I7985b07bb215ad43403a3e581197d5e139b603ac
This commit is contained in:
Camille Rodriguez 2019-08-27 09:58:41 -04:00
parent 2c449e6cee
commit c2b458ae14
2 changed files with 49 additions and 4 deletions

2
test-requirements.txt Normal file
View File

@ -0,0 +1,2 @@
flake8>=2.2.4,<=2.4.1
os-testr>=0.4.1

51
tox.ini
View File

@ -1,28 +1,71 @@
[tox]
skipsdist = True
envlist = pep8,build
toxworkdir = /tmp/tox
# NOTE(beisner): Avoid build/test env pollution by not enabling sitepackages.
sitepackages = False
# NOTE(beisner): Avoid false positives by not skipping missing interpreters.
skip_missing_interpreters = False
[testenv]
basepython = python2.7
basepython = python3
setenv = VIRTUAL_ENV={envdir}
PYTHONHASHSEED=0
TERM=linux
JUJU_REPOSITORY={toxinidir}/build
JUJU_REPOSITORY={envdir}/tmp/build
passenv = http_proxy https_proxy
install_command =
pip install {opts} {packages}
deps =
-r{toxinidir}/requirements.txt
whitelist_externals = /bin/true
whitelist_externals = /bin/true /bin/echo /bin/mkdir /bin/ln
[testenv:build]
# ``charm build`` refuses to output to a subdirectory to the source tree
# The gate check will look for and validate the built artifacts in the source
# tree.
# Build the artifats under /tmp and link back to source directory to alleviate.
commands =
charm-build --log-level DEBUG -o {toxinidir}/build .
/bin/echo 'WARNING: *build* target is for testing only.'
/bin/mkdir -p {envdir}/tmp
charm-build --log-level DEBUG -o {envdir}/tmp/build .
/bin/ln -s {envdir}/tmp/build/builds {envdir}/tmp/build/trusty
/bin/ln -s {envdir}/tmp/build {toxinidir}/build
[testenv:venv]
basepython = python3
commands = {posargs}
[testenv:py27]
basepython = python2.7
deps = -r{toxinidir}/test-requirements.txt
# TODO: Need to write unit tests then remove the following command.
commands = /bin/true
[testenv:py34]
basepython = python3.4
deps = -r{toxinidir}/test-requirements.txt
# TODO: Need to write unit tests then remove the following command.
commands = /bin/true
[testenv:py35]
basepython = python3.5
deps = -r{toxinidir}/test-requirements.txt
# TODO: Need to write unit tests then remove the following command.
commands = /bin/true
[testenv:py36]
basepython = python3.6
deps = -r{toxinidir}/test-requirements.txt
# TODO: Need to write unit tests then remove the following command.
commands = /bin/true
[testenv:py37]
basepython = python3.7
deps = -r{toxinidir}/test-requirements.txt
# TODO: Need to write unit tests then remove the following command.
commands = /bin/true
[testenv:pep8]
basepython = python3
commands = /bin/true