#!/bin/bash set -euxo pipefail DB=$1 PPATH="/usr/lib/postgresql/13/bin/" setup_postgres() { apt update apt install -y postgresql postgresql-client sudo echo -n "postgres" >/tmp/pw mkdir /tmp/postgres-db chown postgres:postgres /tmp/postgres-db sudo -u postgres "$PPATH/initdb" --pwfile /tmp/pw -U postgres /tmp/postgres-db sudo -u postgres "$PPATH/postgres" -D /tmp/postgres-db >/dev/null 2>&1 & } setup_redis() { apt install -y redis-server redis-server >/dev/null 2>&1 & } setup_playwright() { pip install poetry pip install "playwright=="$(poetry show playwright | grep version | cut -f 2 -d ":" | tr -d " ") playwright install firefox playwright install-deps } case "$DB" in "sqlite") ;; "postgres") setup_postgres sed -i 's|^sqlalchemy.url = .*$|sqlalchemy.url = postgresql://postgres:postgres@localhost/postgres"|' testing.ini ;; *) echo "Unknown database: $DB" exit 1 ;; esac setup_playwright setup_redis tox -e python -- --browser firefox