From 3f174c61d2d672d254b7c923f1ca4a2a5911db4d Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Mon, 11 Nov 2013 04:30:54 -0500 Subject: [PATCH] Replace stubout with fixtures blueprint remove-mox The last step in removing mox is to remove stubout usage. Lucky for us, the fixtures library, which we are already using, can take on the challenge quite well. Change-Id: Id33cc8988935a1905f9a14351964f0bb24ef82e3 --- neutron/common/exceptions.py | 7 +++--- neutron/tests/base.py | 12 ++++++---- neutron/tests/unit/linuxbridge/test_rpcapi.py | 7 +++--- neutron/tests/unit/mlnx/test_rpcapi.py | 7 +++--- .../tests/unit/openvswitch/test_ovs_rpcapi.py | 7 +++--- .../tests/unit/test_extension_ext_gw_mode.py | 24 ------------------- test-requirements.txt | 1 - 7 files changed, 20 insertions(+), 45 deletions(-) diff --git a/neutron/common/exceptions.py b/neutron/common/exceptions.py index df49df8580b..35427d23d21 100644 --- a/neutron/common/exceptions.py +++ b/neutron/common/exceptions.py @@ -19,8 +19,6 @@ Neutron base exception handling. """ -_FATAL_EXCEPTION_FORMAT_ERRORS = False - class NeutronException(Exception): """Base Neutron Exception. @@ -36,7 +34,7 @@ class NeutronException(Exception): super(NeutronException, self).__init__(self.message % kwargs) self.msg = self.message % kwargs except Exception: - if _FATAL_EXCEPTION_FORMAT_ERRORS: + if self.use_fatal_exceptions(): raise else: # at least get the core message out if something happened @@ -45,6 +43,9 @@ class NeutronException(Exception): def __unicode__(self): return unicode(self.msg) + def use_fatal_exceptions(self): + return False + class BadRequest(NeutronException): message = _('Bad %(resource)s request: %(msg)s') diff --git a/neutron/tests/base.py b/neutron/tests/base.py index e611a28ecf0..8426d1af8b1 100644 --- a/neutron/tests/base.py +++ b/neutron/tests/base.py @@ -24,17 +24,18 @@ import os import eventlet.timeout import fixtures from oslo.config import cfg -import stubout import testtools -from neutron.common import exceptions - CONF = cfg.CONF TRUE_STRING = ['True', '1'] LOG_FORMAT = "%(asctime)s %(levelname)8s [%(name)s] %(message)s" +def fake_use_fatal_exceptions(*args): + return True + + class BaseTestCase(testtools.TestCase): def setUp(self): @@ -72,8 +73,9 @@ class BaseTestCase(testtools.TestCase): if os.environ.get('OS_STDERR_CAPTURE') in TRUE_STRING: stderr = self.useFixture(fixtures.StringStream('stderr')).stream self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr)) - self.stubs = stubout.StubOutForTesting() - self.stubs.Set(exceptions, '_FATAL_EXCEPTION_FORMAT_ERRORS', True) + self.useFixture(fixtures.MonkeyPatch( + 'neutron.common.exceptions.NeutronException.use_fatal_exceptions', + fake_use_fatal_exceptions)) def config(self, **kw): """Override some configuration values. diff --git a/neutron/tests/unit/linuxbridge/test_rpcapi.py b/neutron/tests/unit/linuxbridge/test_rpcapi.py index e6e8587e0ec..762a65be1d3 100644 --- a/neutron/tests/unit/linuxbridge/test_rpcapi.py +++ b/neutron/tests/unit/linuxbridge/test_rpcapi.py @@ -18,13 +18,12 @@ Unit Tests for linuxbridge rpc """ +import fixtures from oslo.config import cfg -import stubout from neutron.agent import rpc as agent_rpc from neutron.common import topics from neutron.openstack.common import context -from neutron.openstack.common import rpc from neutron.plugins.linuxbridge import lb_neutron_plugin as plb from neutron.tests import base @@ -49,8 +48,8 @@ class rpcApiTestCase(base.BaseTestCase): if expected_retval: return expected_retval - self.stubs = stubout.StubOutForTesting() - self.stubs.Set(rpc, rpc_method, _fake_rpc_method) + self.useFixture(fixtures.MonkeyPatch( + 'neutron.openstack.common.rpc.' + rpc_method, _fake_rpc_method)) retval = getattr(rpcapi, method)(ctxt, **kwargs) diff --git a/neutron/tests/unit/mlnx/test_rpcapi.py b/neutron/tests/unit/mlnx/test_rpcapi.py index 900a50f0fd8..80dcf78277f 100644 --- a/neutron/tests/unit/mlnx/test_rpcapi.py +++ b/neutron/tests/unit/mlnx/test_rpcapi.py @@ -19,13 +19,12 @@ Unit Tests for Mellanox RPC (major reuse of linuxbridge rpc unit tests) """ +import fixtures from oslo.config import cfg -import stubout from neutron.agent import rpc as agent_rpc from neutron.common import topics from neutron.openstack.common import context -from neutron.openstack.common import rpc from neutron.plugins.mlnx import agent_notify_api from neutron.tests import base @@ -51,8 +50,8 @@ class rpcApiTestCase(base.BaseTestCase): if expected_retval: return expected_retval - self.stubs = stubout.StubOutForTesting() - self.stubs.Set(rpc, rpc_method, _fake_rpc_method) + self.useFixture(fixtures.MonkeyPatch( + 'neutron.openstack.common.rpc.' + rpc_method, _fake_rpc_method)) retval = getattr(rpcapi, method)(ctxt, **kwargs) diff --git a/neutron/tests/unit/openvswitch/test_ovs_rpcapi.py b/neutron/tests/unit/openvswitch/test_ovs_rpcapi.py index 1a480a44a42..1b6a7370a7b 100644 --- a/neutron/tests/unit/openvswitch/test_ovs_rpcapi.py +++ b/neutron/tests/unit/openvswitch/test_ovs_rpcapi.py @@ -18,12 +18,11 @@ Unit Tests for openvswitch rpc """ -import stubout +import fixtures from neutron.agent import rpc as agent_rpc from neutron.common import topics from neutron.openstack.common import context -from neutron.openstack.common import rpc from neutron.plugins.openvswitch.common import constants from neutron.plugins.openvswitch import ovs_neutron_plugin as povs from neutron.tests import base @@ -48,8 +47,8 @@ class rpcApiTestCase(base.BaseTestCase): if expected_retval: return expected_retval - self.stubs = stubout.StubOutForTesting() - self.stubs.Set(rpc, rpc_method, _fake_rpc_method) + self.useFixture(fixtures.MonkeyPatch( + 'neutron.openstack.common.rpc.' + rpc_method, _fake_rpc_method)) retval = getattr(rpcapi, method)(ctxt, **kwargs) diff --git a/neutron/tests/unit/test_extension_ext_gw_mode.py b/neutron/tests/unit/test_extension_ext_gw_mode.py index 585a4700f0d..ac2fd5171e0 100644 --- a/neutron/tests/unit/test_extension_ext_gw_mode.py +++ b/neutron/tests/unit/test_extension_ext_gw_mode.py @@ -18,9 +18,6 @@ # @author: Salvatore Orlando, Nicira, Inc # -import stubout - -import fixtures import mock from oslo.config import cfg from webob import exc @@ -49,25 +46,6 @@ FAKE_ROUTER_PORT_ID = _uuid() FAKE_ROUTER_PORT_MAC = 'bb:bb:bb:bb:bb:bb' -class StuboutFixture(fixtures.Fixture): - """Setup stubout and add unsetAll to cleanup.""" - - def setUp(self): - super(StuboutFixture, self).setUp() - self.stubs = stubout.StubOutForTesting() - self.addCleanup(self.stubs.UnsetAll) - self.addCleanup(self.stubs.SmartUnsetAll) - - -def stubout_floating_ip_calls(stubs, fake_count=0): - - def get_floatingips_count(_1, _2, filters): - return fake_count - - stubs.Set(l3_db.L3_NAT_db_mixin, 'get_floatingips_count', - get_floatingips_count) - - class TestExtensionManager(object): def get_resources(self): @@ -104,8 +82,6 @@ class TestL3GwModeMixin(base.BaseTestCase): def setUp(self): super(TestL3GwModeMixin, self).setUp() - stubout_fixture = self.useFixture(StuboutFixture()) - self.stubs = stubout_fixture.stubs self.target_object = TestDbIntPlugin() # Patch the context ctx_patcher = mock.patch('neutron.context', autospec=True) diff --git a/test-requirements.txt b/test-requirements.txt index e4276a2042e..fca3a97bac8 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -5,7 +5,6 @@ coverage>=3.6 discover fixtures>=0.3.14 mock>=1.0 -mox>=0.5.3 python-subunit sphinx>=1.1.2 testrepository>=0.0.17