9168689007
1. Cap version of stestr for py27 (the latest version is py3 only). 2. Flake8 is runtime dependency of diskimage-builder, currently they use version >= 3.6.0, so Shaker must conform to this version too. Failures found by the newer version of flake8: * W605 invalid escape sequence -- issues are fixed since they correspond to syntax warnings from py36. * E305 expected 2 blank lines after class or function definition -- issues are fixed (older version didn't restrict spaces between functions and `if __name__ == "__main__":` block). * W504 line break after binary operator -- the rule is ignored since it contradicts the code style of the whole project. Change-Id: I7fa53cfb6b654f5d93df30441a6eb2d47714d479
100 lines
3.0 KiB
INI
100 lines
3.0 KiB
INI
[tox]
|
|
envlist = py36,py27,pep8,docs
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = pip install -U {opts} {packages}
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
LANG=en_US.UTF-8
|
|
LANGUAGE=en_US:en
|
|
LC_ALL=C
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands = stestr run {posargs}
|
|
|
|
[testenv:pep8]
|
|
commands = flake8
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:bashate]
|
|
deps = bashate
|
|
whitelist_externals = bash
|
|
commands = bash -c "find {toxinidir} -type f -not -wholename \*.tox/\* -and \( -name \*.sh -or -name \*rc -or -name functions\* -or \( -wholename lib/\* -and -not -name \*.md \) \) -print0 | xargs -0 bashate -v"
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
PYTHON=coverage run --source $project --parallel-mode
|
|
commands =
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
|
|
[testenv:integration]
|
|
setenv = {[testenv]setenv}
|
|
SHAKER_SERVER_ENDPOINT=localhost:5900
|
|
SHAKER_AGENT_ID=the-agent
|
|
SHAKER_POLLING_INTERVAL=2
|
|
SHAKER_AGENT_JOIN_TIMEOUT=30
|
|
deps = {[testenv]deps}
|
|
daemonize
|
|
os-testr
|
|
whitelist_externals = bash
|
|
commands =
|
|
shaker --debug --scenario test/spot --artifacts-dir {envlogdir}
|
|
python tools/run_agent_as_daemon.py --start --pid {envtmpdir}/shaker-agent.pid
|
|
shaker --debug --scenario test/static_agent --artifacts-dir {envlogdir}
|
|
python tools/run_agent_as_daemon.py --stop --pid {envtmpdir}/shaker-agent.pid
|
|
bash tools/process_subunit.sh {envlogdir}
|
|
|
|
[testenv:integration-py27]
|
|
basepython = python2.7
|
|
setenv = {[testenv:integration]setenv}
|
|
deps = {[testenv:integration]deps}
|
|
whitelist_externals = {[testenv:integration]whitelist_externals}
|
|
commands = {[testenv:integration]commands}
|
|
|
|
[testenv:integration-py36]
|
|
basepython = python3.6
|
|
setenv = {[testenv:integration]setenv}
|
|
deps = {[testenv:integration]deps}
|
|
whitelist_externals = {[testenv:integration]whitelist_externals}
|
|
commands = {[testenv:integration]commands}
|
|
|
|
[testenv:genconfig]
|
|
# When shaker is setup in develop mode it results in 2 packages: shaker and pyshaker
|
|
# The workaround is to setup it in production mode
|
|
usedevelop = False
|
|
commands =
|
|
python setup.py install
|
|
oslo-config-generator --config-file=config-generator.conf
|
|
python tools/cli_auto_doc.py doc/source/tools
|
|
python tools/build_scenario_catalog.py doc/source/catalog.rst
|
|
|
|
[testenv:docs]
|
|
commands = python setup.py build_sphinx
|
|
|
|
[testenv:svg2png]
|
|
deps =
|
|
cairosvg
|
|
lxml
|
|
tinycss
|
|
cssselect
|
|
whitelist_externals = bash
|
|
commands = bash tools/svg2png.sh
|
|
|
|
[flake8]
|
|
# E125 continuation line does not distinguish itself from next logical line
|
|
# H405 multi line docstring summary not separated with an empty line
|
|
# E731 do not assign a lambda expression, use a def
|
|
# W504 line break after binary operator
|
|
ignore = E125,H405,E731,W504
|
|
show-source = true
|
|
builtins = _
|
|
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,build
|
|
enable-extensions = H106,H203
|