ironic-python-agent/tox.ini
Riccardo Pittau 96d46aa5bf Enforce running tox with correct python version based on env
Since removing support for Python 2, we changed the basepython
value to 3.
This means that all the tox tests run with the default python
version available in the system.
This is not quite correct when running on environment such as
py36, py37 or py38, since they imply running with different
Python versions based on the environment.
To enforce the correct version we need to add the option
ignore_basepython_conflict available since tox 3.1.0 [0].

[0] https://tox.readthedocs.io/en/latest/config.html#conf-ignore_basepython_conflict

Change-Id: I96758527bbba9d8ec298867390b25be493f57789
2019-12-23 09:57:40 +01:00

123 lines
3.6 KiB
INI

[tox]
minversion = 3.1.0
skipsdist = True
envlist = py3,functional,pep8
ignore_basepython_conflict=true
[testenv]
usedevelop = True
install_command = pip install -U {opts} {packages}
basepython = python3
setenv =
VIRTUAL_ENV={envdir}
PYTHONDONTWRITEBYTECODE = 1
OS_TEST_PATH=./ironic_python_agent/tests/unit
LANGUAGE=en_US
LC_ALL=en_US.utf-8
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = stestr run {posargs}
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
[testenv:functional]
usedevelop = True
# Define virtualenv directory, port to use for functional testing, and number
# of seconds to wait for the agent to come alive during functional testing.
setenv =
VIRTUAL_ENV={envdir}
PYTHONDONTWRITEBYTECODE = 1
OS_TEST_PATH=./ironic_python_agent/tests/functional
TEST_PORT=9999
IPA_WAIT_TRIES=100
commands = stestr run {posargs}
[testenv:pep8]
whitelist_externals = bash
commands =
flake8 {posargs:ironic_python_agent imagebuild}
# Run bashate during pep8 runs to ensure violations are caught by
# the check and gate queues.
{toxinidir}/tools/run_bashate.sh {toxinidir}
doc8 doc/source README.rst
[testenv:cover]
setenv = VIRTUAL_ENV={envdir}
PYTHON=coverage run --source ironic_python_agent --omit='*tests*' --parallel-mode
commands =
coverage erase
stestr run {posargs}
coverage combine
coverage report --omit='*tests*'
coverage html -d ./cover --omit='*tests*'
[testenv:venv]
setenv = PYTHONHASHSEED=0
commands = {posargs:}
[testenv:debug]
envdir = {toxworkdir}/venv
commands = oslo_debug_helper -t ironic_python_agent/tests/unit {posargs}
[testenv:docs]
setenv = PYTHONHASHSEED=0
sitepackages = False
commands =
python setup.py build_sphinx
[testenv:pdf-docs]
whitelist_externals = make
setenv = PYTHONHASHSEED=0
sitepackages = False
commands =
sphinx-build -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[testenv:releasenotes]
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[flake8]
# [E129] visually indented line with same indent as next logical line.
# [W503] Line break before binary operator.
ignore = E129,W503
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,imagebuild/tinyipa/tinyipafinal,imagebuild/tinyipa/tinyipabuild
import-order-style = pep8
application-import-names = ironic_python_agent
# [H106] Don't put vim configuration in source files.
# [H203] Use assertIs(Not)None to check for None.
# [H204] Use assert(Not)Equal to check for equality.
# [H205] Use assert(Greater|Less)(Equal) for comparison.
# [H210] Require 'autospec', 'spec', or 'spec_set' in mock.patch/mock.patch.object calls
# [H904] Delay string interpolations at logging calls.
enable-extensions=H106,H203,H204,H205,H210,H904
[hacking]
import_exceptions = ironic.openstack.common.gettextutils._,testtools.matchers
[testenv:checkconfig]
sitepackages = False
envdir = {toxworkdir}/venv
commands =
{toxinidir}/tools/config/check_uptodate.sh
[testenv:genconfig]
sitepackages = False
envdir = {toxworkdir}/venv
whitelist_externals = mkdir
commands =
mkdir -p etc/ironic_python_agent
oslo-config-generator --config-file=tools/config/ipa-config-generator.conf
[testenv:lower-constraints]
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
[testenv:bandit]
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r ironic_python_agent -x tests -n5 -ll -c tools/bandit.yml