diff options
author | Cedric Brandily <zzelle@gmail.com> | 2015-06-02 19:48:25 +0200 |
---|---|---|
committer | Cedric Brandily <zzelle@gmail.com> | 2015-06-04 16:16:34 +0200 |
commit | 42de3f6b49f1e51ee9deba585d782ca12e3483dd (patch) | |
tree | 60fe25e0e8a719a1cdbc627a92dbb2d341f4ed38 | |
parent | 42dc93608f527406534ea8b10a76556eb92fd9dd (diff) | |
download | oslo-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.py | 14 |
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. |