
The retargetable testing prototype previously relied on each test case defining the 'scenarios' attribute used to parametize testing with testscenarios. Anticipating the requirement to retrofit the imported tempest api test cases, this change moves scenario definition to a base class since scenarios are common across all api tests. This change also sets the retargetable test to skip when invoked against rest. Tempest uses class-level setup for auth and this needs to be broken out into fixtures before the retargetable testing will work again. Change-Id: I70eb21db9b983d45e9bcc7ea90e36f202d3e3e45
116 lines
3.7 KiB
INI
116 lines
3.7 KiB
INI
[tox]
|
||
envlist = py27,pep8
|
||
minversion = 1.8
|
||
skipsdist = True
|
||
|
||
[testenv]
|
||
# Note the hash seed is set to 0 until neutron can be tested with a
|
||
# random hash seed successfully.
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
PYTHONHASHSEED=0
|
||
usedevelop = True
|
||
install_command = pip install -U {opts} {packages}
|
||
deps = -r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/test-requirements.txt
|
||
whitelist_externals = sh
|
||
commands =
|
||
dsvm-functional: {toxinidir}/tools/deploy_rootwrap.sh {toxinidir} {envdir}/etc {envbindir}
|
||
sh tools/pretty_tox.sh '{posargs}'
|
||
# there is also secret magic in pretty_tox.sh which lets you run in a fail only
|
||
# mode. To do this define the TRACE_FAILONLY environmental variable.
|
||
|
||
[testenv:hashtest]
|
||
# This is the same as default environment, but with a random PYTHONHASHSEED.
|
||
# You can also specify a specific hashseed (for test repeatability) as follows:
|
||
# tox --hashseed 1235130571 -e hashtest
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
|
||
[testenv:api]
|
||
setenv = OS_TEST_PATH=./neutron/tests/api
|
||
TEMPEST_CONFIG_DIR={env:TEMPEST_CONFIG_DIR:/opt/stack/tempest/etc}
|
||
OS_TEST_API_WITH_REST=1
|
||
|
||
[testenv:functional]
|
||
setenv = OS_TEST_PATH=./neutron/tests/functional
|
||
OS_TEST_TIMEOUT=90
|
||
deps =
|
||
{[testenv]deps}
|
||
-r{toxinidir}/neutron/tests/functional/requirements.txt
|
||
|
||
[testenv:dsvm-functional]
|
||
setenv = OS_TEST_PATH=./neutron/tests/functional
|
||
OS_SUDO_TESTING=1
|
||
OS_ROOTWRAP_CMD=sudo {envbindir}/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf
|
||
OS_ROOTWRAP_DAEMON_CMD=sudo {envbindir}/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf
|
||
OS_FAIL_ON_MISSING_DEPS=1
|
||
OS_TEST_TIMEOUT=90
|
||
sitepackages=True
|
||
deps =
|
||
{[testenv:functional]deps}
|
||
|
||
[testenv:fullstack]
|
||
setenv = OS_TEST_PATH=./neutron/tests/fullstack
|
||
OS_TEST_TIMEOUT=90
|
||
deps =
|
||
{[testenv]deps}
|
||
-r{toxinidir}/neutron/tests/functional/requirements.txt
|
||
|
||
[testenv:dsvm-fullstack]
|
||
setenv = OS_TEST_PATH=./neutron/tests/fullstack
|
||
OS_SUDO_TESTING=1
|
||
OS_ROOTWRAP_CMD=sudo {envbindir}/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf
|
||
OS_ROOTWRAP_DAEMON_CMD=sudo {envbindir}/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf
|
||
OS_FAIL_ON_MISSING_DEPS=1
|
||
OS_TEST_TIMEOUT=90
|
||
sitepackages=True
|
||
deps =
|
||
{[testenv:functional]deps}
|
||
|
||
[tox:jenkins]
|
||
sitepackages = True
|
||
downloadcache = ~/cache/pip
|
||
|
||
[testenv:pep8]
|
||
deps =
|
||
{[testenv]deps}
|
||
pylint
|
||
commands=
|
||
# If it is easier to add a check via a shell script, consider adding it in this file
|
||
sh ./tools/misc-sanity-checks.sh
|
||
# Checks for coding and style guidelines
|
||
flake8
|
||
sh ./tools/coding-checks.sh --pylint '{posargs}'
|
||
neutron-db-manage check_migration
|
||
whitelist_externals = sh
|
||
|
||
[testenv:cover]
|
||
commands =
|
||
python setup.py testr --coverage --testr-args='{posargs}'
|
||
|
||
[testenv:venv]
|
||
commands = {posargs}
|
||
|
||
[testenv:docs]
|
||
commands = sphinx-build -W -b html doc/source doc/build
|
||
|
||
[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 ‘# ‘
|
||
# H305 imports not grouped correctly
|
||
# H404 multi line docstring should start with a summary
|
||
# H405 multi line docstring summary not separated with an empty line
|
||
ignore = E125,E126,E128,E129,E265,H305,H404,H405
|
||
show-source = true
|
||
builtins = _
|
||
# neutron/tests/tempest needs to be excluded so long as it continues
|
||
# to be copied directly from tempest, since tempest and neutron do not
|
||
# share a flake8 configuration.
|
||
exclude = ./.*,build,dist,neutron/openstack/common/*,neutron/tests/tempest
|
||
|
||
[hacking]
|
||
import_exceptions = neutron.i18n
|
||
local-check-factory = neutron.hacking.checks.factory
|