Make runtests.sh be useable from anywhere.

Now you can have your current directory anywhere and call
runtests.sh with full path and it'll find the way to
nosetests and the tests directory on its own.

Most useful if you're inside the mediagoblin/ dir and can
just call "../runtests.sh".
This commit is contained in:
Elrond 2013-01-11 20:55:35 +01:00
parent 7dec9f92f3
commit 8b271c28bd

View File

@ -16,9 +16,19 @@
# You should have received a copy of the GNU Affero General Public License # 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/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
if [ -f ./bin/nosetests ]; then basedir="`dirname $0`"
echo "Using ./bin/nosetests"; # Directory to seaerch for:
export NOSETESTS="./bin/nosetests"; 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/nosetests" ]; then
export NOSETESTS="$basedir/bin/nosetests";
echo "Using $NOSETESTS";
elif which nosetests > /dev/null; then elif which nosetests > /dev/null; then
echo "Using nosetests from \$PATH"; echo "Using nosetests from \$PATH";
export NOSETESTS="nosetests"; export NOSETESTS="nosetests";
@ -37,20 +47,16 @@ do
esac esac
done done
CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests
export CELERY_CONFIG_MODULE export CELERY_CONFIG_MODULE
echo "+ CELERY_CONFIG_MODULE=$CELERY_CONFIG_MODULE"
if [ "$need_arg" = 1 ] if [ "$need_arg" = 1 ]
then then
dir="`dirname $0`"/mediagoblin/tests testdir="$basedir/mediagoblin/tests"
[ '!' -d "$dir" ] && dir=./mediagoblin/tests set -x
if [ '!' -d "$dir" ] exec "$NOSETESTS" "$@" "$testdir"
then
echo "Cound not find tests dir"
exit 1
fi
$NOSETESTS "$@" "$dir"
else else
$NOSETESTS "$@" set -x
exec "$NOSETESTS" "$@"
fi fi