shaker/tox.ini
Ilya Shakhat 9168689007 Resolve py27 and pep8 job failures
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
2020-04-05 15:49:53 +00:00

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