Files
heat/tox.ini
Pavlo Shchelokovskyy dd50ac6352 Create integration tests requirements on the fly
The problem of integration tests was that they use their own
requirements.txt that is unable to auto-sync with global requirements.

This patch removes dedicated requirements.txt and replaces it with a
stub file listing names (and possibly versions) of the packages needed.
Then a special script parses this stub file, and for every package
that is present in main project requirements files it pulls the versions
from main project requirements, generating and installing requirements
for the integration tests on the fly.

This will help keeping requirements for the integration tests always in
sync with main project requirements.

Change-Id: Ie79338cc10cc101fbf15b51c7923e3a7b8e4fbb4
Closes-Bug: #1490866
2016-03-25 13:40:50 +00:00

79 lines
2.5 KiB
INI

[tox]
envlist = py34,py27,pep8
minversion = 1.6
skipsdist = True
[testenv]
setenv = VIRTUAL_ENV={envdir}
usedevelop = True
install_command = pip install {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
find {toxinidir} -not -path '{toxinidir}/.tox/*' -name '*.pyc' -delete
python setup.py testr --slowest --testr-args='^(?!heat_integrationtests){posargs}'
whitelist_externals =
bash
find
[testenv:py27log]
commands =
find . -type f -name "*.pyc" -delete
bash tools/pretty_tox.sh '^(?!heat_integrationtests){posargs}'
[testenv:integration]
setenv = VIRTUAL_ENV={envdir}
OS_TEST_PATH=./heat_integrationtests
TESTR_START_DIR=heat_integrationtests
passenv = OS_*
usedevelop = False
install_command = {toxinidir}/heat_integrationtests/install-requirements --stub {toxinidir}/heat_integrationtests/requirements.stub --source {toxinidir}/requirements.txt --source {toxinidir}/test-requirements.txt {packages} {opts}
deps = -t{toxinidir}/heat_integrationtests/requirements.txt
commands =
bash tools/pretty_tox.sh '{posargs}'
[testenv:pep8]
commands =
flake8 heat bin/heat-api bin/heat-api-cfn bin/heat-api-cloudwatch bin/heat-engine bin/heat-manage contrib heat_integrationtests doc/source
# Check that .po and .pot files are valid:
bash -c "find heat -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
python tools/custom_guidelines.py --exclude heat/engine/resources/aws
[testenv:venv]
commands = {posargs}
[testenv:cover]
commands =
python setup.py testr --coverage --testr-args='^(?!heat_integrationtests){posargs}'
[testenv:docs]
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
sphinxcontrib-httpdomain
commands = python setup.py build_sphinx
[testenv:genconfig]
commands =
oslo-config-generator --config-file=config-generator.conf
oslo-config-generator --config-file=heat_integrationtests/config-generator.conf
[testenv:bandit]
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -c bandit.yaml -r heat -n5 -p heat_conservative
[flake8]
show-source = true
exclude=.*,dist,*openstack/common*,*lib/python*,*egg,build,*convergence/scenarios/*
max-complexity=20
[hacking]
import_exceptions = heat.common.i18n
local-check-factory = heat.hacking.checks.factory
[testenv:debug]
commands = oslo_debug_helper {posargs}
[testenv:releasenotes]
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html