trove/tox.ini
ZhongShengping b51f371d97 Update Python 3 test runtimes for Train
This goal is to implement the process set out in the 2018-10-24 Python
Update Process TC resolution[1], for the Train cycle to ensure unit
testing is in place for all of the Tested Runtimes for Train[2].
In practice, this generally means adding unit tests for Python 3.7 and dropping
unit tests for Python 3.5. Using the Zuul template for Train will ensure that
all projects that support Python3 will be tested against the agreed runtime
versions, and make it easier to update them in future.

[1]https://governance.openstack.org/tc/resolutions/20181024-python-update-process.html
[2]https://governance.openstack.org/tc/reference/runtimes/train.html

Change-Id: I018f79c6819ead9ffee777addb7ba6b369304962
Depends-On: https://review.opendev.org/#/c/641878/
2019-05-09 17:34:56 +08:00

137 lines
3.8 KiB
INI

[tox]
envlist = py27,py36,py37,pep8,apiexamples,cover,api-ref,releasenotes,bandit,fakemodetests,pylint
minversion = 2.0
skipsdist = True
[testenv]
setenv = VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning
OS_TEST_PATH=./trove/tests/unittests
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
usedevelop = True
install_command = pip install \
-c{env:TEST_UPPER_CONSTRAINTS_FILE:{toxinidir}/test-upper-constraints.txt} \
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} \
-U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = find ./trove -type f -name "*.pyc" -delete
rm -f trove_test.sqlite
stestr run --serial {posargs}
stestr slowest
whitelist_externals = find
rm
bash
[tox:jenkins]
sitepackages = True
[testenv:pep8]
basepython = python3
commands =
flake8
doc8 {posargs}
[testenv:apiexamples]
basepython = python3
commands = {envpython} generate_examples.py
[testenv:fakemodetests]
basepython = python3
commands = {envpython} run_tests.py
[testenv:debug]
basepython = python3
commands = oslo_debug_helper {posargs}
[testenv:cover]
basepython = python3
setenv =
{[testenv]setenv}
PYTHON=coverage run --source trove
commands =
coverage erase
stestr run --serial {posargs}
coverage run -a run_tests.py
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report
[testenv:venv]
basepython = python3
commands = {posargs}
[doc8]
ignore-path = .venv,.tox,.git,dist,doc,*egg-info,tools,etc,build,*.po,*.pot,integration,releasenotes,*.txt,api-ref/source/samples
[flake8]
show-source = True
# H301 is ignored on purpose.
# The rest of the ignores are TODOs.
ignore = F821,H301,H404,H405,H501,E402,W503,E731
enable-extensions = H203,H106
builtins = _
# add *.yaml for playbooks/trove-devstack-base.yaml, as it will be matched by
# trove-* in the "filename" configuration.
exclude=.venv,.tox,.git,dist,doc,*egg,tools,etc,build,*.po,*.pot,integration,releasenotes,*.yaml
filename=*.py,trove-*,app.wsgi
[hacking]
import_exceptions = trove.common.i18n
local-check-factory = trove.hacking.checks.factory
[testenv:api-ref]
basepython = python3
# This environment is called from CI scripts to test and publish
# the API Ref to developer.openstack.org.
commands =
rm -rf api-ref/build
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
[testenv:releasenotes]
basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:bandit]
basepython = python3
commands = bandit -r trove -n5 -x tests
[testenv:bandit-baseline]
basepython = python3
envdir = {toxworkdir}/bandit
commands = bandit-baseline -r trove -n5 -x tests -ii -ll
[testenv:genpolicy]
basepython = python3
commands = oslopolicy-sample-generator --config-file=tools/trove-policy-generator.conf
[testenv:pylint]
basepython = python3
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = python tools/trove-pylint.py {posargs:check}
[testenv:docs]
basepython = python3
commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:lower-constraints]
basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
[testenv:trovestack]
basepython = python3
skip_install = True
changedir = {toxinidir}/integration/scripts
passenv = *
commands =
pip install --no-binary :all: {toxinidir} \
-c/opt/stack/trove/test-upper-constraints.txt \
-chttps://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt
./trovestack {posargs}