mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2025-02-28 16:58:03 +01:00
109 lines
3.1 KiB
Bash
109 lines
3.1 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
@test "Start PostgreSQL cluster" {
|
|
# run the script
|
|
run ../home.admin/config.scripts/bonus.postgresql.sh on
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
# check if PostgreSQL cluster is running
|
|
run pg_lsclusters
|
|
[ "$status" -eq 0 ]
|
|
echo "$output"
|
|
}
|
|
|
|
@test "Create test database" {
|
|
sudo -u postgres psql -c "CREATE DATABASE testdb TEMPLATE template0 LC_CTYPE 'C' LC_COLLATE 'C' ENCODING 'UTF8';"
|
|
sudo -u postgres psql -c "CREATE USER testuser WITH ENCRYPTED PASSWORD 'raspiblitz';"
|
|
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE testdb TO testuser;"
|
|
# check if PostgreSQL cluster is running
|
|
run pg_lsclusters
|
|
[ "$status" -eq 0 ]
|
|
echo "$output"
|
|
run sudo -u postgres psql -l
|
|
echo "$output"
|
|
echo "$output" | grep -q "testdb"
|
|
[ "$?" -eq 0 ]
|
|
echo "$output" | grep -q "testuser"
|
|
[ "$?" -eq 0 ]
|
|
}
|
|
|
|
@test "Switch cluster off and move" {
|
|
# run the script
|
|
run ../home.admin/config.scripts/bonus.postgresql.sh off
|
|
# check if PostgreSQL cluster is running
|
|
run pg_lsclusters
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
sudo mv /mnt/hdd/app-data/postgresql /mnt/hdd/app-data/postgresql.bak
|
|
sudo mv /mnt/hdd/app-data/postgresql-conf /mnt/hdd/app-data/postgresql-conf.bak
|
|
if echo "${output}" | grep "15 main"; then
|
|
run sudo pg_dropcluster 15 main --stop
|
|
[ "$status" -eq 0 ]
|
|
fi
|
|
}
|
|
|
|
@test "Restore pg cluster" {
|
|
sudo mv /mnt/hdd/app-data/postgresql.bak /mnt/hdd/app-data/postgresql
|
|
sudo mv /mnt/hdd/app-data/postgresql-conf.bak /mnt/hdd/app-data/postgresql-conf
|
|
# run the script
|
|
run ../home.admin/config.scripts/bonus.postgresql.sh on
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
# check the database
|
|
run pg_lsclusters
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
echo "$output"
|
|
run sudo -u postgres psql -l
|
|
echo "$output"
|
|
echo "$output" | grep -q "testdb"
|
|
[ "$?" -eq 0 ]
|
|
echo "$output" | grep -q "testuser"
|
|
[ "$?" -eq 0 ]
|
|
}
|
|
|
|
@test "Switch cluster off and move (2)" {
|
|
run ../home.admin/config.scripts/bonus.postgresql.sh off
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
run pg_lsclusters
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
sudo mv /mnt/hdd/app-data/postgresql /mnt/hdd/app-data/postgresql.bak
|
|
sudo mv /mnt/hdd/app-data/postgresql-conf /mnt/hdd/app-data/postgresql-conf.bak
|
|
if echo "${output}" | grep "15 main"; then
|
|
run sudo pg_dropcluster 15 main --stop
|
|
[ "$status" -eq 0 ]
|
|
fi
|
|
|
|
}
|
|
|
|
@test "Restore cluster without config dir" {
|
|
sudo mv /mnt/hdd/app-data/postgresql.bak /mnt/hdd/app-data/postgresql
|
|
sudo rm -rf /etc/postgresql
|
|
sudo rm -rf /mnt/hdd/app-data/postgresql-conf.bak
|
|
run ../home.admin/config.scripts/bonus.postgresql.sh on
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
run pg_lsclusters
|
|
[ "$status" -eq 0 ]
|
|
echo "$output"
|
|
run sudo -u postgres psql -l
|
|
echo "$output"
|
|
echo "$output" | grep -q "testdb"
|
|
[ "$?" -eq 0 ]
|
|
echo "$output" | grep -q "testuser"
|
|
[ "$?" -eq 0 ]
|
|
}
|
|
|
|
@test "Cleanup" {
|
|
run ../home.admin/config.scripts/bonus.postgresql.sh off
|
|
echo "$output"
|
|
[ "$status" -eq 0 ]
|
|
run pg_lsclusters
|
|
[ "$status" -eq 0 ]
|
|
echo "$output"
|
|
sudo pg_dropcluster 15 main --stop || true
|
|
sudo pg_dropcluster 13 main --stop || true
|
|
sudo rm -rf /mnt/hdd/app-data/postgresql*
|
|
}
|