trove/tox.ini
Peter Stachowski 798d9354f6 Serialize py34 tests
It turns out that the way the python34 tests are run in parallel is
to spin up several processes (not threads).  This means that putting
locks around creating the database in a single 'run' would need an
inter-process lock not a thread lock.

While the feasibility of this is investigated, change the behaviour
of the tests to run in series to increase stability.

On a 4 cpu test machine this only increased the run time by 70s.

Partially implements: blueprint trove-python3

Change-Id: I530fcf22b697148a3d0a286015c5a79481528d8e
2016-07-19 18:43:16 +00:00

107 lines
3.8 KiB
INI

[tox]
envlist = py34,py27,pep8,checkbuild,checklinks
minversion = 1.6
skipsdist = True
[testenv]
setenv = VIRTUAL_ENV={envdir}
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = find ./trove -type f -name "*.pyc" -delete
{envpython} run_tests.py
python setup.py testr --slowest
{envpython} generate_examples.py
whitelist_externals = bash
find
[tox:jenkins]
sitepackages = True
[testenv:pep8]
commands =
flake8
# Check that .po and .pot files are valid:
bash -c "find trove -type f -regex '.*\.pot?' -print0 | \
xargs -0 -n 1 msgfmt --check-format -o /dev/null"
[testenv:py34]
commands =
ostestr --blacklist_file=blacklist-py3.txt --serial
[testenv:debug]
commands = oslo_debug_helper {posargs}
[testenv:cover]
basepython = python2.7
commands =
coverage erase
python setup.py testr --coverage
coverage run -a run_tests.py
coverage html
coverage xml
coverage report
[testenv:venv]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the venv job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = {posargs}
[flake8]
show-source = True
# H301 is ignored on purpose.
# The rest of the ignores are TODOs.
ignore = F821,H237,H238,H301,H404,H405,H501
builtins = _
exclude=.venv,.tox,.git,dist,doc,openstack,*egg,tools,etc,build,*.po,*.pot
filename=*.py,trove-*
[testenv:checklinks]
commands = openstack-doc-test --check-links {posargs}
[testenv:checkbuild]
# NOTE(pmalik) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the publishdocs job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands =
openstack-doc-test --check-niceness --check-syntax --check-deletions {posargs}
openstack-doc-test --check-build {posargs}
[testenv:publishdocs]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the publishdocs job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = openstack-doc-test --check-build --publish --force
[testenv:releasenotes]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the release notes job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:bandit]
commands = bandit -r trove -n5 -x tests
[testenv:install-guide]
# NOTE(jaegerandi): this target does not use constraints because
# upstream infra does not yet support it. Once that's fixed, we can
# drop the install_command.
install_command = pip install -U --force-reinstall {opts} {packages}
commands = sphinx-build -a -E -W -d install-guide/build/doctrees -b html install-guide/source install-guide/build/html