vmware-nsx/run_tests.sh
Brad Hall 2c59ecdc82 Merge from launchpad quantum/diablo branch:
merge salv's fix to remove keystone middleware: lp855151
  one more 202->200 from tyler
  merge tylers additional 202 -> 200 changes
  merge additions to OVS readme describing running with multiple hosts
  merge brad's changes to make create API calls return 200, not 202
  merge unit test for showing unset attachment
  merging API docs branch
  Merge: lp:~yinliu2/quantum/bug856564
  Merge: lp:~bgh/quantum/bug850261

Change-Id: I56fe24c59f918737e57b562343c33ec6dcceac60
2011-09-23 20:17:44 -07:00

93 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
function usage {
echo "Usage: $0 [OPTION]..."
echo "Run Quantum'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 " -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
}
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;;
-f|--force) let force=1;;
*) noseargs="$noseargs $1"
esac
}
venv=.quantum-venv
with_venv=tools/with_venv.sh
always_venv=0
never_venv=0
force=0
noseargs=
wrapper=""
for arg in "$@"; do
process_option $arg
done
function run_tests {
# Just run the test suites in current environment
${wrapper} rm -f ./$PLUGIN_DIR/tests.sqlite
${wrapper} $NOSETESTS
}
NOSETESTS="python ./$PLUGIN_DIR/run_tests.py $noseargs"
if [ -n "$PLUGIN_DIR" ]
then
if ! [ -f ./$PLUGIN_DIR/run_tests.py ]
then
echo "Could not find run_tests.py in plugin directory $PLUGIN_DIR"
exit 1
fi
fi
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 [ -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
fi
# FIXME(sirp): bzr version-info is not currently pep-8. This was fixed with
# lp701898 [1], however, until that version of bzr becomes standard, I'm just
# excluding the vcsversion.py file
#
# [1] https://bugs.launchpad.net/bzr/+bug/701898
#
PEP8_EXCLUDE=vcsversion.py
PEP8_OPTIONS="--exclude=$PEP8_EXCLUDE --repeat --show-source"
PEP8_INCLUDE="bin/* quantum tests tools run_tests.py"
run_tests && pep8 $PEP8_OPTIONS $PEP8_INCLUDE || exit 1