Newer
Older
#!/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 ignored
#
# Required:
#
# - access to pg database
#
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
here=$(dirname $0)
project_home=$here/..
dbname=$(basename $(readlink -f $project_home))_test
# this is the same value as conf/dev/odoo.conf
dbowner=$(python -B -c "import ConfigParser ; c = ConfigParser.ConfigParser() ; c.read('${project_home}/conf/dev/odoo.conf') ; print c.get('options', 'db_user')")
modules_to_install=$(paste -d, -s $project_home/module_list)
# 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
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 -i $modules_to_install -d $dbname --log-level=warn --max-cron=0 --stop-after-init $ODOO_HOST $ODOO_USER || { echo ${RED}FATAL${RESET} - Cannot install modules ; exit 1; }
logfile=$(tempfile --suffix=.log)
echo ${YELLOW}INFO ${RESET} - Run tests on $dbname
$here/run_tests $dbname $ODOO_HOST $ODOO_USER | tee $logfile
ok=$(grep ' OK' $logfile -c)
failed=$(grep ' FAILED' $logfile -c)
echo ''
echo '***** Test results *****'
echo "$ok modules passing, $failed modules failing"
echo ''
if [[ $ok -gt 0 ]];
then
echo '\tOK:'
grep ' OK' $logfile || true
fi
if [[ $failed -gt 0 ]];
then
echo '\tFAILED:'
grep FAILED $logfile
fi
echo ''
rm $logfile
if [[ $failed -gt 0 ]];
then
exit 1
fi