diff --git a/neutron/db/api.py b/neutron/db/api.py index 3749081f0..777c2b6ee 100644 --- a/neutron/db/api.py +++ b/neutron/db/api.py @@ -15,14 +15,6 @@ from oslo.config import cfg from oslo.db.sqlalchemy import session -import sqlalchemy as sql - -from neutron.db import model_base -from neutron.openstack.common import log as logging - -LOG = logging.getLogger(__name__) - -BASE = model_base.BASEV2 _FACADE = None @@ -36,19 +28,6 @@ def _create_facade_lazily(): return _FACADE -def configure_db(): - """Configure database. - - Establish the database, create an engine if needed, and register - the models. - """ - register_models() - - -def clear_db(base=BASE): - unregister_models(base) - - def get_engine(): """Helper method to grab engine.""" facade = _create_facade_lazily() @@ -60,25 +39,3 @@ def get_session(autocommit=True, expire_on_commit=False): facade = _create_facade_lazily() return facade.get_session(autocommit=autocommit, expire_on_commit=expire_on_commit) - - -def register_models(base=BASE): - """Register Models and create properties.""" - try: - facade = _create_facade_lazily() - engine = facade.get_engine() - base.metadata.create_all(engine) - except sql.exc.OperationalError as e: - LOG.info(_("Database registration exception: %s"), e) - return False - return True - - -def unregister_models(base=BASE): - """Unregister Models, useful clearing out data before testing.""" - try: - facade = _create_facade_lazily() - engine = facade.get_engine() - base.metadata.drop_all(engine) - except Exception: - LOG.exception(_("Database exception")) diff --git a/neutron/db/db_base_plugin_v2.py b/neutron/db/db_base_plugin_v2.py index 1c8113929..34e3b1b49 100644 --- a/neutron/db/db_base_plugin_v2.py +++ b/neutron/db/db_base_plugin_v2.py @@ -27,7 +27,6 @@ from neutron.common import constants from neutron.common import exceptions as n_exc from neutron.common import ipv6_utils from neutron import context as ctx -from neutron.db import api as db from neutron.db import common_db_mixin from neutron.db import models_v2 from neutron.db import sqlalchemyutils @@ -70,7 +69,6 @@ class NeutronDbPluginV2(neutron_plugin_base_v2.NeutronPluginBaseV2, __native_sorting_support = True def __init__(self): - db.configure_db() if cfg.CONF.notify_nova_on_port_status_changes: from neutron.notifiers import nova # NOTE(arosen) These event listeners are here to hook into when diff --git a/neutron/db/metering/metering_db.py b/neutron/db/metering/metering_db.py index aad24dc4d..3eb701f2a 100644 --- a/neutron/db/metering/metering_db.py +++ b/neutron/db/metering/metering_db.py @@ -21,7 +21,6 @@ from sqlalchemy import sql from neutron.api.rpc.agentnotifiers import metering_rpc_agent_api from neutron.common import constants -from neutron.db import api as dbapi from neutron.db import common_db_mixin as base_db from neutron.db import l3_db from neutron.db import model_base @@ -61,8 +60,6 @@ class MeteringDbMixin(metering.MeteringPluginBase, base_db.CommonDbMixin): def __init__(self): - dbapi.register_models() - self.meter_rpc = metering_rpc_agent_api.MeteringAgentNotifyAPI() def _make_metering_label_dict(self, metering_label, fields=None): diff --git a/neutron/db/migration/alembic_migrations/common_ext_ops.py b/neutron/db/migration/alembic_migrations/common_ext_ops.py index 5663ff228..bb34e564a 100644 --- a/neutron/db/migration/alembic_migrations/common_ext_ops.py +++ b/neutron/db/migration/alembic_migrations/common_ext_ops.py @@ -59,10 +59,7 @@ def upgrade_l3(): ) -def upgrade_quota(options=None): - if not (options or {}).get('folsom_quota_db_enabled'): - return - +def upgrade_quota(): op.create_table( 'quotas', sa.Column('id', sa.String(length=36), nullable=False), @@ -78,6 +75,5 @@ def downgrade_l3(): op.drop_table(table) -def downgrade_quota(options=None): - if (options or {}).get('folsom_quota_db_enabled'): - op.drop_table('quotas') +def downgrade_quota(): + op.drop_table('quotas') diff --git a/neutron/db/migration/alembic_migrations/env.py b/neutron/db/migration/alembic_migrations/env.py index 0c659866e..db20ce912 100644 --- a/neutron/db/migration/alembic_migrations/env.py +++ b/neutron/db/migration/alembic_migrations/env.py @@ -27,8 +27,6 @@ from neutron.openstack.common import importutils MYSQL_ENGINE = None -DATABASE_QUOTA_DRIVER = 'neutron.extensions._quotav2_driver.DbQuotaDriver' - # this is the Alembic Config object, which provides # access to the values within the .ini file in use. config = context.config @@ -118,11 +116,7 @@ def run_migrations_online(): def build_options(): - return {'folsom_quota_db_enabled': is_db_quota_enabled()} - - -def is_db_quota_enabled(): - return neutron_config.QUOTAS.quota_driver == DATABASE_QUOTA_DRIVER + return if context.is_offline_mode(): diff --git a/neutron/db/migration/alembic_migrations/versions/folsom_initial.py b/neutron/db/migration/alembic_migrations/versions/folsom_initial.py index 3e1487031..0ea611222 100644 --- a/neutron/db/migration/alembic_migrations/versions/folsom_initial.py +++ b/neutron/db/migration/alembic_migrations/versions/folsom_initial.py @@ -83,7 +83,7 @@ def upgrade(active_plugins=None, options=None): common_ext_ops.upgrade_l3() if migration.should_run(active_plugins, FOLSOM_QUOTA): - common_ext_ops.upgrade_quota(options) + common_ext_ops.upgrade_quota() if PLUGINS['lbr'] in active_plugins: upgrade_linuxbridge() @@ -484,7 +484,7 @@ def downgrade(active_plugins=None, options=None): downgrade_linuxbridge() if migration.should_run(active_plugins, FOLSOM_QUOTA): - common_ext_ops.downgrade_quota(options) + common_ext_ops.downgrade_quota() if migration.should_run(active_plugins, L3_CAPABLE): common_ext_ops.downgrade_l3() diff --git a/neutron/db/servicetype_db.py b/neutron/db/servicetype_db.py index 9bb12ac67..6dae9b762 100644 --- a/neutron/db/servicetype_db.py +++ b/neutron/db/servicetype_db.py @@ -18,9 +18,7 @@ import sqlalchemy as sa -from neutron.db import api as db from neutron.db import model_base -from neutron.db import models_v2 from neutron.openstack.common import log as logging from neutron.services import provider_configuration as pconf @@ -47,13 +45,8 @@ class ServiceTypeManager(object): return cls._instance def __init__(self): - self._initialize_db() self._load_conf() - def _initialize_db(self): - db.configure_db() - db.register_models(models_v2.model_base.BASEV2) - def _load_conf(self): self.conf = pconf.ProviderConfiguration( pconf.parse_service_provider_opt()) diff --git a/neutron/db/vpn/vpn_db.py b/neutron/db/vpn/vpn_db.py index 1af84b5f6..e8aeee8c1 100644 --- a/neutron/db/vpn/vpn_db.py +++ b/neutron/db/vpn/vpn_db.py @@ -21,7 +21,6 @@ from sqlalchemy import orm from sqlalchemy.orm import exc from neutron.common import constants as n_constants -from neutron.db import api as qdbapi from neutron.db import common_db_mixin as base_db from neutron.db import l3_agentschedulers_db as l3_agent_db from neutron.db import l3_db @@ -162,10 +161,6 @@ class VPNService(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant): class VPNPluginDb(vpnaas.VPNPluginBase, base_db.CommonDbMixin): """VPN plugin database class using SQLAlchemy models.""" - def __init__(self): - """Do the initialization for the vpn service plugin here.""" - qdbapi.register_models() - def _get_validator(self): """Obtain validator to use for attribute validation. diff --git a/neutron/plugins/cisco/db/network_db_v2.py b/neutron/plugins/cisco/db/network_db_v2.py index e7adf1a92..53cfb17aa 100644 --- a/neutron/plugins/cisco/db/network_db_v2.py +++ b/neutron/plugins/cisco/db/network_db_v2.py @@ -22,9 +22,6 @@ from neutron.openstack.common import uuidutils from neutron.plugins.cisco.common import cisco_constants as const from neutron.plugins.cisco.common import cisco_exceptions as c_exc from neutron.plugins.cisco.db import network_models_v2 -# Do NOT remove this import. It is required for all the models to be seen -# by db.initialize() when called from VirtualPhysicalSwitchModelV2.__init__. -from neutron.plugins.cisco.db import nexus_models_v2 # noqa from neutron.plugins.openvswitch import ovs_models_v2 diff --git a/neutron/plugins/cisco/models/virt_phy_sw_v2.py b/neutron/plugins/cisco/models/virt_phy_sw_v2.py index 619c00626..53fd6e211 100644 --- a/neutron/plugins/cisco/models/virt_phy_sw_v2.py +++ b/neutron/plugins/cisco/models/virt_phy_sw_v2.py @@ -21,7 +21,6 @@ import inspect import sys from neutron.api.v2 import attributes -from neutron.db import api as db_api from neutron.extensions import portbindings from neutron.extensions import providernet as provider from neutron import neutron_plugin_base_v2 @@ -78,11 +77,6 @@ class VirtualPhysicalSwitchModelV2(neutron_plugin_base_v2.NeutronPluginBaseV2): self.supported_extension_aliases.extend( self._plugins[const.VSWITCH_PLUGIN]. supported_extension_aliases) - # At this point, all the database models should have been loaded. It's - # possible that configure_db() may have been called by one of the - # plugins loaded in above. Otherwise, this call is to make sure that - # the database is initialized - db_api.configure_db() # Initialize credential store after database initialization cred.Store.initialize() diff --git a/neutron/plugins/hyperv/db.py b/neutron/plugins/hyperv/db.py index 276b0c38f..e3a88dc0e 100644 --- a/neutron/plugins/hyperv/db.py +++ b/neutron/plugins/hyperv/db.py @@ -28,8 +28,6 @@ LOG = logging.getLogger(__name__) class HyperVPluginDB(object): - def initialize(self): - db_api.configure_db() def reserve_vlan(self, session): with session.begin(subtransactions=True): diff --git a/neutron/plugins/hyperv/hyperv_neutron_plugin.py b/neutron/plugins/hyperv/hyperv_neutron_plugin.py index 765f65bbd..302f05e2a 100644 --- a/neutron/plugins/hyperv/hyperv_neutron_plugin.py +++ b/neutron/plugins/hyperv/hyperv_neutron_plugin.py @@ -157,7 +157,6 @@ class HyperVNeutronPlugin(agents_db.AgentDbMixin, def __init__(self, configfile=None): self._db = hyperv_db.HyperVPluginDB() - self._db.initialize() self.base_binding_dict = { portbindings.VIF_TYPE: portbindings.VIF_TYPE_HYPERV} portbindings_base.register_port_dict_function() diff --git a/neutron/plugins/metaplugin/meta_neutron_plugin.py b/neutron/plugins/metaplugin/meta_neutron_plugin.py index 97a460823..5adc86087 100644 --- a/neutron/plugins/metaplugin/meta_neutron_plugin.py +++ b/neutron/plugins/metaplugin/meta_neutron_plugin.py @@ -18,7 +18,6 @@ from oslo.config import cfg from neutron.common import exceptions as exc from neutron.common import topics from neutron import context as neutron_context -from neutron.db import api as db from neutron.db import db_base_plugin_v2 from neutron.db import external_net_db from neutron.db import extraroute_db @@ -85,9 +84,6 @@ class MetaPluginV2(db_base_plugin_v2.NeutronDbPluginV2, cfg._is_opt_registered = _is_opt_registered - # Keep existing tables if multiple plugin use same table name. - db.model_base.NeutronBase.__table_args__ = {'keep_existing': True} - self.plugins = {} plugin_list = [plugin_set.split(':') diff --git a/neutron/plugins/nec/db/api.py b/neutron/plugins/nec/db/api.py index ddd53ba5f..02cb79491 100644 --- a/neutron/plugins/nec/db/api.py +++ b/neutron/plugins/nec/db/api.py @@ -16,7 +16,6 @@ import sqlalchemy as sa from neutron.db import api as db -from neutron.db import model_base from neutron.db import models_v2 from neutron.db import securitygroups_db as sg_db from neutron.extensions import securitygroup as ext_sg @@ -44,10 +43,6 @@ def _get_resource_model(resource): return resource_map[resource] -def clear_db(base=model_base.BASEV2): - db.clear_db(base) - - def get_ofc_item(session, resource, neutron_id): model = _get_resource_model(resource) if not model: diff --git a/neutron/services/firewall/fwaas_plugin.py b/neutron/services/firewall/fwaas_plugin.py index 5c8d04c77..eeb70642a 100644 --- a/neutron/services/firewall/fwaas_plugin.py +++ b/neutron/services/firewall/fwaas_plugin.py @@ -21,7 +21,6 @@ from neutron.common import exceptions as n_exception from neutron.common import rpc as n_rpc from neutron.common import topics from neutron import context as neutron_context -from neutron.db import api as qdbapi from neutron.db.firewall import firewall_db from neutron.extensions import firewall as fw_ext from neutron.openstack.common import log as logging @@ -155,7 +154,6 @@ class FirewallPlugin(firewall_db.Firewall_db_mixin): def __init__(self): """Do the initialization for the firewall service plugin here.""" - qdbapi.register_models() self.endpoints = [FirewallCallbacks(self)] diff --git a/neutron/services/l3_router/l3_apic.py b/neutron/services/l3_router/l3_apic.py index 54c202ecb..3405ad651 100644 --- a/neutron/services/l3_router/l3_apic.py +++ b/neutron/services/l3_router/l3_apic.py @@ -15,11 +15,9 @@ # # @author: Arvind Somya (asomya@cisco.com), Cisco Systems Inc. -from neutron.db import api as qdbapi from neutron.db import db_base_plugin_v2 from neutron.db import extraroute_db from neutron.db import l3_gwmode_db -from neutron.db import model_base from neutron.openstack.common import excutils from neutron.openstack.common import log as logging from neutron.plugins.common import constants @@ -41,7 +39,6 @@ class ApicL3ServicePlugin(db_base_plugin_v2.NeutronDbPluginV2, def __init__(self): super(ApicL3ServicePlugin, self).__init__() - qdbapi.register_models(base=model_base.BASEV2) self.manager = apic_manager.APICManager() @staticmethod diff --git a/neutron/services/l3_router/l3_router_plugin.py b/neutron/services/l3_router/l3_router_plugin.py index 0faa54e4e..1fa763c82 100644 --- a/neutron/services/l3_router/l3_router_plugin.py +++ b/neutron/services/l3_router/l3_router_plugin.py @@ -21,14 +21,12 @@ from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api from neutron.common import constants as q_const from neutron.common import rpc as n_rpc from neutron.common import topics -from neutron.db import api as qdbapi from neutron.db import common_db_mixin from neutron.db import extraroute_db from neutron.db import l3_dvr_db from neutron.db import l3_dvrscheduler_db from neutron.db import l3_gwmode_db from neutron.db import l3_rpc_base -from neutron.db import model_base from neutron.openstack.common import importutils from neutron.plugins.common import constants @@ -61,7 +59,6 @@ class L3RouterPlugin(common_db_mixin.CommonDbMixin, "extraroute", "l3_agent_scheduler"] def __init__(self): - qdbapi.register_models(base=model_base.BASEV2) self.setup_rpc() self.router_scheduler = importutils.import_object( cfg.CONF.router_scheduler_driver) diff --git a/neutron/services/loadbalancer/drivers/embrane/db.py b/neutron/services/loadbalancer/drivers/embrane/db.py index 005fbe09a..2e5c9e1d9 100644 --- a/neutron/services/loadbalancer/drivers/embrane/db.py +++ b/neutron/services/loadbalancer/drivers/embrane/db.py @@ -15,15 +15,10 @@ # # @author: Ivar Lazzaro, Embrane, Inc. ivar@embrane.com -import neutron.db.api as db from neutron.db import models_v2 as nmodel from neutron.services.loadbalancer.drivers.embrane import models -def initialize(): - db.configure_db() - - def add_pool_port(context, pool_id, port_id): session = context.session with session.begin(subtransactions=True): diff --git a/neutron/services/loadbalancer/drivers/embrane/driver.py b/neutron/services/loadbalancer/drivers/embrane/driver.py index a230587ff..a6a09fd91 100644 --- a/neutron/services/loadbalancer/drivers/embrane/driver.py +++ b/neutron/services/loadbalancer/drivers/embrane/driver.py @@ -56,7 +56,6 @@ def get_conf(x): class EmbraneLbaas(abstract_driver.LoadBalancerAbstractDriver): def __init__(self, plugin): - edb.initialize() config_esm_mgmt = get_conf('esm_mgmt') config_admin_username = get_conf('admin_username') config_admin_password = get_conf('admin_password') diff --git a/neutron/services/loadbalancer/plugin.py b/neutron/services/loadbalancer/plugin.py index 4e992e085..6951f1e17 100644 --- a/neutron/services/loadbalancer/plugin.py +++ b/neutron/services/loadbalancer/plugin.py @@ -18,7 +18,6 @@ from neutron.api.v2 import attributes as attrs from neutron.common import exceptions as n_exc from neutron import context -from neutron.db import api as qdbapi from neutron.db.loadbalancer import loadbalancer_db as ldb from neutron.db import servicetype_db as st_db from neutron.extensions import loadbalancer @@ -52,7 +51,6 @@ class LoadBalancerPlugin(ldb.LoadBalancerPluginDb, def __init__(self): """Initialization for the loadbalancer service plugin.""" - qdbapi.register_models() self.service_type_manager = st_db.ServiceTypeManager.get_instance() self._load_drivers() diff --git a/neutron/tests/unit/bigswitch/test_base.py b/neutron/tests/unit/bigswitch/test_base.py index 2a7922316..e74024c7c 100644 --- a/neutron/tests/unit/bigswitch/test_base.py +++ b/neutron/tests/unit/bigswitch/test_base.py @@ -20,15 +20,9 @@ import mock from oslo.config import cfg import neutron.common.test_lib as test_lib -from neutron.db import api as db from neutron.plugins.bigswitch import config from neutron.tests.unit.bigswitch import fake_server -# REVISIT(kevinbenton): This needs to be imported here to create the -# portbindings table since it's not imported until function call time -# in the porttracker_db module, which will cause unit test failures when -# the unit tests are being run by testtools -from neutron.db import portbindings_db # noqa RESTPROXY_PKG_PATH = 'neutron.plugins.bigswitch.plugin' NOTIFIER = 'neutron.plugins.bigswitch.plugin.AgentNotifierApi' @@ -62,7 +56,6 @@ class BigSwitchTestBase(object): self.spawn_p = mock.patch(SPAWN, new=lambda *args, **kwargs: None) # prevent the consistency watchdog from starting self.watch_p = mock.patch(CWATCH, new=lambda *args, **kwargs: None) - self.addCleanup(db.clear_db) self.plugin_notifier_p.start() self.spawn_p.start() self.watch_p.start() diff --git a/neutron/tests/unit/brocade/test_brocade_vlan.py b/neutron/tests/unit/brocade/test_brocade_vlan.py index 144f4bb0a..09d030767 100644 --- a/neutron/tests/unit/brocade/test_brocade_vlan.py +++ b/neutron/tests/unit/brocade/test_brocade_vlan.py @@ -21,16 +21,14 @@ Test vlans alloc/dealloc. from neutron.db import api as db from neutron.openstack.common import context from neutron.plugins.brocade import vlanbm as vlan_bitmap -from neutron.tests import base +from neutron.tests.unit import testlib_api -class TestVlanBitmap(base.BaseTestCase): +class TestVlanBitmap(testlib_api.SqlTestCase): """exercise Vlan bitmap .""" def setUp(self): super(TestVlanBitmap, self).setUp() - db.configure_db() - self.addCleanup(db.clear_db) self.context = context.get_admin_context() self.context.session = db.get_session() diff --git a/neutron/tests/unit/cisco/n1kv/test_n1kv_db.py b/neutron/tests/unit/cisco/n1kv/test_n1kv_db.py index ea8d99c32..dcbb92332 100644 --- a/neutron/tests/unit/cisco/n1kv/test_n1kv_db.py +++ b/neutron/tests/unit/cisco/n1kv/test_n1kv_db.py @@ -28,8 +28,8 @@ from neutron.plugins.cisco.common import cisco_constants as c_const from neutron.plugins.cisco.common import cisco_exceptions as c_exc from neutron.plugins.cisco.db import n1kv_db_v2 from neutron.plugins.cisco.db import n1kv_models_v2 -from neutron.tests import base from neutron.tests.unit import test_db_plugin as test_plugin +from neutron.tests.unit import testlib_api PHYS_NET = 'physnet1' @@ -91,15 +91,13 @@ def _create_test_policy_profile_if_not_there(session, return _profile -class VlanAllocationsTest(base.BaseTestCase): +class VlanAllocationsTest(testlib_api.SqlTestCase): def setUp(self): super(VlanAllocationsTest, self).setUp() - db.configure_db() self.session = db.get_session() self.net_p = _create_test_network_profile_if_not_there(self.session) n1kv_db_v2.sync_vlan_allocations(self.session, self.net_p) - self.addCleanup(db.clear_db) def test_sync_vlan_allocations_outside_segment_range(self): self.assertRaises(c_exc.VlanIDNotFound, @@ -205,17 +203,15 @@ class VlanAllocationsTest(base.BaseTestCase): vlan_id) -class VxlanAllocationsTest(base.BaseTestCase, +class VxlanAllocationsTest(testlib_api.SqlTestCase, n1kv_db_v2.NetworkProfile_db_mixin): def setUp(self): super(VxlanAllocationsTest, self).setUp() - db.configure_db() self.session = db.get_session() self.net_p = _create_test_network_profile_if_not_there( self.session, TEST_NETWORK_PROFILE_VXLAN) n1kv_db_v2.sync_vxlan_allocations(self.session, self.net_p) - self.addCleanup(db.clear_db) def test_sync_vxlan_allocations_outside_segment_range(self): self.assertRaises(c_exc.VxlanIDNotFound, @@ -296,9 +292,7 @@ class NetworkBindingsTest(test_plugin.NeutronDbPluginV2TestCase): def setUp(self): super(NetworkBindingsTest, self).setUp() - db.configure_db() self.session = db.get_session() - self.addCleanup(db.clear_db) def test_add_network_binding(self): with self.network() as network: @@ -547,14 +541,12 @@ class NetworkBindingsTest(test_plugin.NeutronDbPluginV2TestCase): self.assertEqual(t_members, []) -class NetworkProfileTests(base.BaseTestCase, +class NetworkProfileTests(testlib_api.SqlTestCase, n1kv_db_v2.NetworkProfile_db_mixin): def setUp(self): super(NetworkProfileTests, self).setUp() - db.configure_db() self.session = db.get_session() - self.addCleanup(db.clear_db) def test_create_network_profile(self): _db_profile = n1kv_db_v2.create_network_profile(self.session, @@ -731,13 +723,11 @@ class NetworkProfileTests(base.BaseTestCase, self.assertEqual(len(test_profiles), len(list(profiles))) -class PolicyProfileTests(base.BaseTestCase): +class PolicyProfileTests(testlib_api.SqlTestCase): def setUp(self): super(PolicyProfileTests, self).setUp() - db.configure_db() self.session = db.get_session() - self.addCleanup(db.clear_db) def test_create_policy_profile(self): _db_profile = n1kv_db_v2.create_policy_profile(TEST_POLICY_PROFILE) @@ -775,15 +765,13 @@ class PolicyProfileTests(base.BaseTestCase): self.assertEqual(profile.name, got_profile.name) -class ProfileBindingTests(base.BaseTestCase, +class ProfileBindingTests(testlib_api.SqlTestCase, n1kv_db_v2.NetworkProfile_db_mixin, common_db_mixin.CommonDbMixin): def setUp(self): super(ProfileBindingTests, self).setUp() - db.configure_db() self.session = db.get_session() - self.addCleanup(db.clear_db) def _create_test_binding_if_not_there(self, tenant_id, profile_id, profile_type): diff --git a/neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py b/neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py index cbe4d4683..ef08e0354 100644 --- a/neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py +++ b/neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py @@ -213,7 +213,6 @@ class N1kvPluginTestCase(test_plugin.NeutronDbPluginV2TestCase): attributes.RESOURCE_ATTRIBUTE_MAP["ports"].update( n1kv.EXTENDED_ATTRIBUTES_2_0["ports"]) self.addCleanup(self.restore_resource_attribute_map) - self.addCleanup(db.clear_db) super(N1kvPluginTestCase, self).setUp(self._plugin_name, ext_mgr=ext_mgr) # Create some of the database entries that we require. diff --git a/neutron/tests/unit/cisco/test_network_db.py b/neutron/tests/unit/cisco/test_network_db.py index 931f85b5b..a07c22e82 100644 --- a/neutron/tests/unit/cisco/test_network_db.py +++ b/neutron/tests/unit/cisco/test_network_db.py @@ -17,23 +17,21 @@ import collections import mock import testtools -from neutron.db import api as db from neutron.plugins.cisco.common import cisco_constants from neutron.plugins.cisco.common import cisco_credentials_v2 from neutron.plugins.cisco.common import cisco_exceptions as c_exc from neutron.plugins.cisco.common import config as config from neutron.plugins.cisco.db import network_db_v2 as cdb from neutron.plugins.cisco import network_plugin -from neutron.tests import base +from neutron.tests.unit import testlib_api -class CiscoNetworkDbTest(base.BaseTestCase): +class CiscoNetworkDbTest(testlib_api.SqlTestCase): """Base class for Cisco network database unit tests.""" def setUp(self): super(CiscoNetworkDbTest, self).setUp() - db.configure_db() # The Cisco network plugin includes a thin layer of QoS and # credential API methods which indirectly call Cisco QoS and @@ -47,8 +45,6 @@ class CiscoNetworkDbTest(base.BaseTestCase): '__init__', new=new_network_plugin_init): self._network_plugin = network_plugin.PluginV2() - self.addCleanup(db.clear_db) - class CiscoNetworkQosDbTest(CiscoNetworkDbTest): @@ -290,15 +286,10 @@ class CiscoNetworkCredentialDbTest(CiscoNetworkDbTest): cdb.get_credential, cred_n1kv_2_id) -class CiscoCredentialStoreTest(base.BaseTestCase): +class CiscoCredentialStoreTest(testlib_api.SqlTestCase): """Cisco Credential Store unit tests.""" - def setUp(self): - super(CiscoCredentialStoreTest, self).setUp() - db.configure_db() - self.addCleanup(db.clear_db) - def test_cred_store_init_duplicate_creds_ignored(self): """Check that with multi store instances, dup creds are ignored.""" # Create a device dictionary containing credentials for 1 switch. diff --git a/neutron/tests/unit/cisco/test_nexus_db.py b/neutron/tests/unit/cisco/test_nexus_db.py index 49b3dce50..2d7ba213b 100644 --- a/neutron/tests/unit/cisco/test_nexus_db.py +++ b/neutron/tests/unit/cisco/test_nexus_db.py @@ -22,10 +22,10 @@ from neutron.plugins.cisco.common import cisco_exceptions as c_exc from neutron.plugins.cisco.common import config from neutron.plugins.cisco.db import nexus_db_v2 as nxdb from neutron.plugins.cisco.nexus import cisco_nexus_plugin_v2 -from neutron.tests import base +from neutron.tests.unit import testlib_api -class CiscoNexusDbTest(base.BaseTestCase): +class CiscoNexusDbTest(testlib_api.SqlTestCase): """Unit tests for cisco.db.nexus_models_v2.NexusPortBinding model.""" @@ -33,9 +33,7 @@ class CiscoNexusDbTest(base.BaseTestCase): def setUp(self): super(CiscoNexusDbTest, self).setUp() - db.configure_db() self.session = db.get_session() - self.addCleanup(db.clear_db) def _npb_test_obj(self, pnum, vnum, switch=None, instance=None): """Create a Nexus port binding test object from a pair of numbers.""" diff --git a/neutron/tests/unit/cisco/test_nexus_plugin.py b/neutron/tests/unit/cisco/test_nexus_plugin.py index 6cf54ab84..4262b8187 100644 --- a/neutron/tests/unit/cisco/test_nexus_plugin.py +++ b/neutron/tests/unit/cisco/test_nexus_plugin.py @@ -18,7 +18,6 @@ import mock from oslo.config import cfg -from neutron.db import api as db from neutron.extensions import providernet as provider from neutron.openstack.common import importutils from neutron.plugins.cisco.common import cisco_constants as const @@ -26,8 +25,7 @@ from neutron.plugins.cisco.common import cisco_exceptions as cisco_exc from neutron.plugins.cisco.common import config as cisco_config from neutron.plugins.cisco.db import network_db_v2 as cdb from neutron.plugins.cisco.nexus import cisco_nexus_plugin_v2 -from neutron.tests import base - +from neutron.tests.unit import testlib_api NEXUS_IP_ADDRESS = '1.1.1.1' HOSTNAME1 = 'testhost1' @@ -50,7 +48,7 @@ NET_ATTRS = [const.NET_ID, const.NET_VLAN_ID] -class TestCiscoNexusPlugin(base.BaseTestCase): +class TestCiscoNexusPlugin(testlib_api.SqlTestCase): def setUp(self): """Set up function.""" @@ -144,9 +142,7 @@ class TestCiscoNexusPlugin(base.BaseTestCase): 'password': 'password' }, } - db.configure_db() - self.addCleanup(db.clear_db) # Use a mock netconf client self.mock_ncclient = mock.Mock() diff --git a/neutron/tests/unit/cisco/test_plugin_model.py b/neutron/tests/unit/cisco/test_plugin_model.py index fa87a5010..7a99d30b5 100755 --- a/neutron/tests/unit/cisco/test_plugin_model.py +++ b/neutron/tests/unit/cisco/test_plugin_model.py @@ -22,10 +22,10 @@ from neutron.plugins.cisco.common import cisco_constants as const from neutron.plugins.cisco.common import config as cisco_config from neutron.plugins.cisco.models import virt_phy_sw_v2 from neutron.plugins.cisco.nexus import cisco_nexus_plugin_v2 -from neutron.tests import base +from neutron.tests.unit import testlib_api -class TestCiscoPluginModel(base.BaseTestCase): +class TestCiscoPluginModel(testlib_api.SqlTestCase): def setUp(self): # Point config file to: neutron/tests/etc/neutron.conf.test diff --git a/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py b/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py index b47d61167..68aa517ae 100644 --- a/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py +++ b/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py @@ -24,7 +24,6 @@ from neutron.api import extensions from neutron.common import config from neutron.common import exceptions as n_exc from neutron import context -import neutron.db.l3_db # noqa from neutron.db.loadbalancer import loadbalancer_db as ldb from neutron.db import servicetype_db as sdb import neutron.extensions diff --git a/neutron/tests/unit/db/test_agent_db.py b/neutron/tests/unit/db/test_agent_db.py index 5f726f40e..529cd85b8 100644 --- a/neutron/tests/unit/db/test_agent_db.py +++ b/neutron/tests/unit/db/test_agent_db.py @@ -18,22 +18,20 @@ from oslo.db import exception as exc from neutron import context from neutron.db import agents_db -from neutron.db import api as db from neutron.db import db_base_plugin_v2 as base_plugin -from neutron.tests import base +from neutron.tests.unit import testlib_api class FakePlugin(base_plugin.NeutronDbPluginV2, agents_db.AgentDbMixin): """A fake plugin class containing all DB methods.""" -class TestAgentsDbMixin(base.BaseTestCase): +class TestAgentsDbMixin(testlib_api.SqlTestCase): def setUp(self): super(TestAgentsDbMixin, self).setUp() self.context = context.get_admin_context() self.plugin = FakePlugin() - self.addCleanup(db.clear_db) self.agent_status = { 'agent_type': 'Open vSwitch agent', diff --git a/neutron/tests/unit/db/test_dvr_mac_db.py b/neutron/tests/unit/db/test_dvr_mac_db.py index 75b1b0b65..f949959cc 100644 --- a/neutron/tests/unit/db/test_dvr_mac_db.py +++ b/neutron/tests/unit/db/test_dvr_mac_db.py @@ -17,10 +17,9 @@ import mock from oslo.config import cfg from neutron import context -from neutron.db import api as db from neutron.db import dvr_mac_db from neutron.extensions import dvr -from neutron.tests import base +from neutron.tests.unit import testlib_api class DVRDbMixinImpl(dvr_mac_db.DVRDbMixin): @@ -29,13 +28,11 @@ class DVRDbMixinImpl(dvr_mac_db.DVRDbMixin): self.notifier = notifier -class DvrDbMixinTestCase(base.BaseTestCase): +class DvrDbMixinTestCase(testlib_api.SqlTestCase): def setUp(self): super(DvrDbMixinTestCase, self).setUp() - db.configure_db() self.ctx = context.get_admin_context() - self.addCleanup(db.clear_db) self.mixin = DVRDbMixinImpl(mock.Mock()) def _create_dvr_mac_entry(self, host, mac_address): diff --git a/neutron/tests/unit/db/test_l3_dvr_db.py b/neutron/tests/unit/db/test_l3_dvr_db.py index 5cec5587b..2bcfa01ec 100644 --- a/neutron/tests/unit/db/test_l3_dvr_db.py +++ b/neutron/tests/unit/db/test_l3_dvr_db.py @@ -18,19 +18,16 @@ import mock from neutron.common import constants as l3_const from neutron import context -from neutron.db import api as db from neutron.db import l3_dvr_db from neutron import manager -from neutron.tests import base +from neutron.tests.unit import testlib_api -class L3DvrTestCase(base.BaseTestCase): +class L3DvrTestCase(testlib_api.SqlTestCase): def setUp(self): super(L3DvrTestCase, self).setUp() - db.configure_db() self.ctx = context.get_admin_context() - self.addCleanup(db.clear_db) self.mixin = l3_dvr_db.L3_NAT_with_dvr_db_mixin() def _create_router(self, router): diff --git a/neutron/tests/unit/db/test_quota_db.py b/neutron/tests/unit/db/test_quota_db.py index 9c6bca355..a7dfa40bf 100644 --- a/neutron/tests/unit/db/test_quota_db.py +++ b/neutron/tests/unit/db/test_quota_db.py @@ -17,10 +17,9 @@ from neutron.common import exceptions from neutron import context -from neutron.db import api as db from neutron.db import db_base_plugin_v2 as base_plugin from neutron.db import quota_db -from neutron.tests import base +from neutron.tests.unit import testlib_api class FakePlugin(base_plugin.NeutronDbPluginV2, quota_db.DbQuotaDriver): @@ -42,12 +41,11 @@ PROJECT = 'prj_test' RESOURCE = 'res_test' -class TestDbQuotaDriver(base.BaseTestCase): +class TestDbQuotaDriver(testlib_api.SqlTestCase): def setUp(self): super(TestDbQuotaDriver, self).setUp() self.plugin = FakePlugin() self.context = context.get_admin_context() - self.addCleanup(db.clear_db) def test_create_quota_limit(self): defaults = {RESOURCE: TestResource(RESOURCE, 4)} diff --git a/neutron/tests/unit/embrane/test_embrane_l3_plugin.py b/neutron/tests/unit/embrane/test_embrane_l3_plugin.py index 699527ff7..cd4dc6150 100644 --- a/neutron/tests/unit/embrane/test_embrane_l3_plugin.py +++ b/neutron/tests/unit/embrane/test_embrane_l3_plugin.py @@ -17,7 +17,6 @@ from oslo.config import cfg -from neutron.db import api as db from neutron.plugins.embrane.common import config # noqa from neutron.tests.unit import test_extension_extraroute as extraroute_test from neutron.tests.unit import test_l3_plugin as router_test @@ -31,7 +30,6 @@ class TestEmbraneL3NatDBTestCase(router_test.L3NatDBIntTestCase): def setUp(self): cfg.CONF.set_override('admin_password', "admin123", 'heleos') - self.addCleanup(db.clear_db) super(TestEmbraneL3NatDBTestCase, self).setUp() diff --git a/neutron/tests/unit/embrane/test_embrane_neutron_plugin.py b/neutron/tests/unit/embrane/test_embrane_neutron_plugin.py index e49da11ac..111a0a8e1 100644 --- a/neutron/tests/unit/embrane/test_embrane_neutron_plugin.py +++ b/neutron/tests/unit/embrane/test_embrane_neutron_plugin.py @@ -19,7 +19,6 @@ import sys import mock from oslo.config import cfg -from neutron.db import api as db from neutron.plugins.embrane.common import config # noqa from neutron.tests.unit import test_db_plugin as test_plugin @@ -34,7 +33,6 @@ class EmbranePluginV2TestCase(test_plugin.NeutronDbPluginV2TestCase): cfg.CONF.set_override('admin_password', "admin123", 'heleos') p = mock.patch.dict(sys.modules, {'heleosapi': mock.Mock()}) p.start() - self.addCleanup(db.clear_db) # dict patches must be explicitly stopped self.addCleanup(p.stop) super(EmbranePluginV2TestCase, self).setUp(self._plugin_name) diff --git a/neutron/tests/unit/linuxbridge/test_lb_db.py b/neutron/tests/unit/linuxbridge/test_lb_db.py index 41f56b52e..f43248210 100644 --- a/neutron/tests/unit/linuxbridge/test_lb_db.py +++ b/neutron/tests/unit/linuxbridge/test_lb_db.py @@ -21,8 +21,8 @@ from testtools import matchers from neutron.common import exceptions as n_exc from neutron.db import api as db from neutron.plugins.linuxbridge.db import l2network_db_v2 as lb_db -from neutron.tests import base from neutron.tests.unit import test_db_plugin as test_plugin +from neutron.tests.unit import testlib_api PHYS_NET = 'physnet1' PHYS_NET_2 = 'physnet2' @@ -36,13 +36,11 @@ PLUGIN_NAME = ('neutron.plugins.linuxbridge.' 'lb_neutron_plugin.LinuxBridgePluginV2') -class NetworkStatesTest(base.BaseTestCase): +class NetworkStatesTest(testlib_api.SqlTestCase): def setUp(self): super(NetworkStatesTest, self).setUp() - db.configure_db() lb_db.sync_network_states(VLAN_RANGES) self.session = db.get_session() - self.addCleanup(db.clear_db) def test_sync_network_states(self): self.assertIsNone(lb_db.get_network_state(PHYS_NET, @@ -155,7 +153,6 @@ class NetworkBindingsTest(test_plugin.NeutronDbPluginV2TestCase): cfg.CONF.set_override('network_vlan_ranges', ['physnet1:1000:2999'], group='VLANS') super(NetworkBindingsTest, self).setUp(plugin=PLUGIN_NAME) - db.configure_db() self.session = db.get_session() def test_add_network_binding(self): diff --git a/neutron/tests/unit/metaplugin/test_metaplugin.py b/neutron/tests/unit/metaplugin/test_metaplugin.py index c05074948..57e027791 100644 --- a/neutron/tests/unit/metaplugin/test_metaplugin.py +++ b/neutron/tests/unit/metaplugin/test_metaplugin.py @@ -20,13 +20,12 @@ import testtools from neutron.common import exceptions as exc from neutron.common import topics from neutron import context -from neutron.db import api as db from neutron.db import db_base_plugin_v2 from neutron.db import models_v2 from neutron.extensions import flavor as ext_flavor from neutron.openstack.common import uuidutils from neutron.plugins.metaplugin import meta_neutron_plugin -from neutron.tests import base +from neutron.tests.unit import testlib_api CONF_FILE = "" META_PATH = "neutron.plugins.metaplugin" @@ -57,8 +56,6 @@ def setup_metaplugin_conf(has_l3=True): cfg.CONF.set_override('base_mac', "12:34:56:78:90:ab") #TODO(nati) remove this after subnet quota change is merged cfg.CONF.set_override('max_dns_nameservers', 10) - cfg.CONF.set_override('rpc_backend', - 'neutron.openstack.common.rpc.impl_fake') # Hooks registered by metaplugin must not exist for other plugins UT. @@ -70,20 +67,16 @@ def unregister_meta_hooks(): models_v2.Port, 'metaplugin_port', None, None, None) -class MetaNeutronPluginV2Test(base.BaseTestCase): +class MetaNeutronPluginV2Test(testlib_api.SqlTestCase): """Class conisting of MetaNeutronPluginV2 unit tests.""" has_l3 = True def setUp(self): super(MetaNeutronPluginV2Test, self).setUp() - db._ENGINE = None - db._MAKER = None self.fake_tenant_id = uuidutils.generate_uuid() self.context = context.get_admin_context() - db.configure_db() - self.addCleanup(db.clear_db) self.addCleanup(unregister_meta_hooks) setup_metaplugin_conf(self.has_l3) @@ -365,15 +358,11 @@ class MetaNeutronPluginV2TestWithoutL3(MetaNeutronPluginV2Test): self.skipTest("Test case without router") -class MetaNeutronPluginV2TestRpcFlavor(base.BaseTestCase): +class MetaNeutronPluginV2TestRpcFlavor(testlib_api.SqlTestCase): """Tests for rpc_flavor.""" def setUp(self): super(MetaNeutronPluginV2TestRpcFlavor, self).setUp() - db._ENGINE = None - db._MAKER = None - db.configure_db() - self.addCleanup(db.clear_db) self.addCleanup(unregister_meta_hooks) def test_rpc_flavor(self): diff --git a/neutron/tests/unit/ml2/db/test_ml2_dvr_db.py b/neutron/tests/unit/ml2/db/test_ml2_dvr_db.py index 847d28de9..bfb8635d2 100644 --- a/neutron/tests/unit/ml2/db/test_ml2_dvr_db.py +++ b/neutron/tests/unit/ml2/db/test_ml2_dvr_db.py @@ -18,22 +18,19 @@ import mock from sqlalchemy.orm import query from neutron import context -from neutron.db import api as db_api from neutron.db import l3_db from neutron.db import models_v2 from neutron.extensions import portbindings from neutron.plugins.ml2 import db as ml2_db from neutron.plugins.ml2 import models as ml2_models -from neutron.tests import base +from neutron.tests.unit import testlib_api -class Ml2DBTestCase(base.BaseTestCase): +class Ml2DBTestCase(testlib_api.SqlTestCase): def setUp(self): super(Ml2DBTestCase, self).setUp() - db_api.configure_db() self.ctx = context.get_admin_context() - self.addCleanup(db_api.clear_db) def _setup_neutron_network(self, network_id, port_ids): with self.ctx.session.begin(subtransactions=True): diff --git a/neutron/tests/unit/ml2/drivers/arista/test_arista_mechanism_driver.py b/neutron/tests/unit/ml2/drivers/arista/test_arista_mechanism_driver.py index 8749d5073..56b8a42af 100644 --- a/neutron/tests/unit/ml2/drivers/arista/test_arista_mechanism_driver.py +++ b/neutron/tests/unit/ml2/drivers/arista/test_arista_mechanism_driver.py @@ -17,12 +17,12 @@ import mock from oslo.config import cfg from neutron.common import constants as n_const -import neutron.db.api as ndb from neutron.extensions import portbindings from neutron.plugins.ml2.drivers.arista import db from neutron.plugins.ml2.drivers.arista import exceptions as arista_exc from neutron.plugins.ml2.drivers.arista import mechanism_arista as arista from neutron.tests import base +from neutron.tests.unit import testlib_api def setup_arista_wrapper_config(value=''): @@ -36,18 +36,13 @@ def setup_valid_config(): setup_arista_wrapper_config('value') -class AristaProvisionedVlansStorageTestCase(base.BaseTestCase): +class AristaProvisionedVlansStorageTestCase(testlib_api.SqlTestCase): """Test storing and retriving functionality of Arista mechanism driver. Tests all methods of this class by invoking them separately as well as a group. """ - def setUp(self): - super(AristaProvisionedVlansStorageTestCase, self).setUp() - ndb.configure_db() - self.addCleanup(ndb.clear_db) - def test_tenant_is_remembered(self): tenant_id = 'test' @@ -539,7 +534,7 @@ class NegativeRPCWrapperTestCase(base.BaseTestCase): self.assertRaises(arista_exc.AristaRpcError, drv.get_tenants) -class RealNetStorageAristaDriverTestCase(base.BaseTestCase): +class RealNetStorageAristaDriverTestCase(testlib_api.SqlTestCase): """Main test cases for Arista Mechanism driver. Tests all mechanism driver APIs supported by Arista Driver. It invokes @@ -549,7 +544,6 @@ class RealNetStorageAristaDriverTestCase(base.BaseTestCase): def setUp(self): super(RealNetStorageAristaDriverTestCase, self).setUp() self.fake_rpc = mock.MagicMock() - ndb.configure_db() self.drv = arista.AristaDriver(self.fake_rpc) def tearDown(self): diff --git a/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus.py b/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus.py index 482c4500b..b184e5172 100644 --- a/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus.py +++ b/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus.py @@ -18,7 +18,6 @@ import mock import testtools from neutron.common import constants as n_const -from neutron.db import api as db from neutron.extensions import portbindings from neutron.openstack.common import importutils from neutron.plugins.ml2 import driver_api as api @@ -27,7 +26,7 @@ from neutron.plugins.ml2.drivers.cisco.nexus import exceptions from neutron.plugins.ml2.drivers.cisco.nexus import mech_cisco_nexus from neutron.plugins.ml2.drivers.cisco.nexus import nexus_db_v2 from neutron.plugins.ml2.drivers.cisco.nexus import nexus_network_driver -from neutron.tests import base +from neutron.tests.unit import testlib_api NEXUS_IP_ADDRESS = '1.1.1.1' @@ -93,7 +92,7 @@ class FakePortContext(object): return self._segment -class TestCiscoNexusDevice(base.BaseTestCase): +class TestCiscoNexusDevice(testlib_api.SqlTestCase): """Unit tests for Cisco ML2 Nexus device driver.""" @@ -151,15 +150,11 @@ class TestCiscoNexusDevice(base.BaseTestCase): mech_instance.driver.nexus_switches = ( mech_instance._nexus_switches) - db.configure_db() - mock.patch.object(mech_cisco_nexus.CiscoNexusMechanismDriver, '__init__', new=new_nexus_init).start() self._cisco_mech_driver = (mech_cisco_nexus. CiscoNexusMechanismDriver()) - self.addCleanup(db.clear_db) - def _create_delete_port(self, port_config): """Tests creation and deletion of a virtual port.""" nexus_ip_addr = port_config.nexus_ip_addr diff --git a/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus_db.py b/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus_db.py index 08cc9a951..12789701a 100644 --- a/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus_db.py +++ b/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_nexus_db.py @@ -16,23 +16,17 @@ import collections import testtools -from neutron.db import api as db from neutron.plugins.ml2.drivers.cisco.nexus import exceptions from neutron.plugins.ml2.drivers.cisco.nexus import nexus_db_v2 -from neutron.tests import base +from neutron.tests.unit import testlib_api -class CiscoNexusDbTest(base.BaseTestCase): +class CiscoNexusDbTest(testlib_api.SqlTestCase): """Unit tests for Cisco mechanism driver's Nexus port binding database.""" NpbObj = collections.namedtuple('NpbObj', 'port vlan switch instance') - def setUp(self): - super(CiscoNexusDbTest, self).setUp() - db.configure_db() - self.addCleanup(db.clear_db) - def _npb_test_obj(self, pnum, vnum, switch='10.9.8.7', instance=None): """Creates a Nexus port binding test object from a pair of numbers.""" if pnum is 'router': diff --git a/neutron/tests/unit/ml2/drivers/test_l2population.py b/neutron/tests/unit/ml2/drivers/test_l2population.py index 12a88b83d..ef34e53ac 100644 --- a/neutron/tests/unit/ml2/drivers/test_l2population.py +++ b/neutron/tests/unit/ml2/drivers/test_l2population.py @@ -23,7 +23,6 @@ from neutron.common import constants from neutron.common import topics from neutron import context from neutron.db import agents_db -from neutron.db import api as db_api from neutron.extensions import portbindings from neutron.extensions import providernet as pnet from neutron import manager @@ -131,8 +130,6 @@ class TestL2PopulationRpcTestCase(test_plugin.NeutronDbPluginV2TestCase): uptime_patch = mock.patch(uptime, return_value=190) uptime_patch.start() - self.addCleanup(db_api.clear_db) - def tearDown(self): l2_consts.SUPPORTED_AGENT_TYPES = self.orig_supported_agents super(TestL2PopulationRpcTestCase, self).tearDown() diff --git a/neutron/tests/unit/ml2/test_helpers.py b/neutron/tests/unit/ml2/test_helpers.py index 7c74a5387..2297fb9f7 100644 --- a/neutron/tests/unit/ml2/test_helpers.py +++ b/neutron/tests/unit/ml2/test_helpers.py @@ -23,6 +23,7 @@ import neutron.db.api as db from neutron.plugins.ml2.drivers import helpers from neutron.plugins.ml2.drivers import type_vlan from neutron.tests import base +from neutron.tests.unit import testlib_api TENANT_NET = 'phys_net2' @@ -34,16 +35,14 @@ NETWORK_VLAN_RANGES = { } -class HelpersTest(base.BaseTestCase): +class HelpersTest(testlib_api.SqlTestCase): def setUp(self): super(HelpersTest, self).setUp() - db.configure_db() self.driver = type_vlan.VlanTypeDriver() self.driver.network_vlan_ranges = NETWORK_VLAN_RANGES self.driver._sync_vlan_allocations() self.session = db.get_session() - self.addCleanup(db.clear_db) self.useFixture( fixtures.FakeLogger( name=helpers.__name__, diff --git a/neutron/tests/unit/ml2/test_mechanism_odl.py b/neutron/tests/unit/ml2/test_mechanism_odl.py index 22ebfbe7a..e743c3457 100644 --- a/neutron/tests/unit/ml2/test_mechanism_odl.py +++ b/neutron/tests/unit/ml2/test_mechanism_odl.py @@ -24,6 +24,7 @@ from neutron.plugins.ml2.drivers import mechanism_odl from neutron.plugins.ml2 import plugin from neutron.tests import base from neutron.tests.unit import test_db_plugin as test_plugin +from neutron.tests.unit import testlib_api PLUGIN_NAME = 'neutron.plugins.ml2.plugin.Ml2Plugin' @@ -70,7 +71,7 @@ class OpenDaylightTestCase(test_plugin.NeutronDbPluginV2TestCase): self.assertFalse(self.mech.check_segment(self.segment)) -class OpenDayLightMechanismConfigTests(base.BaseTestCase): +class OpenDayLightMechanismConfigTests(testlib_api.SqlTestCase): def _set_config(self, url='http://127.0.0.1:9999', username='someuser', password='somepass'): diff --git a/neutron/tests/unit/ml2/test_type_flat.py b/neutron/tests/unit/ml2/test_type_flat.py index b752d9ed1..1620edfdc 100644 --- a/neutron/tests/unit/ml2/test_type_flat.py +++ b/neutron/tests/unit/ml2/test_type_flat.py @@ -18,23 +18,21 @@ import neutron.db.api as db from neutron.plugins.common import constants as p_const from neutron.plugins.ml2 import driver_api as api from neutron.plugins.ml2.drivers import type_flat -from neutron.tests import base +from neutron.tests.unit import testlib_api from oslo.config import cfg FLAT_NETWORKS = ['flat_net1', 'flat_net2'] -class FlatTypeTest(base.BaseTestCase): +class FlatTypeTest(testlib_api.SqlTestCase): def setUp(self): super(FlatTypeTest, self).setUp() - db.configure_db() cfg.CONF.set_override('flat_networks', FLAT_NETWORKS, group='ml2_type_flat') self.driver = type_flat.FlatTypeDriver() self.session = db.get_session() - self.addCleanup(db.clear_db) def _get_allocation(self, session, segment): return session.query(type_flat.FlatAllocation).filter_by( diff --git a/neutron/tests/unit/ml2/test_type_gre.py b/neutron/tests/unit/ml2/test_type_gre.py index d695c4f00..62d7b8851 100644 --- a/neutron/tests/unit/ml2/test_type_gre.py +++ b/neutron/tests/unit/ml2/test_type_gre.py @@ -22,7 +22,7 @@ from neutron.common import exceptions as exc import neutron.db.api as db from neutron.plugins.ml2 import driver_api as api from neutron.plugins.ml2.drivers import type_gre -from neutron.tests import base +from neutron.tests.unit import testlib_api TUNNEL_IP_ONE = "10.10.10.10" TUNNEL_IP_TWO = "10.10.10.20" @@ -32,16 +32,14 @@ TUNNEL_RANGES = [(TUN_MIN, TUN_MAX)] UPDATED_TUNNEL_RANGES = [(TUN_MIN + 5, TUN_MAX + 5)] -class GreTypeTest(base.BaseTestCase): +class GreTypeTest(testlib_api.SqlTestCase): def setUp(self): super(GreTypeTest, self).setUp() - db.configure_db() self.driver = type_gre.GreTypeDriver() self.driver.gre_id_ranges = TUNNEL_RANGES self.driver._sync_gre_allocations() self.session = db.get_session() - self.addCleanup(db.clear_db) def test_validate_provider_segment(self): segment = {api.NETWORK_TYPE: 'gre', @@ -233,7 +231,7 @@ class GreTypeTest(base.BaseTestCase): log_warn.assert_called_once_with(mock.ANY, TUNNEL_IP_ONE) -class GreTypeMultiRangeTest(base.BaseTestCase): +class GreTypeMultiRangeTest(testlib_api.SqlTestCase): TUN_MIN0 = 100 TUN_MAX0 = 101 @@ -243,12 +241,10 @@ class GreTypeMultiRangeTest(base.BaseTestCase): def setUp(self): super(GreTypeMultiRangeTest, self).setUp() - db.configure_db() self.driver = type_gre.GreTypeDriver() self.driver.gre_id_ranges = self.TUNNEL_MULTI_RANGES self.driver._sync_gre_allocations() self.session = db.get_session() - self.addCleanup(db.clear_db) def test_release_segment(self): segments = [self.driver.allocate_tenant_segment(self.session) diff --git a/neutron/tests/unit/ml2/test_type_vlan.py b/neutron/tests/unit/ml2/test_type_vlan.py index b36bc42e9..2a7815212 100644 --- a/neutron/tests/unit/ml2/test_type_vlan.py +++ b/neutron/tests/unit/ml2/test_type_vlan.py @@ -21,7 +21,7 @@ import neutron.db.api as db from neutron.plugins.common import constants as p_const from neutron.plugins.ml2 import driver_api as api from neutron.plugins.ml2.drivers import type_vlan -from neutron.tests import base +from neutron.tests.unit import testlib_api PROVIDER_NET = 'phys_net1' TENANT_NET = 'phys_net2' @@ -37,16 +37,14 @@ UPDATED_VLAN_RANGES = { } -class VlanTypeTest(base.BaseTestCase): +class VlanTypeTest(testlib_api.SqlTestCase): def setUp(self): super(VlanTypeTest, self).setUp() - db.configure_db() self.driver = type_vlan.VlanTypeDriver() self.driver.network_vlan_ranges = NETWORK_VLAN_RANGES self.driver._sync_vlan_allocations() self.session = db.get_session() - self.addCleanup(db.clear_db) def _get_allocation(self, session, segment): return session.query(type_vlan.VlanAllocation).filter_by( diff --git a/neutron/tests/unit/ml2/test_type_vxlan.py b/neutron/tests/unit/ml2/test_type_vxlan.py index 1f7fed2b4..7953617dd 100644 --- a/neutron/tests/unit/ml2/test_type_vxlan.py +++ b/neutron/tests/unit/ml2/test_type_vxlan.py @@ -25,7 +25,7 @@ from neutron.db import api as db from neutron.plugins.common import constants as p_const from neutron.plugins.ml2 import driver_api as api from neutron.plugins.ml2.drivers import type_vxlan -from neutron.tests import base +from neutron.tests.unit import testlib_api TUNNEL_IP_ONE = "10.10.10.10" @@ -40,10 +40,9 @@ VXLAN_UDP_PORT_ONE = 9999 VXLAN_UDP_PORT_TWO = 8888 -class VxlanTypeTest(base.BaseTestCase): +class VxlanTypeTest(testlib_api.SqlTestCase): def setUp(self): super(VxlanTypeTest, self).setUp() - db.configure_db() cfg.CONF.set_override('vni_ranges', [TUNNEL_RANGES], group='ml2_type_vxlan') cfg.CONF.set_override('vxlan_group', MULTICAST_GROUP, @@ -52,7 +51,6 @@ class VxlanTypeTest(base.BaseTestCase): self.driver.vxlan_vni_ranges = TUNNEL_RANGES self.driver._sync_vxlan_allocations() self.session = db.get_session() - self.addCleanup(db.clear_db) def test_vxlan_tunnel_type(self): self.assertEqual(self.driver.get_type(), p_const.TYPE_VXLAN) @@ -254,7 +252,7 @@ class VxlanTypeTest(base.BaseTestCase): log_warn.assert_called_once_with(mock.ANY, TUNNEL_IP_ONE) -class VxlanTypeMultiRangeTest(base.BaseTestCase): +class VxlanTypeMultiRangeTest(testlib_api.SqlTestCase): TUN_MIN0 = 100 TUN_MAX0 = 101 @@ -264,12 +262,10 @@ class VxlanTypeMultiRangeTest(base.BaseTestCase): def setUp(self): super(VxlanTypeMultiRangeTest, self).setUp() - db.configure_db() self.driver = type_vxlan.VxlanTypeDriver() self.driver.vxlan_vni_ranges = self.TUNNEL_MULTI_RANGES self.driver._sync_vxlan_allocations() self.session = db.get_session() - self.addCleanup(db.clear_db) def test_release_segment(self): segments = [self.driver.allocate_tenant_segment(self.session) diff --git a/neutron/tests/unit/mlnx/test_mlnx_db.py b/neutron/tests/unit/mlnx/test_mlnx_db.py index a72ed0865..6ece2044d 100644 --- a/neutron/tests/unit/mlnx/test_mlnx_db.py +++ b/neutron/tests/unit/mlnx/test_mlnx_db.py @@ -19,8 +19,8 @@ from testtools import matchers from neutron.common import exceptions as n_exc from neutron.db import api as db from neutron.plugins.mlnx.db import mlnx_db_v2 as mlnx_db -from neutron.tests import base from neutron.tests.unit import test_db_plugin as test_plugin +from neutron.tests.unit import testlib_api PHYS_NET = 'physnet1' PHYS_NET_2 = 'physnet2' @@ -33,13 +33,11 @@ UPDATED_VLAN_RANGES = {PHYS_NET: [(VLAN_MIN + 5, VLAN_MAX + 5)], TEST_NETWORK_ID = 'abcdefghijklmnopqrstuvwxyz' -class SegmentationIdAllocationTest(base.BaseTestCase): +class SegmentationIdAllocationTest(testlib_api.SqlTestCase): def setUp(self): super(SegmentationIdAllocationTest, self).setUp() - db.configure_db() mlnx_db.sync_network_states(VLAN_RANGES) self.session = db.get_session() - self.addCleanup(db.clear_db) def test_sync_segmentationIdAllocation(self): self.assertIsNone(mlnx_db.get_network_state(PHYS_NET, @@ -159,7 +157,6 @@ class SegmentationIdAllocationTest(base.BaseTestCase): class NetworkBindingsTest(test_plugin.NeutronDbPluginV2TestCase): def setUp(self): super(NetworkBindingsTest, self).setUp() - db.configure_db() self.session = db.get_session() def test_add_network_binding(self): diff --git a/neutron/tests/unit/mlnx/test_mlnx_plugin_config.py b/neutron/tests/unit/mlnx/test_mlnx_plugin_config.py index 70f3d2df4..90991a604 100644 --- a/neutron/tests/unit/mlnx/test_mlnx_plugin_config.py +++ b/neutron/tests/unit/mlnx/test_mlnx_plugin_config.py @@ -20,10 +20,10 @@ from oslo.config import cfg from neutron.plugins.mlnx.common import config # noqa from neutron.plugins.mlnx.common import constants from neutron.plugins.mlnx import mlnx_plugin -from neutron.tests import base +from neutron.tests.unit import testlib_api -class TestMlnxPluginConfig(base.BaseTestCase): +class TestMlnxPluginConfig(testlib_api.SqlTestCase): expected_vlan_mappings = {'physnet1': [(1, 1000)], 'physnet2': [(1, 1000)]} expected_network_types = {'physnet1': constants.TYPE_ETH, diff --git a/neutron/tests/unit/nec/test_db.py b/neutron/tests/unit/nec/test_db.py index 62ea0a3e2..69927d99c 100644 --- a/neutron/tests/unit/nec/test_db.py +++ b/neutron/tests/unit/nec/test_db.py @@ -20,7 +20,6 @@ from neutron.common import constants as q_const from neutron.openstack.common import uuidutils from neutron.plugins.nec.common import exceptions as nexc from neutron.plugins.nec.db import api as ndb -from neutron.plugins.nec.db import models as nmodels # noqa from neutron.tests.unit.nec import test_nec_plugin diff --git a/neutron/tests/unit/nec/test_ofc_manager.py b/neutron/tests/unit/nec/test_ofc_manager.py index 47de0ed6e..13d71d766 100644 --- a/neutron/tests/unit/nec/test_ofc_manager.py +++ b/neutron/tests/unit/nec/test_ofc_manager.py @@ -16,13 +16,11 @@ import mock from neutron import context -from neutron.db import api as db from neutron.openstack.common import uuidutils from neutron.plugins.nec.common import config from neutron.plugins.nec.db import api as ndb -from neutron.plugins.nec.db import models as nmodels # noqa from neutron.plugins.nec import ofc_manager -from neutron.tests import base +from neutron.tests.unit import testlib_api class FakePortInfo(object): @@ -38,15 +36,13 @@ class FakePortInfo(object): raise AttributeError(name) -class OFCManagerTestBase(base.BaseTestCase): +class OFCManagerTestBase(testlib_api.SqlTestCase): """Class conisting of OFCManager unit tests.""" def setUp(self): super(OFCManagerTestBase, self).setUp() - db.configure_db() driver = "neutron.tests.unit.nec.stub_ofc_driver.StubOFCDriver" config.CONF.set_override('driver', driver, 'OFC') - self.addCleanup(ndb.clear_db) self.plugin = mock.Mock() self.plugin.get_packet_filters_for_port.return_value = None self.ofc = ofc_manager.OFCManager(self.plugin) diff --git a/neutron/tests/unit/nec/test_security_group.py b/neutron/tests/unit/nec/test_security_group.py index 0b681969f..fd442c3b2 100644 --- a/neutron/tests/unit/nec/test_security_group.py +++ b/neutron/tests/unit/nec/test_security_group.py @@ -20,7 +20,6 @@ import mock from neutron.api.v2 import attributes from neutron.extensions import securitygroup as ext_sg from neutron import manager -from neutron.plugins.nec.db import api as ndb # noqa from neutron.tests.unit.nec import test_nec_plugin from neutron.tests.unit import test_extension_security_group as test_sg from neutron.tests.unit import test_security_groups_rpc as test_sg_rpc diff --git a/neutron/tests/unit/opencontrail/test_contrail_plugin.py b/neutron/tests/unit/opencontrail/test_contrail_plugin.py index a98339201..de280f346 100644 --- a/neutron/tests/unit/opencontrail/test_contrail_plugin.py +++ b/neutron/tests/unit/opencontrail/test_contrail_plugin.py @@ -28,11 +28,9 @@ from neutron.api.v2 import attributes as attr from neutron.api.v2 import base as api_base from neutron.common import exceptions as exc from neutron import context as neutron_context -from neutron.db import api as db from neutron.db import db_base_plugin_v2 from neutron.db import external_net_db from neutron.db import l3_db -from neutron.db import quota_db # noqa from neutron.db import securitygroups_db from neutron.extensions import portbindings from neutron.extensions import securitygroup as ext_sg @@ -219,7 +217,6 @@ class ContrailPluginTestCase(test_plugin.NeutronDbPluginV2TestCase): cfg.CONF.keystone_authtoken = KeyStoneInfo() mock.patch('requests.post').start().side_effect = FAKE_SERVER.request - db.configure_db() super(ContrailPluginTestCase, self).setUp(self._plugin_name) diff --git a/neutron/tests/unit/openvswitch/test_ovs_db.py b/neutron/tests/unit/openvswitch/test_ovs_db.py index f1fbe0323..a82f546b1 100644 --- a/neutron/tests/unit/openvswitch/test_ovs_db.py +++ b/neutron/tests/unit/openvswitch/test_ovs_db.py @@ -25,8 +25,8 @@ from neutron.common import exceptions as n_exc from neutron.db import api as db from neutron.plugins.openvswitch import ovs_db_v2 from neutron.plugins.openvswitch import ovs_models_v2 as ovs_models -from neutron.tests import base from neutron.tests.unit import test_db_plugin as test_plugin +from neutron.tests.unit import testlib_api PHYS_NET = 'physnet1' PHYS_NET_2 = 'physnet2' @@ -44,13 +44,11 @@ PLUGIN_NAME = ('neutron.plugins.openvswitch.' 'ovs_neutron_plugin.OVSNeutronPluginV2') -class VlanAllocationsTest(base.BaseTestCase): +class VlanAllocationsTest(testlib_api.SqlTestCase): def setUp(self): super(VlanAllocationsTest, self).setUp() - db.configure_db() ovs_db_v2.sync_vlan_allocations(VLAN_RANGES) self.session = db.get_session() - self.addCleanup(db.clear_db) def test_sync_vlan_allocations(self): self.assertIsNone(ovs_db_v2.get_vlan_allocation(PHYS_NET, @@ -188,13 +186,11 @@ class VlanAllocationsTest(base.BaseTestCase): ovs_db_v2.sync_vlan_allocations({}) -class TunnelAllocationsTest(base.BaseTestCase): +class TunnelAllocationsTest(testlib_api.SqlTestCase): def setUp(self): super(TunnelAllocationsTest, self).setUp() - db.configure_db() ovs_db_v2.sync_tunnel_allocations(TUNNEL_RANGES) self.session = db.get_session() - self.addCleanup(db.clear_db) def test_sync_tunnel_allocations(self): self.assertIsNone(ovs_db_v2.get_tunnel_allocation(TUN_MIN - 1)) @@ -301,7 +297,6 @@ class NetworkBindingsTest(test_plugin.NeutronDbPluginV2TestCase): cfg.CONF.set_override('network_vlan_ranges', ['physnet1:1000:2999'], group='OVS') super(NetworkBindingsTest, self).setUp(plugin=PLUGIN_NAME) - db.configure_db() self.session = db.get_session() def test_add_network_binding(self): diff --git a/neutron/tests/unit/ryu/test_ryu_db.py b/neutron/tests/unit/ryu/test_ryu_db.py index 4cbdbe62c..97ea3bffc 100644 --- a/neutron/tests/unit/ryu/test_ryu_db.py +++ b/neutron/tests/unit/ryu/test_ryu_db.py @@ -19,7 +19,6 @@ import operator from neutron.db import api as db from neutron.plugins.ryu.common import config # noqa from neutron.plugins.ryu.db import api_v2 as db_api_v2 -from neutron.plugins.ryu.db import models_v2 as ryu_models_v2 # noqa from neutron.tests.unit import test_db_plugin as test_plugin diff --git a/neutron/tests/unit/ryu/test_ryu_plugin.py b/neutron/tests/unit/ryu/test_ryu_plugin.py index e0dfe283e..cfbe5285b 100644 --- a/neutron/tests/unit/ryu/test_ryu_plugin.py +++ b/neutron/tests/unit/ryu/test_ryu_plugin.py @@ -16,7 +16,6 @@ import mock from neutron import manager -from neutron.plugins.ryu.db import models_v2 as ryu_models_v2 # noqa from neutron.tests.unit.ryu import fake_ryu from neutron.tests.unit import test_db_plugin as test_plugin diff --git a/neutron/tests/unit/services/l3_router/test_l3_apic_plugin.py b/neutron/tests/unit/services/l3_router/test_l3_apic_plugin.py index 6bc33ef28..55b168e88 100644 --- a/neutron/tests/unit/services/l3_router/test_l3_apic_plugin.py +++ b/neutron/tests/unit/services/l3_router/test_l3_apic_plugin.py @@ -18,7 +18,7 @@ import mock from neutron.services.l3_router import l3_apic -from neutron.tests import base +from neutron.tests.unit import testlib_api TENANT = 'tenant1' TENANT_CONTRACT = 'abcd' @@ -55,7 +55,7 @@ class FakePort(object): self.subnet_id = SUBNET -class TestCiscoApicL3Plugin(base.BaseTestCase): +class TestCiscoApicL3Plugin(testlib_api.SqlTestCase): def setUp(self): super(TestCiscoApicL3Plugin, self).setUp() diff --git a/neutron/tests/unit/services/vpn/service_drivers/test_cisco_ipsec.py b/neutron/tests/unit/services/vpn/service_drivers/test_cisco_ipsec.py index d9e1d1ca1..36259b380 100644 --- a/neutron/tests/unit/services/vpn/service_drivers/test_cisco_ipsec.py +++ b/neutron/tests/unit/services/vpn/service_drivers/test_cisco_ipsec.py @@ -16,7 +16,6 @@ import mock # from oslo.config import cfg from neutron import context as n_ctx -from neutron.db import api as dbapi from neutron.openstack.common import uuidutils from neutron.plugins.common import constants # from neutron.services.vpn import plugin as vpn_plugin @@ -24,6 +23,7 @@ from neutron.services.vpn.service_drivers import cisco_csr_db as csr_db from neutron.services.vpn.service_drivers import cisco_ipsec as ipsec_driver from neutron.services.vpn.service_drivers import cisco_validator as validator from neutron.tests import base +from neutron.tests.unit import testlib_api _uuid = uuidutils.generate_uuid @@ -328,14 +328,12 @@ class TestCiscoIPsecDriverMapping(base.BaseTestCase): tenant_id='1000') -class TestCiscoIPsecDriver(base.BaseTestCase): +class TestCiscoIPsecDriver(testlib_api.SqlTestCase): """Test that various incoming requests are sent to device driver.""" def setUp(self): super(TestCiscoIPsecDriver, self).setUp() - dbapi.configure_db() - self.addCleanup(dbapi.clear_db) mock.patch('neutron.common.rpc.create_connection').start() l3_agent = mock.Mock() diff --git a/neutron/tests/unit/test_db_plugin.py b/neutron/tests/unit/test_db_plugin.py index d004fb359..0145a34b8 100644 --- a/neutron/tests/unit/test_db_plugin.py +++ b/neutron/tests/unit/test_db_plugin.py @@ -32,7 +32,6 @@ from neutron.common import ipv6_utils from neutron.common import test_lib from neutron.common import utils from neutron import context -from neutron.db import api as db from neutron.db import db_base_plugin_v2 from neutron.db import models_v2 from neutron import manager @@ -88,12 +87,6 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): if not plugin: plugin = DB_PLUGIN_KLASS - # Create the default configurations - args = ['--config-file', base.etcdir('neutron.conf.test')] - # If test_config specifies some config-file, use it, as well - for config_file in test_lib.test_config.get('config_files', []): - args.extend(['--config-file', config_file]) - self.config_parse(args=args) # Update the plugin self.setup_coreplugin(plugin) cfg.CONF.set_override( @@ -149,13 +142,18 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): self._skip_native_pagination = None self._skip_native_sortin = None self.ext_api = None - # NOTE(jkoelker) for a 'pluggable' framework, Neutron sure - # doesn't like when the plugin changes ;) - db.clear_db() # Restore the original attribute map attributes.RESOURCE_ATTRIBUTE_MAP = self._attribute_map_bk super(NeutronDbPluginV2TestCase, self).tearDown() + def setup_config(self): + # Create the default configurations + args = ['--config-file', base.etcdir('neutron.conf.test')] + # If test_config specifies some config-file, use it, as well + for config_file in test_lib.test_config.get('config_files', []): + args.extend(['--config-file', config_file]) + self.config_parse(args=args) + def _req(self, method, resource, data=None, fmt=None, id=None, params=None, action=None, subresource=None, sub_id=None, context=None): fmt = fmt or self.fmt @@ -3938,7 +3936,7 @@ class TestNeutronDbPluginV2(base.BaseTestCase): ['b', '192.168.1.112', '192.168.1.120']], actual) -class NeutronDbPluginV2AsMixinTestCase(base.BaseTestCase): +class NeutronDbPluginV2AsMixinTestCase(testlib_api.SqlTestCase): """Tests for NeutronDbPluginV2 as Mixin. While NeutronDbPluginV2TestCase checks NeutronDbPlugin and all plugins as @@ -3957,7 +3955,6 @@ class NeutronDbPluginV2AsMixinTestCase(base.BaseTestCase): 'admin_state_up': True, 'tenant_id': 'test-tenant', 'shared': False}} - self.addCleanup(db.clear_db) def test_create_network_with_default_status(self): net = self.plugin.create_network(self.context, self.net_data) diff --git a/neutron/tests/unit/test_db_plugin_level.py b/neutron/tests/unit/test_db_plugin_level.py index 3fe2be1fa..a0ebbb5e6 100644 --- a/neutron/tests/unit/test_db_plugin_level.py +++ b/neutron/tests/unit/test_db_plugin_level.py @@ -18,12 +18,11 @@ from neutron.common import constants from neutron.common import exceptions as n_exc from neutron import context from neutron import manager -from neutron.tests import base from neutron.tests.unit import test_db_plugin from neutron.tests.unit import testlib_api -class TestNetworks(base.BaseTestCase): +class TestNetworks(testlib_api.SqlTestCase): def setUp(self): super(TestNetworks, self).setUp() self._tenant_id = 'test-tenant' diff --git a/neutron/tests/unit/test_dhcp_scheduler.py b/neutron/tests/unit/test_dhcp_scheduler.py index d0282bbc7..293255eb9 100644 --- a/neutron/tests/unit/test_dhcp_scheduler.py +++ b/neutron/tests/unit/test_dhcp_scheduler.py @@ -20,22 +20,19 @@ from neutron.common import topics from neutron import context from neutron.db import agents_db from neutron.db import agentschedulers_db -from neutron.db import api as db from neutron.db import models_v2 from neutron.openstack.common import timeutils from neutron.scheduler import dhcp_agent_scheduler -from neutron.tests import base +from neutron.tests.unit import testlib_api -class DhcpSchedulerTestCase(base.BaseTestCase): +class DhcpSchedulerTestCase(testlib_api.SqlTestCase): def setUp(self): super(DhcpSchedulerTestCase, self).setUp() - db.configure_db() self.ctx = context.get_admin_context() self.network_id = 'foo_network_id' self._save_networks([self.network_id]) - self.addCleanup(db.clear_db) def _get_agents(self, hosts): return [ diff --git a/neutron/tests/unit/test_extension_ext_gw_mode.py b/neutron/tests/unit/test_extension_ext_gw_mode.py index a9e97066a..907975393 100644 --- a/neutron/tests/unit/test_extension_ext_gw_mode.py +++ b/neutron/tests/unit/test_extension_ext_gw_mode.py @@ -27,9 +27,9 @@ from neutron.db import models_v2 from neutron.extensions import l3 from neutron.extensions import l3_ext_gw_mode from neutron.openstack.common import uuidutils -from neutron.tests import base from neutron.tests.unit import test_db_plugin from neutron.tests.unit import test_l3_plugin +from neutron.tests.unit import testlib_api _uuid = uuidutils.generate_uuid FAKE_GW_PORT_ID = _uuid() @@ -74,7 +74,7 @@ class TestDbSepPlugin(test_l3_plugin.TestL3NatServicePlugin, supported_extension_aliases = ["router", "ext-gw-mode"] -class TestL3GwModeMixin(base.BaseTestCase): +class TestL3GwModeMixin(testlib_api.SqlTestCase): def setUp(self): super(TestL3GwModeMixin, self).setUp() @@ -84,7 +84,6 @@ class TestL3GwModeMixin(base.BaseTestCase): # Patch the context ctx_patcher = mock.patch('neutron.context', autospec=True) mock_context = ctx_patcher.start() - self.addCleanup(db_api.clear_db) self.context = mock_context.get_admin_context() # This ensure also calls to elevated work in unit tests self.context.elevated.return_value = self.context diff --git a/neutron/tests/unit/test_l3_plugin.py b/neutron/tests/unit/test_l3_plugin.py index f1bc02b7e..c474458f2 100644 --- a/neutron/tests/unit/test_l3_plugin.py +++ b/neutron/tests/unit/test_l3_plugin.py @@ -26,7 +26,6 @@ from neutron.api.v2 import attributes from neutron.common import constants as l3_constants from neutron.common import exceptions as n_exc from neutron import context -from neutron.db import api as qdbapi from neutron.db import common_db_mixin from neutron.db import db_base_plugin_v2 from neutron.db import external_net_db @@ -35,7 +34,6 @@ from neutron.db import l3_attrs_db from neutron.db import l3_db from neutron.db import l3_dvr_db from neutron.db import l3_rpc_base -from neutron.db import model_base from neutron.extensions import external_net from neutron.extensions import l3 from neutron.extensions import portbindings @@ -294,9 +292,6 @@ class TestL3NatServicePlugin(common_db_mixin.CommonDbMixin, supported_extension_aliases = ["router"] - def __init__(self): - qdbapi.register_models(base=model_base.BASEV2) - def get_plugin_type(self): return service_constants.L3_ROUTER_NAT diff --git a/neutron/tests/unit/test_l3_schedulers.py b/neutron/tests/unit/test_l3_schedulers.py index ae9fe0f12..d329defa1 100644 --- a/neutron/tests/unit/test_l3_schedulers.py +++ b/neutron/tests/unit/test_l3_schedulers.py @@ -35,9 +35,9 @@ from neutron.extensions import l3 as ext_l3 from neutron import manager from neutron.openstack.common import timeutils from neutron.scheduler import l3_agent_scheduler -from neutron.tests import base from neutron.tests.unit import test_db_plugin from neutron.tests.unit import test_l3_plugin +from neutron.tests.unit import testlib_api HOST = 'my_l3_host' FIRST_L3_AGENT = { @@ -351,7 +351,7 @@ class L3DvrScheduler(l3_db.L3_NAT_db_mixin, pass -class L3DvrSchedulerTestCase(base.BaseTestCase): +class L3DvrSchedulerTestCase(testlib_api.SqlTestCase): def setUp(self): plugin = 'neutron.plugins.ml2.plugin.Ml2Plugin' diff --git a/neutron/tests/unit/test_quota_ext.py b/neutron/tests/unit/test_quota_ext.py index 58af1ff0f..e612b0fc9 100644 --- a/neutron/tests/unit/test_quota_ext.py +++ b/neutron/tests/unit/test_quota_ext.py @@ -25,7 +25,6 @@ from neutron.api.v2 import attributes from neutron.common import config from neutron.common import exceptions from neutron import context -from neutron.db import api as db from neutron.db import quota_db from neutron import quota from neutron.tests import base @@ -68,7 +67,6 @@ class QuotaExtensionTestCase(testlib_api.WebTestCase): # extra1 here is added later, so have to do it manually quota.QUOTAS.register_resource_by_name('extra1') ext_mgr = extensions.PluginAwareExtensionManager.get_instance() - db.configure_db() app = config.load_paste_app('extensions_test_app') ext_middleware = extensions.ExtensionMiddleware(app, ext_mgr=ext_mgr) self.api = webtest.TestApp(ext_middleware) @@ -76,8 +74,6 @@ class QuotaExtensionTestCase(testlib_api.WebTestCase): def tearDown(self): self.api = None self.plugin = None - db.clear_db() - # Restore the global RESOURCE_ATTRIBUTE_MAP attributes.RESOURCE_ATTRIBUTE_MAP = self.saved_attr_map super(QuotaExtensionTestCase, self).tearDown() diff --git a/neutron/tests/unit/test_routerserviceinsertion.py b/neutron/tests/unit/test_routerserviceinsertion.py index 7db7d4284..416721774 100644 --- a/neutron/tests/unit/test_routerserviceinsertion.py +++ b/neutron/tests/unit/test_routerserviceinsertion.py @@ -21,7 +21,6 @@ from neutron.api.v2 import attributes from neutron.api.v2 import router from neutron.common import config from neutron import context as q_context -from neutron.db import api as db from neutron.db import db_base_plugin_v2 from neutron.db import l3_db from neutron.db.loadbalancer import loadbalancer_db as lb_db @@ -31,7 +30,6 @@ from neutron.db import servicetype_db as st_db from neutron.extensions import routedserviceinsertion as rsi from neutron.extensions import routerservicetype as rst from neutron.plugins.common import constants -from neutron.tests import base from neutron.tests.unit import test_api_v2 from neutron.tests.unit import testlib_api from neutron import wsgi @@ -152,7 +150,7 @@ class RouterServiceInsertionTestPlugin( pass -class RouterServiceInsertionTestCase(base.BaseTestCase): +class RouterServiceInsertionTestCase(testlib_api.SqlTestCase): def setUp(self): super(RouterServiceInsertionTestCase, self).setUp() plugin = ( @@ -192,7 +190,6 @@ class RouterServiceInsertionTestCase(base.BaseTestCase): def tearDown(self): self.api = None - db.clear_db() super(RouterServiceInsertionTestCase, self).tearDown() def _setup_core_resources(self): diff --git a/neutron/tests/unit/test_servicetype.py b/neutron/tests/unit/test_servicetype.py index 6db85b79f..3fe02f69b 100644 --- a/neutron/tests/unit/test_servicetype.py +++ b/neutron/tests/unit/test_servicetype.py @@ -24,12 +24,10 @@ import webtest from neutron.api import extensions from neutron.common import exceptions as n_exc from neutron import context -from neutron.db import api as db_api from neutron.db import servicetype_db as st_db from neutron.extensions import servicetype from neutron.plugins.common import constants from neutron.services import provider_configuration as provconf -from neutron.tests import base from neutron.tests.unit import dummy_plugin as dp from neutron.tests.unit import test_api_v2 from neutron.tests.unit import test_db_plugin @@ -44,7 +42,7 @@ _uuid = test_api_v2._uuid _get_path = test_api_v2._get_path -class ServiceTypeManagerTestCase(base.BaseTestCase): +class ServiceTypeManagerTestCase(testlib_api.SqlTestCase): def setUp(self): super(ServiceTypeManagerTestCase, self).setUp() st_db.ServiceTypeManager._instance = None @@ -219,7 +217,6 @@ class ServiceTypeManagerExtTestCase(ServiceTypeExtensionTestCaseBase): ':lbaas:driver_path', constants.DUMMY + ':dummy:dummy_dr'], 'service_providers') - self.addCleanup(db_api.clear_db) super(ServiceTypeManagerExtTestCase, self).setUp() def _list_service_providers(self): diff --git a/neutron/tests/unit/testlib_api.py b/neutron/tests/unit/testlib_api.py index 1407ab0b8..a8c7a7e6e 100644 --- a/neutron/tests/unit/testlib_api.py +++ b/neutron/tests/unit/testlib_api.py @@ -16,6 +16,10 @@ import testtools from neutron.api.v2 import attributes +from neutron.db import api as db_api +# Import all data models +from neutron.db.migration.models import head # noqa +from neutron.db import model_base from neutron.tests import base from neutron import wsgi @@ -49,7 +53,22 @@ def create_request(path, body, content_type, method='GET', return req -class WebTestCase(base.BaseTestCase): +class SqlTestCase(base.BaseTestCase): + + def setUp(self): + super(SqlTestCase, self).setUp() + # Register all data models + engine = db_api.get_engine() + model_base.BASEV2.metadata.create_all(engine) + + def unregister_models(): + """Unregister all data models.""" + model_base.BASEV2.metadata.drop_all(engine) + + self.addCleanup(unregister_models) + + +class WebTestCase(SqlTestCase): fmt = 'json' def setUp(self): diff --git a/neutron/tests/unit/vmware/db/test_lsn_db.py b/neutron/tests/unit/vmware/db/test_lsn_db.py index 34641de53..42dd3e6e6 100644 --- a/neutron/tests/unit/vmware/db/test_lsn_db.py +++ b/neutron/tests/unit/vmware/db/test_lsn_db.py @@ -16,19 +16,16 @@ from sqlalchemy import orm from neutron import context -from neutron.db import api as db from neutron.plugins.vmware.common import exceptions as p_exc from neutron.plugins.vmware.dbexts import lsn_db -from neutron.tests import base +from neutron.tests.unit import testlib_api -class LSNTestCase(base.BaseTestCase): +class LSNTestCase(testlib_api.SqlTestCase): def setUp(self): super(LSNTestCase, self).setUp() - db.configure_db() self.ctx = context.get_admin_context() - self.addCleanup(db.clear_db) self.net_id = 'foo_network_id' self.lsn_id = 'foo_lsn_id' self.lsn_port_id = 'foo_port_id' diff --git a/neutron/tests/unit/vmware/db/test_nsx_db.py b/neutron/tests/unit/vmware/db/test_nsx_db.py index 35552c0e2..f4078a469 100644 --- a/neutron/tests/unit/vmware/db/test_nsx_db.py +++ b/neutron/tests/unit/vmware/db/test_nsx_db.py @@ -16,20 +16,17 @@ from oslo.db import exception as d_exc from neutron import context -from neutron.db import api as db from neutron.db import models_v2 from neutron.plugins.vmware.dbexts import db as nsx_db from neutron.plugins.vmware.dbexts import models -from neutron.tests import base +from neutron.tests.unit import testlib_api -class NsxDBTestCase(base.BaseTestCase): +class NsxDBTestCase(testlib_api.SqlTestCase): def setUp(self): super(NsxDBTestCase, self).setUp() - db.configure_db() self.ctx = context.get_admin_context() - self.addCleanup(db.clear_db) def _setup_neutron_network_and_port(self, network_id, port_id): with self.ctx.session.begin(subtransactions=True): diff --git a/neutron/tests/unit/vmware/test_dhcpmeta.py b/neutron/tests/unit/vmware/test_dhcpmeta.py index 23c4a86cf..d6c519218 100644 --- a/neutron/tests/unit/vmware/test_dhcpmeta.py +++ b/neutron/tests/unit/vmware/test_dhcpmeta.py @@ -20,7 +20,6 @@ from oslo.config import cfg from neutron.common import constants as n_consts from neutron.common import exceptions as n_exc from neutron import context -from neutron.db import api as db from neutron.plugins.vmware.api_client import exception from neutron.plugins.vmware.common import exceptions as p_exc from neutron.plugins.vmware.dbexts import lsn_db @@ -30,6 +29,7 @@ from neutron.plugins.vmware.dhcp_meta import migration as mig_man from neutron.plugins.vmware.dhcp_meta import nsx from neutron.plugins.vmware.dhcp_meta import rpc from neutron.tests import base +from neutron.tests.unit import testlib_api class DhcpMetadataBuilderTestCase(base.BaseTestCase): @@ -704,7 +704,7 @@ class LsnManagerTestCase(base.BaseTestCase): mock.ANY, mock.ANY, mock.ANY, mock.ANY) -class PersistentLsnManagerTestCase(base.BaseTestCase): +class PersistentLsnManagerTestCase(testlib_api.SqlTestCase): def setUp(self): super(PersistentLsnManagerTestCase, self).setUp() @@ -715,7 +715,6 @@ class PersistentLsnManagerTestCase(base.BaseTestCase): self.mac = 'aa:bb:cc:dd:ee:ff' self.lsn_port_id = 'foo_lsn_port_id' self.tenant_id = 'foo_tenant_id' - db.configure_db() nsx.register_dhcp_opts(cfg) nsx.register_metadata_opts(cfg) lsn_man.register_lsn_opts(cfg) @@ -723,7 +722,6 @@ class PersistentLsnManagerTestCase(base.BaseTestCase): self.context = context.get_admin_context() self.mock_lsn_api_p = mock.patch.object(lsn_man, 'lsn_api') self.mock_lsn_api = self.mock_lsn_api_p.start() - self.addCleanup(db.clear_db) def test_lsn_get(self): lsn_db.lsn_add(self.context, self.net_id, self.lsn_id) diff --git a/neutron/tests/unit/vmware/test_nsx_sync.py b/neutron/tests/unit/vmware/test_nsx_sync.py index 0918a66d6..cacfc246c 100644 --- a/neutron/tests/unit/vmware/test_nsx_sync.py +++ b/neutron/tests/unit/vmware/test_nsx_sync.py @@ -37,6 +37,7 @@ from neutron.plugins.vmware import nsxlib from neutron.plugins.vmware import plugin from neutron.tests import base from neutron.tests.unit import test_api_v2 +from neutron.tests.unit import testlib_api from neutron.tests.unit import vmware from neutron.tests.unit.vmware.apiclient import fake @@ -259,7 +260,7 @@ class SyncLoopingCallTestCase(base.BaseTestCase): self.assertTrue(synchronizer._synchronize_state.call_count) -class SyncTestCase(base.BaseTestCase): +class SyncTestCase(testlib_api.SqlTestCase): def setUp(self): # mock api client