diff options
Diffstat (limited to 'runtests.sh')
-rwxr-xr-x | runtests.sh | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/runtests.sh b/runtests.sh new file mode 100755 index 00000000..00164a78 --- /dev/null +++ b/runtests.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +# GNU MediaGoblin -- federated, autonomous media hosting +# 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 +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +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 "py.test not found. X_X"; + echo "Please install 'nose'. Exiting."; + exit 1 +fi + + +# 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 |