Cleanup trove's tox.ini and .gitignore

This commit cleans up a couple of issues with Trove's tox.ini.

1. something that was reported to me by Matthew Treinish who
observed that the tox jobs are oddly bundled together.

This is important because infra's reporting is unable to generate some
useful metrics and tracking of trove's jobs because of the way they
are tied together.

2. with the cleanup of docs, apidocs is no longer a directory and can
be cleaned up, similarly api-ref is a thing and should be handled in
.gitignore.

3. that py27 used to use testr, switched it to using ostestr. I've
retained it for coverage.

4. the sqlite db needs to be deleted between runs because we otherwise
fail (on a developer configuration) because some tests intentionally
appear to leave stuff around.

5. I've set all ostestr jobs to run with --serial because there are
clearly cases where multiple tests can attempt to setup the DB at the
same time and get into trouble. Till we can fix those (if we feel it
is worthwhile) it is more reliable to run ostestr in --serial mode. It
only takes 2.5 minutes. This includes the cover jobs which runs with
--no-parallel.

An infra change will follow that will enable testing jobs.

Change-Id: I0a971c6ef6c1a4669490f2aa0e67c795fe86e190
Closes-Bug: 1618098
Closes-Bug: 1618149
This commit is contained in:
Amrith Kumar 2016-08-29 11:27:51 -04:00
parent c376d32a14
commit 4512aec2d4
2 changed files with 28 additions and 24 deletions

6
.gitignore vendored
View File

@ -30,11 +30,7 @@ install-guide/build/
# Docs # Docs
.DS_Store .DS_Store
apidocs/.DS_Store api-ref/build/
apidocs/src/.DS_Store
apidocs/src/samples/.DS_Store
apidocs/includewars.xml
apidocs/src/bookinfo.xml
# Files created by releasenotes build # Files created by releasenotes build
releasenotes/build releasenotes/build

46
tox.ini
View File

@ -1,45 +1,54 @@
[tox] [tox]
envlist = py35,py34,py27,pep8,checkbuild,checklinks envlist = py{27,34,35},pep8,apiexamples,cover,api-ref,releasenotes,bandit,fakemodetests
minversion = 1.6 minversion = 1.6
skipsdist = True skipsdist = True
[testenv] [testenv]
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
usedevelop = True 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} 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 deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
commands = find ./trove -type f -name "*.pyc" -delete commands = find ./trove -type f -name "*.pyc" -delete
{envpython} run_tests.py rm -f .testrepository/times.dbm
python setup.py testr --slowest rm -f trove_test.sqlite
{envpython} generate_examples.py whitelist_externals = find
whitelist_externals = bash rm
find bash
[tox:jenkins] [tox:jenkins]
sitepackages = True sitepackages = True
[testenv:pep8] [testenv:pep8]
basepython = python2.7
commands = commands =
flake8 flake8
# Check that .po and .pot files are valid: # Check that .po and .pot files are valid:
bash -c "find trove -type f -regex '.*\.pot?' -print0 | \ bash -c "find trove -type f -regex '.*\.pot?' -print0 | \
xargs -0 -n 1 msgfmt --check-format -o /dev/null" xargs -0 -n 1 msgfmt --check-format -o /dev/null"
[testenv:py27]
commands = {[testenv]commands}
ostestr --slowest --serial
[py3base] [py3base]
commands = rm -f .testrepository/times.dbm commands = ostestr --slowest --blacklist_file=blacklist-py3.txt --serial
find ./trove -type f -name "*.pyc" -delete
ostestr --blacklist_file=blacklist-py3.txt --serial
whitelist_externals = rm
find
[testenv:py34] [testenv:py34]
commands = {[py3base]commands} commands = {[testenv]commands}
whitelist_externals = {[py3base]whitelist_externals} {[py3base]commands}
[testenv:py35] [testenv:py35]
commands = {[py3base]commands} commands = {[testenv]commands}
whitelist_externals = {[py3base]whitelist_externals} {[py3base]commands}
[testenv:apiexamples]
commands = {envpython} generate_examples.py
[testenv:fakemodetests]
commands = {envpython} run_tests.py
[testenv:debug] [testenv:debug]
commands = oslo_debug_helper {posargs} commands = oslo_debug_helper {posargs}
@ -47,14 +56,14 @@ commands = oslo_debug_helper {posargs}
[testenv:cover] [testenv:cover]
basepython = python2.7 basepython = python2.7
commands = commands =
{[testenv]commands}
coverage erase coverage erase
python setup.py testr --coverage python setup.py testr --coverage --no-parallel
coverage run -a run_tests.py coverage run -a run_tests.py
coverage html coverage html
coverage xml coverage xml
coverage report coverage report
[testenv:venv] [testenv:venv]
commands = {posargs} commands = {posargs}
@ -73,7 +82,6 @@ filename=*.py,trove-*
commands = commands =
rm -rf api-ref/build rm -rf api-ref/build
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
whitelist_externals = rm
[testenv:releasenotes] [testenv:releasenotes]
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html