From e8e2421f8bc7ae861061bc5cef89934e0bccfdaf Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Mon, 5 Dec 2016 08:35:51 +0100 Subject: migration: don't assume the mixin use provision 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 --- oslo_db/sqlalchemy/test_migrations.py | 9 ++++----- 1 file 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()) -- cgit v1.2.1