Revert connection option post full-stack tests

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
This commit is contained in:
John Schwarz 2015-04-09 18:41:06 +03:00
parent 483de6313f
commit e409575886
2 changed files with 9 additions and 3 deletions

View File

@ -56,5 +56,14 @@ class BaseFullStackTestCase(test_base.MySQLOpportunisticTestCase):
'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')

View File

@ -77,7 +77,4 @@ class RetargetableApiTest(testscenarios.WithScenarios,
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)