Merge "Add a unit testing configuration fixture"
This commit is contained in:
commit
f95c5bb6ed
@ -17,6 +17,7 @@ Contents
|
||||
notifier
|
||||
serializer
|
||||
exceptions
|
||||
conffixture
|
||||
|
||||
Release Notes
|
||||
=============
|
||||
|
@ -13,6 +13,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from .conffixture import *
|
||||
from .exceptions import *
|
||||
from .localcontext import *
|
||||
from .notify import *
|
||||
|
87
oslo/messaging/conffixture.py
Normal file
87
oslo/messaging/conffixture.py
Normal file
@ -0,0 +1,87 @@
|
||||
|
||||
# Copyright 2013 Red Hat, Inc.
|
||||
#
|
||||
# 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.
|
||||
|
||||
__all__ = ['ConfFixture']
|
||||
|
||||
import sys
|
||||
|
||||
import fixtures
|
||||
|
||||
|
||||
def _import_opts(conf, module, opts):
|
||||
__import__(module)
|
||||
conf.register_opts(getattr(sys.modules[module], opts))
|
||||
|
||||
|
||||
class ConfFixture(fixtures.Fixture):
|
||||
|
||||
"""Tweak configuration options for unit testing.
|
||||
|
||||
oslo.messaging registers a number of configuration options, but rather than
|
||||
directly referencing those options, users of the API should use this
|
||||
interface for querying and overriding certain configuration options.
|
||||
|
||||
An example usage::
|
||||
|
||||
self.messaging_conf = self.useFixture(messaging.ConfFixture(cfg.CONF))
|
||||
self.messaging_conf.transport_driver = 'fake'
|
||||
|
||||
:param conf: a ConfigOpts instance
|
||||
:type conf: oslo.config.cfg.ConfigOpts
|
||||
"""
|
||||
|
||||
def __init__(self, conf):
|
||||
self.conf = conf
|
||||
_import_opts(self.conf,
|
||||
'oslo.messaging._drivers.impl_rabbit', 'rabbit_opts')
|
||||
_import_opts(self.conf, 'oslo.messaging.rpc.client', '_client_opts')
|
||||
_import_opts(self.conf, 'oslo.messaging.transport', '_transport_opts')
|
||||
|
||||
def setUp(self):
|
||||
super(ConfFixture, self).setUp()
|
||||
self.addCleanup(self.conf.reset)
|
||||
|
||||
@property
|
||||
def transport_driver(self):
|
||||
"""The transport driver - e.g. 'rabbit', 'qpid' or 'fake'."""
|
||||
return self.conf.rpc_backend
|
||||
|
||||
@transport_driver.setter
|
||||
def transport_driver(self, value):
|
||||
self.conf.set_override('rpc_backend', value)
|
||||
|
||||
@property
|
||||
def in_memory(self):
|
||||
"""Use an in-memory transport; currently supported by rabbit driver."""
|
||||
if (('rabbit' in self.transport_driver or
|
||||
'kombu' in self.transport_driver)):
|
||||
return self.conf.fake_rabbit
|
||||
else:
|
||||
return False
|
||||
|
||||
@in_memory.setter
|
||||
def in_memory(self, value):
|
||||
if (('rabbit' in self.transport_driver or
|
||||
'kombu' in self.transport_driver)):
|
||||
self.conf.set_override('fake_rabbit', value)
|
||||
|
||||
@property
|
||||
def response_timeout(self):
|
||||
"""Default number of seconds to wait for a response from a call."""
|
||||
return self.conf.rpc_response_timeout
|
||||
|
||||
@response_timeout.setter
|
||||
def response_timeout(self, value):
|
||||
self.conf.set_override('rpc_response_timeout', value)
|
@ -1,6 +1,9 @@
|
||||
oslo.config
|
||||
stevedore
|
||||
|
||||
# for oslo.messging.conffixture
|
||||
fixtures>=0.3.12
|
||||
|
||||
# for timeutils
|
||||
iso8601
|
||||
|
||||
|
@ -5,7 +5,6 @@ flake8==2.0
|
||||
hacking>=0.5.6,<0.7
|
||||
|
||||
discover
|
||||
fixtures>=0.3.12
|
||||
mox>=0.5.3
|
||||
python-subunit
|
||||
testrepository>=0.0.13
|
||||
|
@ -27,7 +27,6 @@ from oslo import messaging
|
||||
from oslo.messaging._drivers import common as driver_common
|
||||
from oslo.messaging._drivers import impl_rabbit as rabbit_driver
|
||||
from oslo.messaging.openstack.common import jsonutils
|
||||
from oslo.messaging import transport as msg_transport
|
||||
from tests import utils as test_utils
|
||||
|
||||
load_tests = testscenarios.load_tests_apply_scenarios
|
||||
@ -37,10 +36,8 @@ class TestRabbitDriverLoad(test_utils.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestRabbitDriverLoad, self).setUp()
|
||||
self.conf.register_opts(msg_transport._transport_opts)
|
||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
||||
self.config(rpc_backend='rabbit')
|
||||
self.config(fake_rabbit=True)
|
||||
self.messaging_conf.transport_driver = 'rabbit'
|
||||
self.messaging_conf.in_memory = True
|
||||
|
||||
def test_driver_load(self):
|
||||
transport = messaging.get_transport(self.conf)
|
||||
@ -81,10 +78,8 @@ class TestRabbitTransportURL(test_utils.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestRabbitTransportURL, self).setUp()
|
||||
self.conf.register_opts(msg_transport._transport_opts)
|
||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
||||
self.config(rpc_backend='rabbit')
|
||||
self.config(fake_rabbit=True)
|
||||
self.messaging_conf.transport_driver = 'rabbit'
|
||||
self.messaging_conf.in_memory = True
|
||||
|
||||
def test_transport_url(self):
|
||||
cnx_init = rabbit_driver.Connection.__init__
|
||||
@ -139,10 +134,8 @@ class TestSendReceive(test_utils.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestSendReceive, self).setUp()
|
||||
self.conf.register_opts(msg_transport._transport_opts)
|
||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
||||
self.config(rpc_backend='rabbit')
|
||||
self.config(fake_rabbit=True)
|
||||
self.messaging_conf.transport_driver = 'rabbit'
|
||||
self.messaging_conf.in_memory = True
|
||||
|
||||
def test_send_receive(self):
|
||||
transport = messaging.get_transport(self.conf)
|
||||
@ -313,10 +306,8 @@ class TestRequestWireFormat(test_utils.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestRequestWireFormat, self).setUp()
|
||||
self.conf.register_opts(msg_transport._transport_opts)
|
||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
||||
self.config(rpc_backend='rabbit')
|
||||
self.config(fake_rabbit=True)
|
||||
self.messaging_conf.transport_driver = 'rabbit'
|
||||
self.messaging_conf.in_memory = True
|
||||
|
||||
self.uuids = []
|
||||
self.orig_uuid4 = uuid.uuid4
|
||||
@ -462,10 +453,8 @@ class TestReplyWireFormat(test_utils.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestReplyWireFormat, self).setUp()
|
||||
self.conf.register_opts(msg_transport._transport_opts)
|
||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
||||
self.config(rpc_backend='rabbit')
|
||||
self.config(fake_rabbit=True)
|
||||
self.messaging_conf.transport_driver = 'rabbit'
|
||||
self.messaging_conf.in_memory = True
|
||||
|
||||
def test_reply_wire_format(self):
|
||||
if hasattr(self, 'skip_msg'):
|
||||
|
@ -58,6 +58,10 @@ class BaseTestCase(testtools.TestCase):
|
||||
self.conf = conf
|
||||
self.addCleanup(self.conf.reset)
|
||||
|
||||
from oslo.messaging import conffixture
|
||||
self.messaging_conf = self.useFixture(
|
||||
conffixture.ConfFixture(self.conf))
|
||||
|
||||
moxfixture = self.useFixture(moxstubout.MoxStubout())
|
||||
self.mox = moxfixture.mox
|
||||
self.stubs = moxfixture.stubs
|
||||
|
Loading…
x
Reference in New Issue
Block a user