d73747ce1d
- Fix garbage_collect for an empty list (fixes a test) - Add a script which runs the full test suite against mysql and postgres (note: QueueTest's are broken for MySQL, but they obviously work in production, so they need to be fixed)
60 lines
1.4 KiB
Bash
Executable file
60 lines
1.4 KiB
Bash
Executable file
set -e
|
|
|
|
up_mysql() {
|
|
# Run a SQL database on port 3306 inside of Docker.
|
|
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql
|
|
|
|
# Sleep for 5s to get MySQL get started.
|
|
echo 'Sleeping for 10...'
|
|
sleep 10
|
|
|
|
# Add the database to mysql.
|
|
docker run --rm --link mysql:mysql mysql sh -c 'echo "create database genschema" | mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -ppassword'
|
|
}
|
|
|
|
down_mysql() {
|
|
docker kill mysql
|
|
docker rm mysql
|
|
}
|
|
|
|
up_postgres() {
|
|
# Run a SQL database on port 5432 inside of Docker.
|
|
docker run --name postgres -p 5432:5432 -d postgres
|
|
|
|
# Sleep for 5s to get SQL get started.
|
|
echo 'Sleeping for 5...'
|
|
sleep 5
|
|
|
|
# Add the database to postgres.
|
|
docker run --rm --link postgres:postgres postgres sh -c 'echo "create database genschema" | psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres'
|
|
}
|
|
|
|
down_postgres() {
|
|
docker kill postgres
|
|
docker rm postgres
|
|
}
|
|
|
|
run_tests() {
|
|
TEST_DATABASE_URI=$1 TEST=true python -m unittest discover
|
|
}
|
|
|
|
# Test (and generate, if requested) via MySQL.
|
|
echo '> Starting MySQL'
|
|
up_mysql
|
|
|
|
echo '> Running Full Test Suite (mysql)'
|
|
set +e
|
|
run_tests "mysql+pymysql://root:password@192.168.59.103/genschema"
|
|
set -e
|
|
down_mysql
|
|
|
|
# Test via Postgres.
|
|
echo '> Starting Postgres'
|
|
up_postgres
|
|
|
|
echo '> Running Full Test Suite (postgres)'
|
|
set +e
|
|
run_tests "postgresql://postgres@192.168.59.103/genschema"
|
|
set -e
|
|
down_postgres
|
|
|