f941ca2c7c
This will, among other things, guarantee to us that if all tests are skipped, the targets will actually fail instead of silently succeeding. The only target that can't switch to ostestr is cover, but that's ok because it's effectively duplicated by other unit test jobs to guarantee that it runs some tests. Change-Id: I837c2d9d76f0d48a949106bf12bb91ab2c041fa3 Related-Bug: #1683249
99 lines
3.1 KiB
INI
99 lines
3.1 KiB
INI
[tox]
|
||
envlist = py35,py34,py27,pep8,pylint
|
||
minversion = 1.6
|
||
skipsdist = True
|
||
|
||
[testenv]
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
PYTHONWARNINGS=default::DeprecationWarning
|
||
usedevelop = True
|
||
install_command =
|
||
{toxinidir}/tools/tox_install.sh {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
||
deps = -r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/test-requirements.txt
|
||
whitelist_externals =
|
||
find
|
||
sh
|
||
commands =
|
||
find . -type f -name "*.py[c|o]" -delete
|
||
find . -type d -name "__pycache__" -delete
|
||
ostestr '{posargs}'
|
||
# there is also secret magic in ostestr which lets you run in a fail only
|
||
# mode. To do this define the TRACE_FAILONLY environmental variable.
|
||
|
||
[testenv:functional]
|
||
setenv = OS_TEST_PATH=./neutron_dynamic_routing/tests/functional
|
||
commands =
|
||
ostestr --slowest '{posargs}'
|
||
|
||
[testenv:api]
|
||
sitepackages=True
|
||
setenv =
|
||
OS_TEST_PATH=./neutron_dynamic_routing/tests/tempest/api/
|
||
OS_TESTR_CONCURRENCY=1
|
||
TEMPEST_CONFIG_DIR={env:TEMPEST_CONFIG_DIR:/opt/stack/tempest/etc}
|
||
commands =
|
||
ostestr --slowest '{posargs}'
|
||
|
||
[testenv:dsvm-functional]
|
||
setenv =
|
||
OS_TEST_PATH=./neutron_dynamic_routing/tests/functional
|
||
OS_SUDO_TESTING=1
|
||
OS_ROOTWRAP_CMD=sudo {envdir}/bin/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf
|
||
OS_ROOTWRAP_DAEMON_CMD=sudo {envdir}/bin/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf
|
||
OS_FAIL_ON_MISSING_DEPS=1
|
||
whitelist_externals =
|
||
sh
|
||
cp
|
||
sudo
|
||
commands =
|
||
ostestr '{posargs}'
|
||
|
||
[testenv:releasenotes]
|
||
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||
|
||
[testenv:pep8]
|
||
commands =
|
||
flake8
|
||
neutron-db-manage --subproject neutron-dynamic-routing --database-connection sqlite:// check_migration
|
||
{[testenv:genconfig]commands}
|
||
|
||
[testenv:cover]
|
||
commands =
|
||
python setup.py test --coverage --coverage-package-name=neutron_dynamic_routing --testr-args='{posargs}'
|
||
|
||
[testenv:venv]
|
||
commands = {posargs}
|
||
|
||
[testenv:docs]
|
||
commands = python setup.py build_sphinx
|
||
|
||
[flake8]
|
||
# E125 continuation line does not distinguish itself from next logical line
|
||
# E126 continuation line over-indented for hanging indent
|
||
# E128 continuation line under-indented for visual indent
|
||
# E129 visually indented line with same indent as next logical line
|
||
# E265 block comment should start with ‘# ‘
|
||
# H405 multi line docstring summary not separated with an empty line
|
||
# TODO(marun) H404 multi line docstring should start with a summary
|
||
# N530 direct neutron imports not allowed
|
||
# TODO(ihrachys) -- reenable N537 when new neutron-lib release is available
|
||
# N537 Log messages should not be translated
|
||
ignore = E125,E126,E128,E129,E265,H404,H405,N530,N537
|
||
show-source = true
|
||
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,.ropeproject,rally-scenarios
|
||
|
||
[testenv:pylint]
|
||
deps =
|
||
{[testenv]deps}
|
||
pylint
|
||
commands =
|
||
pylint --rcfile=.pylintrc --output-format=colorized {posargs:neutron_dynamic_routing}
|
||
|
||
[hacking]
|
||
import_exceptions = neutron_dynamic_routing._i18n
|
||
local-check-factory = neutron_lib.hacking.checks.factory
|
||
|
||
[testenv:genconfig]
|
||
commands = {toxinidir}/tools/generate_config_file_samples.sh
|