X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=runtests.sh;h=e25239612862b7bbcfb97b65a7dd47f68f5a2474;hb=a2010054a9f26b79576034815c5c56c2746c56b5;hp=1dfbf09391e35d5ff606d9da589d6067c3a0cf0b;hpb=5f72a4c3314a6e6c0d05d916f380557fdf744d57;p=mediagoblin.git diff --git a/runtests.sh b/runtests.sh index 1dfbf093..e2523961 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,56 @@ # 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 pytest e.g. with 'pip install pytest'. Exiting."; exit 1 fi -CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests $NOSETESTS $@ + +# 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 +ignore_next=0 +for i in "$@" +do + if [ "$ignore_next" = 1 ] + then + ignore_next=0 + continue + fi + case "$i" in + -n) ignore_next=1;; + -*) ;; + *) 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