
This patchset converts much of the previous logic in functional-tests.sh into Ansible playbooks to be executed by Zuul. This mainly includes all the Docker-related deployment logic. The functional-tests.sh script has been slimmed down to just work with uwsgi so that a standalone functional test deployment can be performed relatively easily, mainly by developers. Finally, py27 support for the gate has been dropped as the Dockerfile in this project currently assumes python3 for installing requirements and so forth, leading to requirements issues blocking the gate. Change-Id: I903a2845390061641d292fb0c016ba6a53723fc9
121 lines
3.5 KiB
INI
121 lines
3.5 KiB
INI
[tox]
|
||
envlist = py{35,27},py{35,27}-{postgresql},functional,cover,pep8,bandit,docs
|
||
|
||
[testenv]
|
||
usedevelop = True
|
||
whitelist_externals = bash
|
||
find
|
||
rm
|
||
flake8
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
OS_TEST_PATH=./deckhand/tests/unit
|
||
LANGUAGE=en_US
|
||
LC_ALL=en_US.utf-8
|
||
passenv = OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_TEST_TIMEOUT OS_TEST_LOCK_PATH OS_TEST_PATH http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY DECKHAND_IMAGE DECKHAND_TEST_URL DECKHAND_TEST_DIR
|
||
deps = -r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/test-requirements.txt
|
||
commands =
|
||
find . -type f -name "*.pyc" -delete
|
||
rm -Rf .testrepository/times.dbm
|
||
|
||
[testenv:py27]
|
||
commands =
|
||
{[testenv]commands}
|
||
stestr run {posargs}
|
||
stestr slowest
|
||
|
||
[testenv:py27-postgresql]
|
||
commands =
|
||
{[testenv]commands}
|
||
{toxinidir}/tools/run_pifpaf.sh '{posargs}'
|
||
|
||
[testenv:py35]
|
||
commands =
|
||
{[testenv]commands}
|
||
stestr run {posargs}
|
||
stestr slowest
|
||
|
||
[testenv:py35-postgresql]
|
||
commands =
|
||
{[testenv]commands}
|
||
{toxinidir}/tools/run_pifpaf.sh '{posargs}'
|
||
|
||
[testenv:functional]
|
||
basepython=python3.5
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
deps = -r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/test-requirements.txt
|
||
commands =
|
||
find . -type f -name "*.pyc" -delete
|
||
# TODO(felipemonteiro): Use OpenStack test runner.
|
||
py.test -svx {toxinidir}/deckhand/tests/common/test_gabbi.py -k '{posargs}'
|
||
|
||
[testenv:functional-dev]
|
||
basepython=python3.5
|
||
# Minimalistic functional test job for running Deckhand functional tests
|
||
# via uwsgi. Uses pifpaf for DB instantiation. Useful for developers.
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
deps = -r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/test-requirements.txt
|
||
commands =
|
||
find . -type f -name "*.pyc" -delete
|
||
{toxinidir}/tools/functional-tests.sh '{posargs}'
|
||
|
||
[testenv:cover]
|
||
setenv = {[testenv]setenv}
|
||
PYTHON=coverage run --source deckhand --parallel-mode
|
||
commands =
|
||
coverage erase
|
||
find . -type f -name "*.pyc" -delete
|
||
stestr run {posargs}
|
||
coverage combine
|
||
coverage html -d cover
|
||
coverage xml -o cover/coverage.xml
|
||
coverage report
|
||
|
||
[testenv:bandit]
|
||
whitelist_externals = bandit
|
||
commands =
|
||
bandit -r deckhand -x deckhand/tests -n 5
|
||
|
||
[testenv:genconfig]
|
||
commands = oslo-config-generator --config-file=etc/deckhand/config-generator.conf
|
||
|
||
[testenv:genpolicy]
|
||
commands = oslopolicy-sample-generator --config-file=etc/deckhand/policy-generator.conf
|
||
|
||
[testenv:pep8]
|
||
commands = flake8 {posargs}
|
||
|
||
[flake8]
|
||
# [H106] Don’t put vim configuration in source files.
|
||
# [H203] Use assertIs(Not)None to check for None.
|
||
# [H204] Use assert(Not)Equal to check for equality.
|
||
# [H205] Use assert(Greater|Less)(Equal) for comparison.
|
||
# [H210] Require ‘autospec’, ‘spec’, or ‘spec_set’ in mock.patch/mock.patch.object calls
|
||
# [H904] Delay string interpolations at logging calls.
|
||
enable-extensions = H106,H203,H204,H205,H210,H904
|
||
ignore = E127,E128,E129,E131,H405
|
||
exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build,releasenotes,docs,alembic/versions
|
||
|
||
[testenv:docs]
|
||
deps =
|
||
-r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/docs/requirements.txt
|
||
commands =
|
||
rm -rf docs/build
|
||
rm -rf releasenotes/build
|
||
sphinx-build -W -b html docs/source docs/build/html
|
||
whitelist_externals =
|
||
rm
|
||
|
||
[testenv:releasenotes]
|
||
deps =
|
||
-r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/docs/requirements.txt
|
||
commands =
|
||
rm -rf releasenotes/build
|
||
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||
whitelist_externals =
|
||
rm
|