summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Brandily <zzelle@gmail.com>2015-06-02 19:48:25 +0200
committerCedric Brandily <zzelle@gmail.com>2015-06-04 16:16:34 +0200
commit42de3f6b49f1e51ee9deba585d782ca12e3483dd (patch)
tree60fe25e0e8a719a1cdbc627a92dbb2d341f4ed38
parent42dc93608f527406534ea8b10a76556eb92fd9dd (diff)
downloadoslo-db-42de3f6b49f1e51ee9deba585d782ca12e3483dd.tar.gz
Allow to fail instead of skip in DbFixture
Tests using DbFixture[1] are currently skipped if the database is unavailable (no db service, no permissions, etc.) which is fine when tests are runned by developers but not when runned by the gate jobs. This change defines the attribute DbFixture.SKIP_ON_UNAVAILABLE_DB: when the database is unvailable, tests are: * skipped when SKIP_ON_UNAVAILABLE_DB=True (default, legacy behaviour), * failed when SKIP_ON_UNAVAILABLE_DB=False. [1] oslo.db.sqlalchemy.test_base Change-Id: I067f46417fefe252c650e1e5e590e83547b11b6a Closes-Bug: #1404093
-rw-r--r--oslo_db/sqlalchemy/test_base.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/oslo_db/sqlalchemy/test_base.py b/oslo_db/sqlalchemy/test_base.py
index fbe25a8..8cab2ac 100644
--- a/oslo_db/sqlalchemy/test_base.py
+++ b/oslo_db/sqlalchemy/test_base.py
@@ -49,9 +49,10 @@ class DbFixture(fixtures.Fixture):
# are referring to them directly.
DBNAME = PASSWORD = USERNAME = 'openstack_citest'
- def __init__(self, test):
+ def __init__(self, test, skip_on_unavailable_db=True):
super(DbFixture, self).__init__()
self.test = test
+ self.skip_on_unavailable_db = skip_on_unavailable_db
def setUp(self):
super(DbFixture, self).setUp()
@@ -63,7 +64,11 @@ class DbFixture(fixtures.Fixture):
self.test, self.test.resources, testresources._get_result()
)
if not hasattr(self.test, 'db'):
- self.test.skip("database '%s' unavailable" % self.DRIVER)
+ msg = "database '%s' unavailable" % self.DRIVER
+ if self.skip_on_unavailable_db:
+ self.test.skip(msg)
+ else:
+ self.test.fail(msg)
if self.test.SCHEMA_SCOPE:
self.test.engine = self.test.transaction_engine
@@ -83,6 +88,7 @@ class DbTestCase(test_base.BaseTestCase):
FIXTURE = DbFixture
SCHEMA_SCOPE = None
+ SKIP_ON_UNAVAILABLE_DB = True
_schema_resources = {}
_database_resources = {}
@@ -144,7 +150,9 @@ class DbTestCase(test_base.BaseTestCase):
def setUp(self):
super(DbTestCase, self).setUp()
- self.useFixture(self.FIXTURE(self))
+ self.useFixture(
+ self.FIXTURE(
+ self, skip_on_unavailable_db=self.SKIP_ON_UNAVAILABLE_DB))
def generate_schema(self, engine):
"""Generate schema objects to be used within a test.