Deprecate run_tests.sh
run_tests.sh does not run the unit tests or pep8 checks as Jenkins does, leading to commits that fail Jenkins tests. This patch replaces its functionality with instructions for installing and running tox. Change-Id: Ie6b13b59726ed0e7483eb91ff4095d79f058a360 Closes-Bug: #1326055
This commit is contained in:
parent
9aa8a127b9
commit
58ef20e185
151
run_tests.sh
151
run_tests.sh
|
@ -1,123 +1,44 @@
|
|||
#!/bin/bash
|
||||
|
||||
function usage {
|
||||
echo "Usage: $0 [OPTION]..."
|
||||
echo "Run Murano API's test suite(s)"
|
||||
echo ""
|
||||
echo " -V, --virtual-env Always use virtualenv. Install automatically if not present"
|
||||
echo " -N, --no-virtual-env Don't use virtualenv. Run tests in local environment"
|
||||
echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added."
|
||||
echo " -u, --update Update the virtual environment with any newer package versions"
|
||||
echo " --unittests-only Run unit tests only, exclude functional tests."
|
||||
echo " -p, --pep8 Just run pep8"
|
||||
echo " -P, --no-pep8 Don't run static code checks"
|
||||
echo " -h, --help Print this usage message"
|
||||
echo ""
|
||||
echo "Note: with no options specified, the script will try to run the tests in a virtual environment,"
|
||||
echo " If no virtualenv is found, the script will ask if you would like to create one. If you "
|
||||
echo " prefer to run tests NOT in a virtual environment, simply pass the -N option."
|
||||
exit
|
||||
}
|
||||
EXPECTED_TOX_VERSION="1.6.1"
|
||||
|
||||
function process_option {
|
||||
case "$1" in
|
||||
-h|--help) usage;;
|
||||
-V|--virtual-env) let always_venv=1; let never_venv=0;;
|
||||
-N|--no-virtual-env) let always_venv=0; let never_venv=1;;
|
||||
-p|--pep8) let just_pep8=1;;
|
||||
-P|--no-pep8) let no_pep8=1;;
|
||||
-f|--force) let force=1;;
|
||||
-u|--update) update=1;;
|
||||
--unittests-only) noseopts="$noseopts --exclude-dir=functionaltests";;
|
||||
-c|--coverage) noseopts="$noseopts --with-coverage --cover-package=murano";;
|
||||
-*) noseopts="$noseopts $1";;
|
||||
*) noseargs="$noseargs $1"
|
||||
esac
|
||||
}
|
||||
|
||||
venv=.venv
|
||||
with_venv=tools/with_venv.sh
|
||||
always_venv=0
|
||||
never_venv=0
|
||||
force=0
|
||||
noseopts=
|
||||
noseargs=
|
||||
wrapper=""
|
||||
just_pep8=0
|
||||
no_pep8=0
|
||||
update=0
|
||||
|
||||
export NOSE_WITH_OPENSTACK=1
|
||||
export NOSE_OPENSTACK_COLOR=1
|
||||
export NOSE_OPENSTACK_RED=0.05
|
||||
export NOSE_OPENSTACK_YELLOW=0.025
|
||||
export NOSE_OPENSTACK_SHOW_ELAPSED=1
|
||||
export NOSE_OPENSTACK_STDOUT=1
|
||||
|
||||
for arg in "$@"; do
|
||||
process_option $arg
|
||||
done
|
||||
|
||||
function run_tests {
|
||||
# Cleanup *pyc
|
||||
${wrapper} find . -type f -name "*.pyc" -delete
|
||||
# Just run the test suites in current environment
|
||||
${wrapper} rm -f tests.sqlite
|
||||
${wrapper} $NOSETESTS
|
||||
}
|
||||
|
||||
function run_pep8 {
|
||||
echo "Running pep8 ..."
|
||||
PEP8_EXCLUDE=".venv,.tox,dist,doc,openstack"
|
||||
PEP8_OPTIONS="--exclude=$PEP8_EXCLUDE --repeat"
|
||||
PEP8_IGNORE="--ignore=E125,E126,E711,E712"
|
||||
PEP8_INCLUDE=". bin/*"
|
||||
|
||||
${wrapper} pep8 $PEP8_OPTIONS $PEP8_INCLUDE $PEP8_IGNORE
|
||||
}
|
||||
|
||||
|
||||
NOSETESTS="nosetests $noseopts $noseargs"
|
||||
|
||||
if [ $never_venv -eq 0 ]
|
||||
then
|
||||
# Remove the virtual environment if --force used
|
||||
if [ $force -eq 1 ]; then
|
||||
echo "Cleaning virtualenv..."
|
||||
rm -rf ${venv}
|
||||
fi
|
||||
if [ $update -eq 1 ]; then
|
||||
echo "Updating virtualenv..."
|
||||
python tools/install_venv.py
|
||||
fi
|
||||
if [ -e ${venv} ]; then
|
||||
wrapper="${with_venv}"
|
||||
else
|
||||
if [ $always_venv -eq 1 ]; then
|
||||
# Automatically install the virtualenv
|
||||
python tools/install_venv.py
|
||||
wrapper="${with_venv}"
|
||||
else
|
||||
echo -e "No virtual environment found...create one? (Y/n) \c"
|
||||
read use_ve
|
||||
if [ "x$use_ve" = "xY" -o "x$use_ve" = "x" -o "x$use_ve" = "xy" ]; then
|
||||
# Install the virtualenv and run the test suite in it
|
||||
python tools/install_venv.py
|
||||
wrapper=${with_venv}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
tox_version=`tox --version 2>/dev/null`
|
||||
if [ $? -ne 0 ]; then
|
||||
tox_version="not installed"
|
||||
else
|
||||
tox_version=`echo $tox_version | cut -d' ' -f1`
|
||||
fi
|
||||
|
||||
if [ $just_pep8 -eq 1 ]; then
|
||||
run_pep8
|
||||
exit
|
||||
echo "run_tests.sh is deprecated in favor of running tox directly."
|
||||
echo "This will ensure your results are the same as Jenkins'."
|
||||
echo
|
||||
|
||||
if [ "$tox_version" == "not installed" ]; then
|
||||
echo "It looks like tox isn't installed. You can install (globally or"
|
||||
echo "into a virtualenv) with pip. Be sure to install version 1.6.1,"
|
||||
echo "since later versions have problems running some tests. To install:"
|
||||
echo
|
||||
echo " pip install \"tox==1.6.1\""
|
||||
echo
|
||||
elif [ "$tox_version" != "$EXPECTED_TOX_VERSION" ]; then
|
||||
echo "## WARNING ##"
|
||||
echo "You have tox version $tox_version installed. Consider installing"
|
||||
echo "version $EXPECTED_TOX_VERSION, since later versions may not run tests correctly."
|
||||
echo
|
||||
else
|
||||
echo "You have tox $tox_version installed."
|
||||
echo
|
||||
fi
|
||||
|
||||
run_tests || exit
|
||||
echo "To run unit tests or pep8 using tox:"
|
||||
echo
|
||||
echo " 'tox -e pep8' will run style checks"
|
||||
echo " 'tox -e py26' will run python 2.6 unit tests"
|
||||
echo " 'tox -e py27' will run python 2.7 unit tests"
|
||||
echo " 'tox' will run all unit tests and pep8 (as Jenkins does)"
|
||||
echo
|
||||
echo "Tox creates its own virtual environments."
|
||||
echo
|
||||
echo "To run functional tests, run ./functionaltests/run_tests.sh"
|
||||
|
||||
|
||||
if [ -z "$noseargs" ]; then
|
||||
if [ $no_pep8 -eq 0 ]; then
|
||||
run_pep8
|
||||
fi
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue