diff --git a/neutron/common/test_lib.py b/neutron/common/test_lib.py new file mode 100644 index 00000000000..994de30f09f --- /dev/null +++ b/neutron/common/test_lib.py @@ -0,0 +1,42 @@ +# Copyright (c) 2010 OpenStack Foundation +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Colorizer Code is borrowed from Twisted: +# Copyright (c) 2001-2010 Twisted Matrix Laboratories. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# describes parameters used by different unit/functional tests +# a plugin-specific testing mechanism should import this dictionary +# and override the values in it if needed (e.g., run_tests.py in +# neutron/plugins/openvswitch/ ) +test_config = {} diff --git a/neutron/tests/unit/db/test_db_base_plugin_v2.py b/neutron/tests/unit/db/test_db_base_plugin_v2.py index 62f774053da..ba99aa62487 100644 --- a/neutron/tests/unit/db/test_db_base_plugin_v2.py +++ b/neutron/tests/unit/db/test_db_base_plugin_v2.py @@ -22,6 +22,7 @@ import netaddr from oslo_config import cfg from oslo_db import exception as db_exc from oslo_utils import importutils +import six from sqlalchemy import orm from testtools import matchers import webob.exc @@ -36,6 +37,7 @@ from neutron.callbacks import registry from neutron.common import constants from neutron.common import exceptions as n_exc 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 db_base_plugin_v2 @@ -104,8 +106,11 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): # Update the plugin self.setup_coreplugin(plugin) - service_plugins = (service_plugins or {}).values() - cfg.CONF.set_override('service_plugins', list(service_plugins)) + cfg.CONF.set_override( + 'service_plugins', + [test_lib.test_config.get(key, default) + for key, default in six.iteritems(service_plugins or {})] + ) cfg.CONF.set_override('base_mac', "12:34:56:78:90:ab") cfg.CONF.set_override('max_dns_nameservers', 2) @@ -157,6 +162,14 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): self.ext_api = None super(NeutronDbPluginV2TestCase, self).tearDown() + def setup_config(self): + # Create the default configurations + args = ['--config-file', base.etcdir('neutron.conf')] + # 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]) + super(NeutronDbPluginV2TestCase, self).setup_config(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