78d62186e5
When running unit-tests concurrently using testr, we might need to use interprocess file locks (e.g. for running various tests using the same DB in MySQL/PostgreSQL). At the same time file locks are only usable when they are placed to one dir, and we have a test fixture that overrides the lock_path config value for each test case with a new temporary directory. The solution is to create the one temprorary directory for locks to be used by all tests before running tests and then remove it after running tests. The corresponding helper has been already put to openstack.common.lockutils module, we just need to reuse it properly, i.e. change the way unit tests are run in tox.ini. Closes-Bug: #1261728 Change-Id: I76f95a9f7fdd31c15e6cf4fd6316c7569284f780
58 lines
1.6 KiB
INI
58 lines
1.6 KiB
INI
[tox]
|
|
minversion = 1.6
|
|
envlist = py26,py27,py33,pep8
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
sitepackages = True
|
|
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 =
|
|
python -m nova.openstack.common.lockutils python setup.py test --slowest --testr-args='{posargs}'
|
|
|
|
[tox:jenkins]
|
|
sitepackages = True
|
|
downloadcache = ~/cache/pip
|
|
|
|
[testenv:pep8]
|
|
sitepackages = False
|
|
commands =
|
|
flake8 {posargs}
|
|
{toxinidir}/tools/config/check_uptodate.sh
|
|
|
|
[testenv:pylint]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
commands = bash tools/lintstack.sh
|
|
|
|
[testenv:cover]
|
|
# Also do not run test_coverage_ext tests while gathering coverage as those
|
|
# tests conflict with coverage.
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
commands =
|
|
python setup.py testr --coverage \
|
|
--testr-args='^(?!.*test.*coverage).*$'
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[flake8]
|
|
# E712 is ignored on purpose, since it is normal to use 'column == true'
|
|
# in sqlalchemy.
|
|
# H803 skipped on purpose per list discussion.
|
|
# TODO Hacking 0.6 checks to fix
|
|
# H102 Apache 2.0 license header not found
|
|
|
|
# E125 is deliberately excluded. See https://github.com/jcrocholl/pep8/issues/126
|
|
ignore = E121,E122,E123,E124,E125,E126,E127,E128,E711,E712,H102,H404,F403,F811,F841,H803
|
|
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools
|
|
|
|
[hacking]
|
|
local-check-factory = nova.hacking.checks.factory
|
|
import_exceptions = nova.openstack.common.gettextutils._
|