Ensure no "db" related functional/fullstack tests are skipped in the gate

Currently neutron uses MySQLTestCase[1] and
PostgreSQLOpportunisticTestCase[2] for functional and fullstack tests
using a real MySQL/PostgreSQL database. These classes skip tests when
the db is unavailable (db not installed/configured, missing packages,
etc.) which is fine when tests are runned by developers but not when
runned by the gate jobs.

This change updates MySQLTestCase[1] and defines PostgreSQLTestCase[1]
as PostgreSQL oslo.db test class wrapper: when the db is unavailable,
these classes ensure tests will:

* fail in the gate (dsvm-functional, dsvm-fullstack jobs),
* be skipped by default otherwise (functional, fullstack jobs).

[1] neutron.tests.common.base
[2] oslo_db.sqlalchemy.test_base

Closes-Bug: #1404093
Change-Id: I77b12e728ce9a7b0222c3df081842635f6375a3e
This commit is contained in:
Cedric Brandily 2015-06-09 16:00:58 +00:00
parent 278a5fce29
commit b370c69b75
3 changed files with 14 additions and 3 deletions

View File

@ -110,5 +110,17 @@ class MySQLTestCase(test_base.DbTestCase):
"""Base test class for MySQL tests.
Enforce the supported driver, which is PyMySQL.
If the MySQL db is unavailable then this test is skipped, unless
OS_FAIL_ON_MISSING_DEPS is enabled.
"""
FIXTURE = PyMySQLFixture
SKIP_ON_UNAVAILABLE_DB = not base.bool_from_env('OS_FAIL_ON_MISSING_DEPS')
class PostgreSQLTestCase(test_base.PostgreSQLOpportunisticTestCase):
"""Base test class for PostgreSQL tests.
If the PostgreSQL db is unavailable then this test is skipped, unless
OS_FAIL_ON_MISSING_DEPS is enabled.
"""
SKIP_ON_UNAVAILABLE_DB = not base.bool_from_env('OS_FAIL_ON_MISSING_DEPS')

View File

@ -15,7 +15,6 @@
from oslo_config import cfg
from oslo_db.sqlalchemy import session
from oslo_db.sqlalchemy import test_base
import testtools
from neutron.api.v2 import attributes
@ -214,7 +213,7 @@ class TestIpamMySql(common_base.MySQLTestCase, base.BaseTestCase,
self.configure_test()
class TestIpamPsql(test_base.PostgreSQLOpportunisticTestCase,
class TestIpamPsql(common_base.PostgreSQLTestCase,
base.BaseTestCase, IpamTestCase):
def setUp(self):

View File

@ -214,7 +214,7 @@ class TestModelsMigrationsMysql(_TestModelsMigrations,
class TestModelsMigrationsPsql(_TestModelsMigrations,
test_base.PostgreSQLOpportunisticTestCase):
base.PostgreSQLTestCase):
pass