From: Cedric Brandily Date: Tue, 9 Jun 2015 16:00:58 +0000 (+0000) Subject: Ensure no "db" related functional/fullstack tests are skipped in the gate X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=b370c69b75fe38cd285512f9516ce428e8a806dd;p=openstack-build%2Fneutron-build.git 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 --- diff --git a/neutron/tests/common/base.py b/neutron/tests/common/base.py index d1541a639..8c89f9be7 100644 --- a/neutron/tests/common/base.py +++ b/neutron/tests/common/base.py @@ -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') diff --git a/neutron/tests/functional/db/test_ipam.py b/neutron/tests/functional/db/test_ipam.py index c8cb98212..02dcd2078 100644 --- a/neutron/tests/functional/db/test_ipam.py +++ b/neutron/tests/functional/db/test_ipam.py @@ -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): diff --git a/neutron/tests/functional/db/test_migrations.py b/neutron/tests/functional/db/test_migrations.py index a7a9b3868..ad3fd8595 100644 --- a/neutron/tests/functional/db/test_migrations.py +++ b/neutron/tests/functional/db/test_migrations.py @@ -214,7 +214,7 @@ class TestModelsMigrationsMysql(_TestModelsMigrations, class TestModelsMigrationsPsql(_TestModelsMigrations, - test_base.PostgreSQLOpportunisticTestCase): + base.PostgreSQLTestCase): pass