Skip to content
Snippets Groups Projects
do_tests 2.66 KiB
Newer Older
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
#!/bin/zsh
# vim: set shiftwidth=4 softtabstop=4:
#
# This script will create a database, install some modules and run tests on it
#
# Arguments:
#
# - db host if any (will use socket if nothing is provided)
# - db user
# - other arguments are forwarded as is to the setup command.
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
#
# Required:
#
# - access to pg database
#
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
here=$(dirname $0)
project_home=$(cd $here && cd .. && echo $PWD)
dbname=$(basename $project_home)_test
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
# this is the same value as conf/dev/odoo.conf
if [[ -e "${project_home}/conf/dev/odoo.conf" ]];
then
    dbowner=$(python -B -c "import ConfigParser ; c = ConfigParser.ConfigParser() ; c.read('${project_home}/conf/dev/odoo.conf') ; print c.get('options', 'db_user')")
else
    dbowner=odoo
fi
modules_to_install=$(python -B -c "import ConfigParser ; c = ConfigParser.ConfigParser() ; c.read('${project_home}/setup.cfg') ; print ','.join(c.get('odoo_scripts', 'module_list', '').split())")
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed

# color stuff
autoload colors
if [[ "$terminfo[colors]" -gt 7 ]];
then
    colors
fi
for COLOR in RED GREEN YELLOW BLUE MAGENTA CYAN BLACK WHITE; do
    eval $COLOR='$fg_no_bold[${(L)COLOR}]'
    eval BOLD_$COLOR='$fg_bold[${(L)COLOR}]'
done
eval RESET='$reset_color'

# argument handling
if [[ $# -gt 0 ]];
then
    echo ${YELLOW}INFO ${RESET} - Using database host $1
    PG_HOST=-h$1
    ODOO_HOST=--db_host=$1
    shift
    if [[ $# -gt 0 ]];
    then
	echo ${YELLOW}INFO ${RESET} - Using database user $1
	PG_USER=-U$1
	ODOO_USER=--db_user=$1
	dbowner=$1
	shift
    else
	PG_USER=""
	ODOO_USER=""
    fi
else
    PG_HOST=""
    ODOO_HOST=""
    PG_USER=""
    ODOO_USER=""
fi
# This should be a parameter if it was simple to parse
INSTALL_ARGUMENTS="--log-level=${INSTALL_LOG_LEVEL:-warn}"
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed

echo ${YELLOW}INFO ${RESET} - Drop any existing database "$dbname"
dropdb $PG_HOST $PG_USER --if-exists $dbname
echo ${YELLOW}INFO ${RESET} - Create database "$dbname" with owner $dbowner
createdb $PG_HOST $PG_USER -O $dbowner $dbname || { echo ${RED}FATAL${RESET} - Cannot create test database ; exit 1; }
unaccent=$(python -B -c "import ConfigParser ; c = ConfigParser.ConfigParser() ; c.read('${project_home}/conf/dev/odoo.conf') ; print c.get('options', 'unaccent', False)")
if [[ "$unaccent" == "True" ]];
then
    psql $PG_HOST $PG_USER $dbname -c "CREATE EXTENSION unaccent;"
fi
echo ${YELLOW}INFO ${RESET} - Modules to install: $modules_to_install
echo ${YELLOW}INFO ${RESET} - Install those modules
$here/start $INSTALL_ARGUMENTS -i $modules_to_install -d $dbname --max-cron=0 --stop-after-init $* $ODOO_HOST $ODOO_USER || { echo ${RED}FATAL${RESET} - Cannot install modules ; exit 1; }
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
echo ${YELLOW}INFO ${RESET} - Run tests on $dbname
$here/run_tests $dbname $ODOO_HOST $ODOO_USER