#!/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 exit setup_playwright setup_redis tox -e python -- --browser firefox