annotate schema/run_tests.sh @ 224:57dfab80973c

By convention, prefix all test users with 'test' This allows to DROP them without having to fixup run_tests.sh always after adding a new test user. Further fixup of rev. cfde876fbaf9: Remove obsolete comment.
author Tom Gottfried <tom@intevation.de>
date Wed, 25 Jul 2018 13:34:46 +0200
parents e9382dccb331
children 8b9cae6d3a21
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
172
a422471db08a Automate running DB-tests with an extra database
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1 #!/bin/sh -e
a422471db08a Automate running DB-tests with an extra database
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
2
a422471db08a Automate running DB-tests with an extra database
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
3 dropdb --if-exists gemma_test
a422471db08a Automate running DB-tests with an extra database
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
4 createdb gemma_test
183
f3a09fc9c1eb Prepare for having more than one database test script
Tom Gottfried <tom@intevation.de>
parents: 172
diff changeset
5 psql -qv ON_ERROR_STOP= -c 'CREATE EXTENSION pgtap' -d gemma_test
172
a422471db08a Automate running DB-tests with an extra database
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
6
185
a9d9c2b1d08c Add database function to create role and user profile
Tom Gottfried <tom@intevation.de>
parents: 183
diff changeset
7 psql -qv ON_ERROR_STOP= -d gemma_test \
a9d9c2b1d08c Add database function to create role and user profile
Tom Gottfried <tom@intevation.de>
parents: 183
diff changeset
8 -f gemma.sql \
a9d9c2b1d08c Add database function to create role and user profile
Tom Gottfried <tom@intevation.de>
parents: 183
diff changeset
9 -f auth.sql \
a9d9c2b1d08c Add database function to create role and user profile
Tom Gottfried <tom@intevation.de>
parents: 183
diff changeset
10 -f manage_users.sql
172
a422471db08a Automate running DB-tests with an extra database
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
11
224
57dfab80973c By convention, prefix all test users with 'test'
Tom Gottfried <tom@intevation.de>
parents: 223
diff changeset
12 # Collect test roles to be dropped
57dfab80973c By convention, prefix all test users with 'test'
Tom Gottfried <tom@intevation.de>
parents: 223
diff changeset
13 # Concatenate with dummy role to prevent syntax error if there is no test role
57dfab80973c By convention, prefix all test users with 'test'
Tom Gottfried <tom@intevation.de>
parents: 223
diff changeset
14 TEST_ROLES=$(psql -qtc \
57dfab80973c By convention, prefix all test users with 'test'
Tom Gottfried <tom@intevation.de>
parents: 223
diff changeset
15 "SELECT concat_ws(',', 'test', string_agg(rolname, ',')) FROM pg_roles
57dfab80973c By convention, prefix all test users with 'test'
Tom Gottfried <tom@intevation.de>
parents: 223
diff changeset
16 WHERE rolname LIKE 'test%'")
57dfab80973c By convention, prefix all test users with 'test'
Tom Gottfried <tom@intevation.de>
parents: 223
diff changeset
17
57dfab80973c By convention, prefix all test users with 'test'
Tom Gottfried <tom@intevation.de>
parents: 223
diff changeset
18 # Drop test roles, add test data and run tests
222
cfde876fbaf9 Try to DROP ROLEs before creating them and keep test results
Tom Gottfried <tom@intevation.de>
parents: 207
diff changeset
19 psql -qXv ON_ERROR_STOP= -v -d gemma_test \
224
57dfab80973c By convention, prefix all test users with 'test'
Tom Gottfried <tom@intevation.de>
parents: 223
diff changeset
20 -c "DROP ROLE IF EXISTS $TEST_ROLES" \
196
b67208d82543 Make test output more comprehensive
Tom Gottfried <tom@intevation.de>
parents: 185
diff changeset
21 -f tap_tests_data.sql \
207
88d21c29cf04 Care for the fact that role attributes are not inherited
Tom Gottfried <tom@intevation.de>
parents: 196
diff changeset
22 -c 'SELECT plan(23)' \
196
b67208d82543 Make test output more comprehensive
Tom Gottfried <tom@intevation.de>
parents: 185
diff changeset
23 -f auth_tests.sql \
b67208d82543 Make test output more comprehensive
Tom Gottfried <tom@intevation.de>
parents: 185
diff changeset
24 -f manage_users_tests.sql \
222
cfde876fbaf9 Try to DROP ROLEs before creating them and keep test results
Tom Gottfried <tom@intevation.de>
parents: 207
diff changeset
25 -c 'SELECT * FROM finish()'