![Peter Stachowski](/assets/img/avatar_default.png)
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
107 lines
3.8 KiB
INI
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
|