X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=runtests.sh;h=cd53da2df9ad5a21f45045f24fb005037ee1058e;hb=04f295e20db4f8b170d2b0ec21eea850f7aa2bd5;hp=9b96b17cc6471b0d5bba7b3dfe3262fdfeaabbf0;hpb=0692c01e4c7b88ce94fe023607109fb978c36c2e;p=mediagoblin.git diff --git a/runtests.sh b/runtests.sh index 9b96b17c..cd53da2d 100755 --- a/runtests.sh +++ b/runtests.sh @@ -1,7 +1,7 @@ #!/bin/sh # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by @@ -16,15 +16,53 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -if [ -f ./bin/nosetests ]; then - echo "Using ./bin/nosetests"; - export NOSETESTS="./bin/nosetests"; -elif which nosetests > /dev/null; then - echo "Using nosetests from \$PATH"; - export NOSETESTS="nosetests"; +basedir="`dirname $0`" +# Directory to seaerch for: +subdir="mediagoblin/tests" +[ '!' -d "$basedir/$subdir" ] && basedir="." +if [ '!' -d "$basedir/$subdir" ] +then + echo "Could not find base directory" >&2 + exit 1 +fi + +if [ -x "$basedir/bin/py.test" ]; then + export PYTEST="$basedir/bin/py.test"; + echo "Using $PYTEST"; +elif which py.test > /dev/null; then + echo "Using py.test from \$PATH"; + export PYTEST="py.test"; else - echo "No nosetests found, exiting! X_X"; + echo "py.test not found. X_X"; + echo "Please install 'nose'. Exiting."; exit 1 fi -CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_tests $NOSETESTS $@ + +CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests +export CELERY_CONFIG_MODULE +echo "+ CELERY_CONFIG_MODULE=$CELERY_CONFIG_MODULE" + +# Look to see if the user has specified a specific directory/file to +# run tests out of. If not we'll need to pass along +# mediagoblin/tests/ later very specifically. Otherwise py.test +# will try to read all directories, and this turns into a mess! + +need_arg=1 +for i in "$@" +do + case "$i" in + -*) ;; + *) need_arg=0; break ;; + esac +done + +if [ "$need_arg" = 1 ] +then + testdir="$basedir/mediagoblin/tests" + set -x + exec "$PYTEST" "$@" "$testdir" --boxed +else + set -x + exec "$PYTEST" "$@" --boxed +fi