Skip to content

Commit cc7b9f2

Browse files
authored
Merge pull request #544 from hhorak/fix-interactive-psql
Do not ignore SQL failures and check that we still work with previous data when changing password
2 parents a391ec4 + d596dbc commit cc7b9f2

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

test/run_test

+22-13
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ function get_ip_from_cid() {
107107
}
108108

109109
function postgresql_cmd() {
110-
docker run --rm -e PGPASSWORD="$PASS" "$IMAGE_NAME" psql "postgresql://$PGUSER@$CONTAINER_IP:5432/${DB-db}" "$@"
110+
docker run --rm -e PGPASSWORD="$PASS" "$IMAGE_NAME" psql -v ON_ERROR_STOP=1 "postgresql://$PGUSER@$CONTAINER_IP:5432/${DB-db}" "$@"
111111
}
112112

113113
function test_connection() {
@@ -121,9 +121,9 @@ function test_connection() {
121121
# Don't let the code come here if neither user nor admin is able to
122122
# connect.
123123
if [ -v PGUSER ] && [ -v PASS ]; then
124-
CONTAINER_IP=$ip postgresql_cmd <<< "SELECT 1;"
124+
CONTAINER_IP=$ip postgresql_cmd -At -c "SELECT 1;"
125125
else
126-
PGUSER=postgres PASS=$ADMIN_PASS CONTAINER_IP=$ip DB=postgres postgresql_cmd <<< "SELECT 1;"
126+
PGUSER=postgres PASS=$ADMIN_PASS CONTAINER_IP=$ip DB=postgres postgresql_cmd -At -c "SELECT 1;"
127127
fi
128128
status=$?
129129
if [ $status -eq 0 ]; then
@@ -137,14 +137,19 @@ function test_connection() {
137137

138138
function test_postgresql() {
139139
local ret=0
140+
local user=${1:-user}
140141
echo " Testing PostgreSQL"
141-
postgresql_cmd <<< "CREATE EXTENSION 'uuid-ossp';" || ret=1 # to test contrib package
142-
postgresql_cmd <<< "CREATE TABLE tbl (col1 VARCHAR(20), col2 VARCHAR(20));" || ret=2
143-
postgresql_cmd <<< "INSERT INTO tbl VALUES ('foo1', 'bar1');" || ret=3
144-
postgresql_cmd <<< "INSERT INTO tbl VALUES ('foo2', 'bar2');" || ret=4
145-
postgresql_cmd <<< "INSERT INTO tbl VALUES ('foo3', 'bar3');" || ret=5
146-
postgresql_cmd <<< "SELECT * FROM tbl;" || ret=6
147-
#postgresql_cmd <<< "DROP TABLE tbl;"
142+
# test contrib only when having admin privileges
143+
if [ "$user" == "admin" ] ; then
144+
postgresql_cmd -At -c "CREATE EXTENSION \"uuid-ossp\";" || ret=1 # to test contrib package
145+
fi
146+
postgresql_cmd -At -c "CREATE TABLE tbl (col1 VARCHAR(20), col2 VARCHAR(20));" || ret=2
147+
postgresql_cmd -At -c "INSERT INTO tbl VALUES ('foo1', 'bar1');" || ret=3
148+
postgresql_cmd -At -c "INSERT INTO tbl VALUES ('foo2', 'bar2');" || ret=4
149+
postgresql_cmd -At -c "INSERT INTO tbl VALUES ('foo3', 'bar3');" || ret=5
150+
postgresql_cmd -At -c "SELECT * FROM tbl;" || ret=6
151+
# not droping table, other tests depend on having it created after this function is run
152+
#postgresql_cmd -At -c "DROP TABLE tbl;"
148153
if [ $ret -eq 0 ]; then
149154
echo " Success!"
150155
fi
@@ -195,7 +200,7 @@ function assert_login_access() {
195200

196201
echo "testing login as $PGUSER:$PASS; should_success=$success"
197202

198-
if postgresql_cmd <<<'SELECT 1;' ; then
203+
if postgresql_cmd -At -c 'SELECT 1;' ; then
199204
if $success ; then
200205
echo " $PGUSER($PASS) access granted as expected"
201206
return
@@ -422,11 +427,11 @@ function run_tests() {
422427
run_configuration_tests $name || ret=8
423428

424429
if $user_login; then
425-
test_postgresql $name || ret=9
430+
test_postgresql || ret=9
426431
fi
427432

428433
if $admin_login; then
429-
DB=postgres PGUSER=postgres PASS=$ADMIN_PASS test_postgresql $name || ret=10
434+
DB=postgres PGUSER=postgres PASS=$ADMIN_PASS test_postgresql admin || ret=10
430435
fi
431436
if [ $ret -eq 0 ]; then
432437
echo " Success!"
@@ -631,6 +636,7 @@ $volume_options
631636

632637
assert_login_access ${user} ${password} true || ret=4
633638
assert_login_access 'postgres' ${admin_password} true || ret=5
639+
test_postgresql || ret 5
634640

635641
echo " Changing passwords"
636642

@@ -664,6 +670,9 @@ $volume_options
664670
assert_login_access 'postgres' "NEW_${admin_password}" true || ret=10
665671
assert_login_access 'postgres' ${admin_password} false || ret=11
666672

673+
# check that we still work with the original volume
674+
postgresql_cmd -At -c "SELECT * FROM tbl;" | grep bar3 || ret=12
675+
667676
if [ $ret -eq 0 ]; then
668677
echo " Success!"
669678
fi

0 commit comments

Comments
 (0)