Merge "Add a unit testing configuration fixture"
This commit is contained in:
@@ -17,6 +17,7 @@ Contents
|
|||||||
notifier
|
notifier
|
||||||
serializer
|
serializer
|
||||||
exceptions
|
exceptions
|
||||||
|
conffixture
|
||||||
|
|
||||||
Release Notes
|
Release Notes
|
||||||
=============
|
=============
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from .conffixture import *
|
||||||
from .exceptions import *
|
from .exceptions import *
|
||||||
from .localcontext import *
|
from .localcontext import *
|
||||||
from .notify 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
|
oslo.config
|
||||||
stevedore
|
stevedore
|
||||||
|
|
||||||
|
# for oslo.messging.conffixture
|
||||||
|
fixtures>=0.3.12
|
||||||
|
|
||||||
# for timeutils
|
# for timeutils
|
||||||
iso8601
|
iso8601
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ flake8==2.0
|
|||||||
hacking>=0.5.6,<0.7
|
hacking>=0.5.6,<0.7
|
||||||
|
|
||||||
discover
|
discover
|
||||||
fixtures>=0.3.12
|
|
||||||
mox>=0.5.3
|
mox>=0.5.3
|
||||||
python-subunit
|
python-subunit
|
||||||
testrepository>=0.0.13
|
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 common as driver_common
|
||||||
from oslo.messaging._drivers import impl_rabbit as rabbit_driver
|
from oslo.messaging._drivers import impl_rabbit as rabbit_driver
|
||||||
from oslo.messaging.openstack.common import jsonutils
|
from oslo.messaging.openstack.common import jsonutils
|
||||||
from oslo.messaging import transport as msg_transport
|
|
||||||
from tests import utils as test_utils
|
from tests import utils as test_utils
|
||||||
|
|
||||||
load_tests = testscenarios.load_tests_apply_scenarios
|
load_tests = testscenarios.load_tests_apply_scenarios
|
||||||
@@ -37,10 +36,8 @@ class TestRabbitDriverLoad(test_utils.BaseTestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestRabbitDriverLoad, self).setUp()
|
super(TestRabbitDriverLoad, self).setUp()
|
||||||
self.conf.register_opts(msg_transport._transport_opts)
|
self.messaging_conf.transport_driver = 'rabbit'
|
||||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
self.messaging_conf.in_memory = True
|
||||||
self.config(rpc_backend='rabbit')
|
|
||||||
self.config(fake_rabbit=True)
|
|
||||||
|
|
||||||
def test_driver_load(self):
|
def test_driver_load(self):
|
||||||
transport = messaging.get_transport(self.conf)
|
transport = messaging.get_transport(self.conf)
|
||||||
@@ -81,10 +78,8 @@ class TestRabbitTransportURL(test_utils.BaseTestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestRabbitTransportURL, self).setUp()
|
super(TestRabbitTransportURL, self).setUp()
|
||||||
self.conf.register_opts(msg_transport._transport_opts)
|
self.messaging_conf.transport_driver = 'rabbit'
|
||||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
self.messaging_conf.in_memory = True
|
||||||
self.config(rpc_backend='rabbit')
|
|
||||||
self.config(fake_rabbit=True)
|
|
||||||
|
|
||||||
def test_transport_url(self):
|
def test_transport_url(self):
|
||||||
cnx_init = rabbit_driver.Connection.__init__
|
cnx_init = rabbit_driver.Connection.__init__
|
||||||
@@ -139,10 +134,8 @@ class TestSendReceive(test_utils.BaseTestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestSendReceive, self).setUp()
|
super(TestSendReceive, self).setUp()
|
||||||
self.conf.register_opts(msg_transport._transport_opts)
|
self.messaging_conf.transport_driver = 'rabbit'
|
||||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
self.messaging_conf.in_memory = True
|
||||||
self.config(rpc_backend='rabbit')
|
|
||||||
self.config(fake_rabbit=True)
|
|
||||||
|
|
||||||
def test_send_receive(self):
|
def test_send_receive(self):
|
||||||
transport = messaging.get_transport(self.conf)
|
transport = messaging.get_transport(self.conf)
|
||||||
@@ -313,10 +306,8 @@ class TestRequestWireFormat(test_utils.BaseTestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestRequestWireFormat, self).setUp()
|
super(TestRequestWireFormat, self).setUp()
|
||||||
self.conf.register_opts(msg_transport._transport_opts)
|
self.messaging_conf.transport_driver = 'rabbit'
|
||||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
self.messaging_conf.in_memory = True
|
||||||
self.config(rpc_backend='rabbit')
|
|
||||||
self.config(fake_rabbit=True)
|
|
||||||
|
|
||||||
self.uuids = []
|
self.uuids = []
|
||||||
self.orig_uuid4 = uuid.uuid4
|
self.orig_uuid4 = uuid.uuid4
|
||||||
@@ -462,10 +453,8 @@ class TestReplyWireFormat(test_utils.BaseTestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestReplyWireFormat, self).setUp()
|
super(TestReplyWireFormat, self).setUp()
|
||||||
self.conf.register_opts(msg_transport._transport_opts)
|
self.messaging_conf.transport_driver = 'rabbit'
|
||||||
self.conf.register_opts(rabbit_driver.rabbit_opts)
|
self.messaging_conf.in_memory = True
|
||||||
self.config(rpc_backend='rabbit')
|
|
||||||
self.config(fake_rabbit=True)
|
|
||||||
|
|
||||||
def test_reply_wire_format(self):
|
def test_reply_wire_format(self):
|
||||||
if hasattr(self, 'skip_msg'):
|
if hasattr(self, 'skip_msg'):
|
||||||
|
|||||||
@@ -58,6 +58,10 @@ class BaseTestCase(testtools.TestCase):
|
|||||||
self.conf = conf
|
self.conf = conf
|
||||||
self.addCleanup(self.conf.reset)
|
self.addCleanup(self.conf.reset)
|
||||||
|
|
||||||
|
from oslo.messaging import conffixture
|
||||||
|
self.messaging_conf = self.useFixture(
|
||||||
|
conffixture.ConfFixture(self.conf))
|
||||||
|
|
||||||
moxfixture = self.useFixture(moxstubout.MoxStubout())
|
moxfixture = self.useFixture(moxstubout.MoxStubout())
|
||||||
self.mox = moxfixture.mox
|
self.mox = moxfixture.mox
|
||||||
self.stubs = moxfixture.stubs
|
self.stubs = moxfixture.stubs
|
||||||
|
|||||||
Reference in New Issue
Block a user