trove/tox.ini
Peter Stachowski dda9aa730b Remove times.dbm file for each tox run
If you run the py27 tox tests then attempt to run the py34 tests,
the following error will occur:

    py34 runtests: commands[0] | ostestr
    --blacklist_file=blacklist-py3.txt
    db type could not be determined
    running=${PYTHON:-python} -m subunit.run discover
    ./trove/tests/unittests --list
    The test run didn't actually run any tests

This happens because the apparently the times.dbm file generated
by py27 is not compatible with py34. The converse is not true though -
if you run py34 first, py27 will work.

The work-around is to delete the file, which is what is now done
before running every tox test. Once the bug has been fixed, the
work-around can be removed.

This was originally noticed in python-troveclient, however it
also manifests in the Trove project.

coverage.xml was also added to the .gitignore file as it
was appearing in the git list of modified files.

Change-Id: I312b3879c764b7b803d35e0bb62f0f47291f6693
Closes-Bug: #1565928
2016-07-20 19:43:08 +00:00

108 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 = rm -f .testrepository/times.dbm
ostestr --blacklist_file=blacklist-py3.txt --serial
whitelist_externals = rm
[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