summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-09-20 09:14:52 +0000
committerGerrit Code Review <review@openstack.org>2014-09-20 09:14:52 +0000
commit2849f1bdca0c39b342d434c06cdc23dc6cf946f4 (patch)
tree03e4570cefa71cb9578ada48c1e2d6c77112ec41
parentcc7ae9fecc705924c4dc1d8d104338afc0e2437e (diff)
parent9fcf1dbf7567ec9afb6287dce09eaf88800fbaf5 (diff)
downloadoslo-db-2849f1bdca0c39b342d434c06cdc23dc6cf946f4.tar.gz
Merge "Fixup Fixtures Use in db test classes."1.0.1
-rw-r--r--oslo/db/sqlalchemy/test_base.py47
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'