summaryrefslogtreecommitdiff
path: root/run_tests.sh
diff options
context:
space:
mode:
authorHengqing Hu <hudayou@hotmail.com>2012-02-08 00:02:54 +0800
committerHengqing Hu <hudayou@hotmail.com>2012-02-17 18:30:09 +0800
commit8e825c4024f9feb18ca5e2416484ef4096c3bb06 (patch)
treeb977c03dd556d504bc8cc7396a262caa891a5bab /run_tests.sh
parent5073c4506eb0fee2c732509ace2729c3aca05769 (diff)
downloadnova-8e825c4024f9feb18ca5e2416484ef4096c3bb06.tar.gz
Make database downgrade works
Fixes bug #854905 Use sqlalchemy reflection whenever possible: http://sqlalchemy-migrate.readthedocs.org/en/latest/versioning.html Work around sqlalchemy-migrate sqlite 'bool column not deletable' issue: http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=143 Add following sql scripts for sqlite: 002_sqlite_downgrade.sql 015_sqlite_downgrade.sql 033_sqlite_downgrade.sql 050_sqlite_downgrade.sql 068_sqlite_downgrade.sql Work around sqlalchemy-migrate sqlite 'table with foreign key column not deletable' issue: http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=94 Add following sql scripts for sqlite: 003_sqlite_downgrade.sql 006_sqlite_downgrade.sql 007_sqlite_downgrade.sql 012_sqlite_upgrade.sql 013_sqlite_downgrade.sql 020_sqlite_downgrade.sql 030_sqlite_downgrade.sql 038_sqlite_downgrade.sql 042_sqlite_downgrade.sql 053_sqlite_downgrade.sql 067_sqlite_downgrade.sql Work around sqlalchemy-migrate 'migrate drops engine reference' issue: http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=72 Add following sql scripts for long primary key to work with utf-8 mysql table: 072_mysql_upgrade.sql Add following sql scripts for postgresql: 002_postgresql_downgrade.sql Add snake walk test cases for database migration based on glance migration test. Change-Id: Ib454ecb4662bbf47736c1b12d9a4f969f180ceb6
Diffstat (limited to 'run_tests.sh')
-rwxr-xr-xrun_tests.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/run_tests.sh b/run_tests.sh
index 133b84515e..9964802cf3 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -34,6 +34,8 @@ function process_option {
-s|--no-site-packages) no_site_packages=1;;
-r|--recreate-db) recreate_db=1;;
-n|--no-recreate-db) recreate_db=0;;
+ -m|--patch-migrate) patch_migrate=1;;
+ -w|--no-patch-migrate) patch_migrate=0;;
-f|--force) force=1;;
-p|--pep8) just_pep8=1;;
-P|--no-pep8) no_pep8=1;;
@@ -59,6 +61,7 @@ no_pep8=0
just_hacking=0
coverage=0
recreate_db=1
+patch_migrate=1
for arg in "$@"; do
process_option $arg
@@ -185,6 +188,16 @@ if [ $recreate_db -eq 1 ]; then
rm -f tests.sqlite
fi
+# Workaround for sqlalchemy-migrate issue 72
+# see: http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=72
+if [ $patch_migrate -eq 1 ]; then
+ pyver=python`python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))'`
+ target=${venv}/lib/${pyver}/site-packages/migrate/versioning/util/__init__.py
+ if [ -f $target ]; then
+ sed -i -e '/^\s\+finally:$/ {N; /^\(\s\+finally:\n\s\+if isinstance(engine, Engine)\):$/ {s//\1 and engine is not url:/}}' $target
+ fi
+fi
+
run_tests
# NOTE(sirp): we only want to run pep8 when we're running the full-test suite,