123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #!/usr/bin/env bash
-
- #
- # ENVIRONMENT VARIABLES ARE:
- #
- # * TEST_DATABASE_ENGINE (values: postgresql, mysql, sqlite)
- # * CHECKOUT (values: a commit or branch name)
- # * PULL (values: 0 or 1)
- # * FETCH (values: 0 or 1)
- #
-
- # Default values
- FETCH=${FETCH:=1}
- PULL=${PULL:=1}
-
- # If PULL is set, change repository HEAD
- if [ "$FETCH" = 1 ]; then
- cd /tracim && git fetch origin
- fi
-
-
- # If PULL is set, change repository HEAD
- if [ "$PULL" = 1 ]; then
- cd /tracim && git pull origin master
- fi
-
- # If CHECKOUT is set, change repository HEAD
- if [ -n "$CHECKOUT" ]; then
- cd /tracim && git checkout ${CHECKOUT}
- echo "CHECKOUT set to $CHECKOUT"
- fi
-
- # Ensure TEST_DATABASE_ENGINE is set
- if ! [ -n "$TEST_DATABASE_ENGINE" ]; then
- echo "You must set TEST_DATABASE_ENGINE environment variable"
- exit 1
- fi
-
- # Ensure TEST_DATABASE_ENGINE value
- case "$TEST_DATABASE_ENGINE" in
- postgresql|mysql|sqlite) ;;
- *) echo "TEST_DATABASE_ENGINE environment variable must be one of these: \
- postgresql, mysql, sqlite" ; exit 1 ;;
- esac
-
- # Prepare config files
- cp /tracim/tracim/development.ini.base /tracim/tracim/development.ini
- cp /tracim/tracim/wsgidav.conf.sample /tracim/tracim/wsgidav.conf
-
- # PostgreSQL case
- if [ "$TEST_DATABASE_ENGINE" = postgresql ] ; then
- service postgresql start
- su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE tracim;\""
- su - postgres -s /bin/bash -c "psql -c \"ALTER USER postgres WITH PASSWORD 'dummy';\""
- sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = postgresql:\/\/postgres:dummy@127.0.0.1:5432\/tracim?client_encoding=utf8/" /tracim/tracim/test.ini
- sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = postgresql:\/\/postgres:dummy@127.0.0.1:5432\/tracim?client_encoding=utf8/" /tracim/tracim/development.ini
- fi
-
- # MySQL case
- if [ "$TEST_DATABASE_ENGINE" = mysql ] ; then
- service mysql start
- mysql -e 'CREATE DATABASE tracim;'
- sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = mysql+oursql:\/\/root@localhost\/tracim/" /tracim/tracim/test.ini
- sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = mysql+oursql:\/\/root@localhost\/tracim/" /tracim/tracim/development.ini
- fi
-
- # SQLite case
- if [ "$TEST_DATABASE_ENGINE" = sqlite ] ; then
- sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = sqlite:\/\/\/tracim.sqlite/" /tracim/tracim/test.ini
- sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = sqlite:\/\/\/tracim.sqlite/" /tracim/tracim/development.ini
- fi
-
- # Run tests
- cd /tracim/tracim && nosetests -c /tracim/tracim/test.ini -v
|