Skip to content
Browse files

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
  • Loading branch information...
1 parent acc810d commit ed252e0f92f0750a2f35871d72e52a2767569bef Adam Young committed
Showing with 20 additions and 1 deletion.
  1. +4 −0 tests/backend_sql.conf
  2. +16 −1 tests/test_sql_upgrade.py
View
4 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]
View
17 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 @@ def setUp(self):
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):

0 comments on commit ed252e0

Please sign in to comment.
Something went wrong with that request. Please try again.