view schema/run_tests.sh @ 2818:89f5af7e14ad

Due to performance problems with users.current_user_country() inlined it as (SELECT country FROM users.list_users WHERE username = current_user) in RLS policies.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 27 Mar 2019 10:52:09 +0100
parents a2127495093e
children 93fa55bce126
line wrap: on
line source

#!/bin/sh -e
# This is Free Software under GNU Affero General Public License v >= 3.0
# without warranty, see README.md and license for details.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# License-Filename: LICENSES/AGPL-3.0.txt
#
# Copyright (C) 2018 by via donau
#   – Österreichische Wasserstraßen-Gesellschaft mbH
# Software engineering by Intevation GmbH
#
# Author(s):
#  * Tom Gottfried <tom@intevation.de>

dropdb --if-exists gemma_test

./install-db.sh -d gemma_test
psql -qv ON_ERROR_STOP= -c 'CREATE EXTENSION pgtap' -d gemma_test

# Collect test roles to be dropped
# Concatenate with dummy role to prevent syntax error if there is no test role
TEST_ROLES=$(psql -qtc \
    "SELECT concat_ws(',', 'test', string_agg(rolname, ',')) FROM pg_roles
         WHERE rolname LIKE 'test%'")

# Drop test roles, add test data and run tests
psql -qXv ON_ERROR_STOP= -v -d gemma_test \
    -c 'SET client_min_messages TO WARNING' \
    -c "DROP ROLE IF EXISTS $TEST_ROLES" \
    -f tap_tests_data.sql \
    -c 'SELECT plan(63)' \
    -f gemma_tests.sql \
    -f isrs_tests.sql \
    -f auth_tests.sql \
    -f manage_users_tests.sql \
    -c 'SELECT * FROM finish()'