diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-09-20 09:14:52 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-09-20 09:14:52 +0000 |
commit | 2849f1bdca0c39b342d434c06cdc23dc6cf946f4 (patch) | |
tree | 03e4570cefa71cb9578ada48c1e2d6c77112ec41 | |
parent | cc7ae9fecc705924c4dc1d8d104338afc0e2437e (diff) | |
parent | 9fcf1dbf7567ec9afb6287dce09eaf88800fbaf5 (diff) | |
download | oslo-db-2849f1bdca0c39b342d434c06cdc23dc6cf946f4.tar.gz |
Merge "Fixup Fixtures Use in db test classes."1.0.1
-rw-r--r-- | oslo/db/sqlalchemy/test_base.py | 47 |
1 files changed, 20 insertions, 27 deletions
diff --git a/oslo/db/sqlalchemy/test_base.py b/oslo/db/sqlalchemy/test_base.py index 849e726..ace4e94 100644 --- a/oslo/db/sqlalchemy/test_base.py +++ b/oslo/db/sqlalchemy/test_base.py @@ -26,6 +26,7 @@ except ImportError: ' test-requirements') import six +import testtools from oslo.db.sqlalchemy import provision from oslo.db.sqlalchemy import session @@ -49,13 +50,11 @@ class DbFixture(fixtures.Fixture): self.test = test - def cleanUp(self): - self.test.engine.dispose() - def setUp(self): super(DbFixture, self).setUp() self.test.engine = session.create_engine(self._get_uri()) + self.addCleanup(self.test.engine.dispose) self.test.sessionmaker = session.get_maker(self.test.engine) @@ -110,8 +109,21 @@ class OpportunisticFixture(DbFixture): DRIVER = abc.abstractproperty(lambda: None) DBNAME = PASSWORD = USERNAME = 'openstack_citest' + _uri = None + + def _get_uri(self): + if self._uri is not None: + return self._uri + + credentials = { + 'backend': self.DRIVER, + 'user': self.USERNAME, + 'passwd': self.PASSWORD, + 'database': self.DBNAME} + if self.DRIVER and not utils.is_backend_avail(**credentials): + msg = '%s backend is not available.' % self.DRIVER + raise testtools.testcase.TestSkipped(msg) - def setUp(self): self._provisioning_engine = provision.get_engine( utils.get_connect_string(backend=self.DRIVER, user=self.USERNAME, @@ -119,15 +131,9 @@ class OpportunisticFixture(DbFixture): database=self.DBNAME) ) self._uri = provision.create_database(self._provisioning_engine) - - super(OpportunisticFixture, self).setUp() - - def cleanUp(self): - super(OpportunisticFixture, self).cleanUp() - - provision.drop_database(self._provisioning_engine, self._uri) - - def _get_uri(self): + self.addCleanup( + provision.drop_database, self._provisioning_engine, self._uri) + self.addCleanup(setattr, self, '_uri', None) return self._uri @@ -136,24 +142,11 @@ class OpportunisticTestCase(DbTestCase): """Base test case to use default CI databases. The subclasses of the test case are running only when openstack_citest - database is available otherwise a tests will be skipped. + database is available otherwise tests will be skipped. """ FIXTURE = abc.abstractproperty(lambda: None) - def setUp(self): - credentials = { - 'backend': self.FIXTURE.DRIVER, - 'user': self.FIXTURE.USERNAME, - 'passwd': self.FIXTURE.PASSWORD, - 'database': self.FIXTURE.DBNAME} - - if self.FIXTURE.DRIVER and not utils.is_backend_avail(**credentials): - msg = '%s backend is not available.' % self.FIXTURE.DRIVER - return self.skip(msg) - - super(OpportunisticTestCase, self).setUp() - class MySQLOpportunisticFixture(OpportunisticFixture): DRIVER = 'mysql' |