From ed252e0f92f0750a2f35871d72e52a2767569bef Mon Sep 17 00:00:00 2001 From: Adam Young Date: Thu, 20 Dec 2012 18:56:06 -0500 Subject: Allow running of sql against the live DB. Reordered the tables in the domain downgrade script to avoid breaking the integrity constraints To run the test: ./run_tests.sh -N test_sql_upgrade This version removed all of the code specific to running against a live DB and merged it into the standard tests. Fixed a couple downgrade functions that were failing. They had not been tested Change-Id: Ie1214e5543bd08fde95652af2464cc9c80db449d --- tests/backend_sql.conf | 4 ++++ tests/test_sql_upgrade.py | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/tests/backend_sql.conf b/tests/backend_sql.conf index 79bb3405..f42eba65 100644 --- a/tests/backend_sql.conf +++ b/tests/backend_sql.conf @@ -1,5 +1,9 @@ [sql] connection = sqlite:// +#To Test MySQL: +#connection = mysql://root:keystone@localhost/keystone?charset=utf8 +#To Test PostgreSQL: +#connection = postgresql://keystone:keystone@localhost/keystone?client_encoding=utf8 idle_timeout = 200 [identity] diff --git a/tests/test_sql_upgrade.py b/tests/test_sql_upgrade.py index 090756e0..44103888 100644 --- a/tests/test_sql_upgrade.py +++ b/tests/test_sql_upgrade.py @@ -13,7 +13,18 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - +""" +To run these tests against a live database: +1. Modify the file `tests/backend_sql.conf` to use the connection for your + live database +2. Set up a blank, live database. +3. run the tests using + ./run_tests.sh -N test_sql_upgrade + WARNING:: + Your database will be wiped. + Do not do this against a Database with valuable data as + all data will be lost. +""" import copy import json import uuid @@ -54,6 +65,10 @@ class SqlUpgradeTests(test.TestCase): self.repo_path, 0) def tearDown(self): + table = sqlalchemy.Table("migrate_version", self.metadata, + autoload=True) + self.downgrade(0) + table.drop(self.engine, checkfirst=True) super(SqlUpgradeTests, self).tearDown() def test_blank_db_to_start(self): -- cgit