The full-stack framework overrides the database connection string before
every test is started, but after the test it doesn't revert the string
back to what it was originally. Since after the test the database is
deleted, the string is not actually valid once the test finished, and
this conflicts with tests which are ran on the same job (specifically
the retargetable tests - see associated bug). The proposed patch saves
the original connection string and reverts it after the test finishes.
Change-Id: I96c01483009084cbc2b81588a1283e84e6bcb4c4
Closes-bug: #
1440797
'username': test_base.DbFixture.USERNAME,
'password': test_base.DbFixture.PASSWORD,
'db_name': self.engine.url.database}
+
+ self.original_conn = cfg.CONF.database.connection
+ self.addCleanup(self._revert_connection_address)
cfg.CONF.set_override('connection', conn, group='database')
+
model_base.BASEV2.metadata.create_all(self.engine)
+
+ def _revert_connection_address(self):
+ cfg.CONF.set_override('connection',
+ self.original_conn,
+ group='database')
if rest_enabled():
raise self.skipException(
'Tempest fixture requirements prevent this test from running')
- else:
- raise self.skipException(
- "Fullstack's db fixture usage prevents this test from running")
self.useFixture(self.client)