
This patch introduces base integration test that verifies messaging loop between agent and server, command execution and report generation. Shaker in tested in standalone mode, without intergration with OpenStack. Change-Id: I8fdc63abdf0be0fc67c3b438bbfc1cf2f69c9f15
101 lines
3.0 KiB
INI
101 lines
3.0 KiB
INI
[tox]
|
||
envlist = py35,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-py35]
|
||
basepython = python3.5
|
||
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
|
||
# [H106] Don’t put vim configuration in source files
|
||
# [H203] Use assertIs(Not)None to check for None
|
||
ignore = E125,H405,E731
|
||
show-source = true
|
||
builtins = _
|
||
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,build
|
||
enable-extensions = H106,H203
|