project-config/jenkins/scripts/run-cover.sh
Clark Boylan 25541f1ec5 We want to run freese in venv not with tox target
Running the freeze command as posargs to tox targets is unreliable as
those commands may be interpreted as arguments to other commands rather
than as commands themselves. For example `tox -epy26 -- pbr freeze` is
likely pass 'pbr freeze' as test name filters to the py26 test runner.

Instead what we want is to run pbr/pip freeze directly out of the venv
in question.

Change-Id: Iefb8ae4e82dcd31306d03befdc9766f2c1291571
2014-12-23 10:44:10 -08:00

26 lines
753 B
Bash
Executable File

#!/bin/bash -xe
# Run coverage via tox. Also, run pbr freeze on the
# resulting environment at the end so that we have a record of exactly
# what packages we ended up testing.
export NOSE_COVER_HTML=1
venv=cover
# Workaround the combo of tox running setup.py outside of virtualenv
# and RHEL having an old distribute. The next line can be removed
# when either get fixed.
python setup.py --version
tox -e$venv
result=$?
[ -e .tox/$venv/bin/pbr ] && freezecmd=pbr || freezecmd=pip
echo "Begin $freezecmd freeze output from test virtualenv:"
echo "======================================================================"
.tox/${venv}/bin/${freezecmd} freeze
echo "======================================================================"
exit $result