From 8c2f8c8bcc2cedd24bb7177144985412447b725c Mon Sep 17 00:00:00 2001 From: Steve Howell Date: Tue, 21 Apr 2020 23:39:46 +0000 Subject: [PATCH] db tools: Refactor generate-fixtures/rebuild-test-database. So `generate-fixtures` only ever did 9 lines of code (really 3 lines of actual code) in its normal mode of operation. But it was cluttered with lots of stuff that really only happened when you called it with the `-force` option, which was only invoked by `rebuild-test-database`. Now we inline most of the code into `rebuild-test-database`. And now `generate-fixtures` is simple (and doesn't support a `-force` flag. --- tools/rebuild-test-database | 36 ++++++++++++++++++++++++++++++-- tools/setup/generate-fixtures | 39 +++-------------------------------- 2 files changed, 37 insertions(+), 38 deletions(-) diff --git a/tools/rebuild-test-database b/tools/rebuild-test-database index ea86a09b2e..916df56bfe 100755 --- a/tools/rebuild-test-database +++ b/tools/rebuild-test-database @@ -2,5 +2,37 @@ set -e set -x -# This is a really simple wrapper script, pretty much for documenting clarity -"$(dirname "$0")/../tools/setup/generate-fixtures" --force +export DJANGO_SETTINGS_MODULE=zproject.test_settings + +create_template_database() +{ + psql -v ON_ERROR_STOP=1 -h localhost postgres zulip_test << EOF +DROP DATABASE IF EXISTS zulip_test_template; +CREATE DATABASE zulip_test_template TEMPLATE zulip_test; +EOF +} + +mkdir -p zerver/tests/fixtures + +"$(dirname "$0")/../scripts/setup/terminate-psql-sessions" zulip zulip_test zulip_test_base zulip_test_template + +psql -v ON_ERROR_STOP=1 -h localhost postgres zulip_test < zerver/tests/fixtures/messages.json + +# create pristine template database, for fast fixture restoration after tests are run. +create_template_database diff --git a/tools/setup/generate-fixtures b/tools/setup/generate-fixtures index 37c11ef8ba..b77aec85ac 100755 --- a/tools/setup/generate-fixtures +++ b/tools/setup/generate-fixtures @@ -1,47 +1,14 @@ #!/usr/bin/env bash set -e -export DJANGO_SETTINGS_MODULE=zproject.test_settings - -create_template_database() +run() { - psql -v ON_ERROR_STOP=1 -h localhost postgres zulip_test << EOF -DROP DATABASE IF EXISTS zulip_test_template; -CREATE DATABASE zulip_test_template TEMPLATE zulip_test; -EOF -} - -if [ "$1" != "--force" ]; then "$(dirname "$0")/../../scripts/setup/terminate-psql-sessions" zulip zulip_test zulip_test_base zulip_test_template psql -v ON_ERROR_STOP=1 -h localhost postgres zulip_test << EOF DROP DATABASE IF EXISTS zulip_test; CREATE DATABASE zulip_test TEMPLATE zulip_test_template; EOF "$(dirname "$0")/../../scripts/setup/flush-memcached" - exit 0 -fi +} -mkdir -p zerver/tests/fixtures - -"$(dirname "$0")/../../scripts/setup/terminate-psql-sessions" zulip zulip_test zulip_test_base zulip_test_template - -psql -v ON_ERROR_STOP=1 -h localhost postgres zulip_test < zerver/tests/fixtures/messages.json - -# create pristine template database, for fast fixture restoration after tests are run. -create_template_database +run