Merge "Prepare for using standard python tests"
This commit is contained in:
commit
6bf5bc8228
@ -56,7 +56,9 @@ interpreter of one of supported versions (currently 2.7 and 3.4), use
|
|||||||
This command also runs tests for database migrations. By default the sqlite
|
This command also runs tests for database migrations. By default the sqlite
|
||||||
backend is used. For testing with mysql or postgresql, you need to set up
|
backend is used. For testing with mysql or postgresql, you need to set up
|
||||||
a db named 'openstack_citest' with user 'openstack_citest' and password
|
a db named 'openstack_citest' with user 'openstack_citest' and password
|
||||||
'openstack_citest' on localhost.
|
'openstack_citest' on localhost. Use the script
|
||||||
|
``tools/test_setup.sh`` to set the database up the same way as
|
||||||
|
done in the OpenStack CI environment.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Users of Fedora <= 23 will need to run "sudo dnf --releasever=24 update
|
Users of Fedora <= 23 will need to run "sudo dnf --releasever=24 update
|
||||||
|
57
tools/test-setup.sh
Executable file
57
tools/test-setup.sh
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash -xe
|
||||||
|
|
||||||
|
# This script will be run by OpenStack CI before unit tests are run,
|
||||||
|
# it sets up the test system as needed.
|
||||||
|
# Developers should setup their test systems in a similar way.
|
||||||
|
|
||||||
|
# This setup needs to be run as a user that can run sudo.
|
||||||
|
|
||||||
|
# The root password for the MySQL database; pass it in via
|
||||||
|
# MYSQL_ROOT_PW.
|
||||||
|
DB_ROOT_PW=${MYSQL_ROOT_PW:-insecure_slave}
|
||||||
|
|
||||||
|
# This user and its password are used by the tests, if you change it,
|
||||||
|
# your tests might fail.
|
||||||
|
DB_USER=openstack_citest
|
||||||
|
DB_PW=openstack_citest
|
||||||
|
|
||||||
|
sudo -H mysqladmin -u root password $DB_ROOT_PW
|
||||||
|
|
||||||
|
# It's best practice to remove anonymous users from the database. If
|
||||||
|
# a anonymous user exists, then it matches first for connections and
|
||||||
|
# other connections from that host will not work.
|
||||||
|
sudo -H mysql -u root -p$DB_ROOT_PW -h localhost -e "
|
||||||
|
DELETE FROM mysql.user WHERE User='';
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
GRANT ALL PRIVILEGES ON *.*
|
||||||
|
TO '$DB_USER'@'%' identified by '$DB_PW' WITH GRANT OPTION;"
|
||||||
|
|
||||||
|
# Now create our database.
|
||||||
|
mysql -u $DB_USER -p$DB_PW -h 127.0.0.1 -e "
|
||||||
|
SET default_storage_engine=MYISAM;
|
||||||
|
DROP DATABASE IF EXISTS openstack_citest;
|
||||||
|
CREATE DATABASE openstack_citest CHARACTER SET utf8;"
|
||||||
|
|
||||||
|
# Same for PostgreSQL
|
||||||
|
# The root password for the PostgreSQL database; pass it in via
|
||||||
|
# POSTGRES_ROOT_PW.
|
||||||
|
DB_ROOT_PW=${POSTGRES_ROOT_PW:-insecure_slave}
|
||||||
|
|
||||||
|
# Setup user
|
||||||
|
root_roles=$(sudo -H -u postgres psql -t -c "
|
||||||
|
SELECT 'HERE' from pg_roles where rolname='$DB_USER'")
|
||||||
|
if [[ ${root_roles} == *HERE ]];then
|
||||||
|
sudo -H -u postgres psql -c "ALTER ROLE $DB_USER WITH SUPERUSER LOGIN PASSWORD '$DB_PW'"
|
||||||
|
else
|
||||||
|
sudo -H -u postgres psql -c "CREATE ROLE $DB_USER WITH SUPERUSER LOGIN PASSWORD '$DB_PW'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Store password for tests
|
||||||
|
cat << EOF > $HOME/.pgpass
|
||||||
|
*:*:*:$DB_USER:$DB_PW
|
||||||
|
EOF
|
||||||
|
chmod 0600 $HOME/.pgpass
|
||||||
|
|
||||||
|
# Now create our database
|
||||||
|
psql -h 127.0.0.1 -U $DB_USER -d template1 -c "DROP DATABASE IF EXISTS openstack_citest"
|
||||||
|
createdb -h 127.0.0.1 -U $DB_USER -l C -T template0 -E utf8 openstack_citest
|
Loading…
Reference in New Issue
Block a user