Add pretty_tox wrapper script

This ports Nova/Neutron's'(and others) "pretty tox" script into tools/
and establishes it within tox.ini.   This causes a vanilla test run
to output the full package names of all tests, the index of the
subprocess it's being run within, as well as the total run time
and status of each test.  It also captures stdout/stderr and reports on that
as well; revealing that oslo.db's tests have a lot of deprecation
warnings in fact.

The display of this runner shows a lot more information than the
default testr/subunit thing which is somewhat useless, and for
those who are actually watching the test output, this is what
we'd most like to see.

Pretty Tox.  Pretty please, can we have?

Change-Id: I50d1c6e998425964dd9a5497c2bc1e9145be3120
This commit is contained in:
Mike Bayer 2015-01-06 15:49:19 -05:00
parent 98b434db7d
commit efbb3887e0
4 changed files with 15 additions and 1 deletions

View File

@ -17,3 +17,4 @@ oslotest>=1.2.0 # Apache-2.0
testrepository>=0.0.18
testscenarios>=0.4
testtools>=0.9.36,!=1.2.0
tempest-lib

View File

@ -16,6 +16,7 @@ oslotest>=1.2.0 # Apache-2.0
testrepository>=0.0.18
testscenarios>=0.4
testtools>=0.9.36,!=1.2.0
tempest-lib
# TODO(harlowja): add in pymysql when able to...
# https://review.openstack.org/#/c/123737

11
tools/pretty_tox.sh Executable file
View File

@ -0,0 +1,11 @@
#!/usr/bin/env bash
# return nonzero exit status of rightmost command, so that we
# get nonzero exit on test failure without halting subunit-trace
set -o pipefail
TESTRARGS=$1
python setup.py testr --slowest --testr-args="--subunit $TESTRARGS" | subunit-trace -f

View File

@ -9,12 +9,13 @@ envlist = py26,py27,py33,py34,pep8
# NOTE(dhellmann): We cannot set usedevelop=True
# for oslo libraries because of the namespace package.
#usedevelop = True
whitelist_externals = bash
install_command = pip install -U {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements-py2.txt
commands = python setup.py testr --slowest --testr-args='{posargs}'
commands = bash tools/pretty_tox.sh '{posargs}'
[testenv:sqla_09]
commands = pip install SQLAlchemy>=0.9.0,!=0.9.5,<1.0.0