#!/bin/bash # # Run the Python tests of the given Odoo modules. # # This script is meant to be executed *inside* an Elabore doodba image # (docker.0k.io/mirror/odoo:rc_-ELABORE-LIGHT), with a # PostgreSQL service reachable at $PGHOST. The modules under test are # read from the current working directory (the checked-out repository), # which is prepended to the addons path so that the PR's code takes # precedence over the modules already baked in the image. # # Usage: odoo-tests.sh set -euo pipefail modules="${1:?usage: odoo-tests.sh }" export PGHOST=postgres export PGUSER=odoo export PGPASSWORD=odoopassword export PGDATABASE="test_$(basename "$PWD" | tr '.-' '__')" export WITHOUT_DEMO=all export DB_FILTER='.*' # Generate /opt/odoo/auto/odoo.conf from the environment and wait for # the database to accept connections. /opt/odoo/common/entrypoint # Odoo test-tags format: "/module1,/module2" (one leading slash). tags="/$(echo "$modules" | tr ',' ',/')" exec odoo \ --config=/opt/odoo/auto/odoo.conf \ --max-cron-threads=0 \ --limit-time-real=10000 \ --workers=0 \ --test-enable \ --stop-after-init \ --addons-path="$PWD,/opt/odoo/auto/addons" \ -d "$PGDATABASE" \ -i "$modules" \ --test-tags "$tags"