summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMehdi Abaakouk <sileht@sileht.net>2016-12-05 08:35:51 +0100
committerMehdi Abaakouk <sileht@sileht.net>2016-12-05 11:46:17 +0100
commite8e2421f8bc7ae861061bc5cef89934e0bccfdaf (patch)
treed1329101842d30c574e519c6d2d72287a50c0817
parent76414af2298d127fef73f766458023b4c20d81ef (diff)
downloadoslo-db-e8e2421f8bc7ae861061bc5cef89934e0bccfdaf.tar.gz
migration: don't assume the mixin use provision4.16.0
In 2ad571c8d7a7e1d8d18f7c5e97c564509fd34816 we have changed the backend used to cleanup the ModelsMigrationsSync by the one from oslo_db.sqlalchemy.provision. But in ModelsMigrationsSync, nothing uses the provisioning system. The engine can be created outside oslo.db. And oslo.db must must not assume it have been created by the oslo_db.sqlalchemy.provision module. For example, 2ad571c8d7a7e1d8d18f7c5e97c564509fd34816 have broken the Gnocchi models migration test that creates the engine itself. This change builds a new backend to cleanup all database objects. Change-Id: Ie8c454528ce3aa816c04fbb4beb69f4b5ec57e9c Closes-bug: #1647280
-rw-r--r--oslo_db/sqlalchemy/test_migrations.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/oslo_db/sqlalchemy/test_migrations.py b/oslo_db/sqlalchemy/test_migrations.py
index 549654c..56beddb 100644
--- a/oslo_db/sqlalchemy/test_migrations.py
+++ b/oslo_db/sqlalchemy/test_migrations.py
@@ -595,11 +595,10 @@ class ModelsMigrationsSync(object):
self.skipTest('sqlalchemy>=0.8.4 and alembic>=0.6.3 are required'
' for running of this test: %s' % e)
- # drop all tables after a test run
- backend = provision.Backend.backend_for_database_type(
- self.get_engine().name)
- self.addCleanup(functools.partial(backend.drop_all_objects,
- self.get_engine()))
+ # drop all objects after a test run
+ engine = self.get_engine()
+ backend = provision.Backend(engine.name, engine.url)
+ self.addCleanup(functools.partial(backend.drop_all_objects, engine))
# run migration scripts
self.db_sync(self.get_engine())