Stop loading OVOServerRpcInterface in ML2 testcase

This RPC notifier has an asynchronous handler that does DB lookups
to send notifications after an object has been created. Not only
is this a waste of resources in unit tests, it interferes with tests
that are inspecting the DB queries that occur between calls.

This just blocks the OVOServerRpcInterface in the ML2 test case and
then enables it for the set of unit tests that needs it.

Change-Id: I807e2445da9be241c24d8b6e5bda8b12927aa7fc
Closes-Bug: #1679775
(cherry picked from commit 9c43959651)
This commit is contained in:
Kevin Benton 2017-04-18 01:27:37 -07:00 committed by Jakub Libosvar
parent 2272a00f77
commit 3f28694e18
2 changed files with 7 additions and 0 deletions

View File

@ -18,6 +18,7 @@ from neutron import context
from neutron.objects import network
from neutron.objects import securitygroup
from neutron.objects import subnet
from neutron.plugins.ml2 import ovo_rpc
from neutron.tests.unit.plugins.ml2 import test_plugin
@ -31,6 +32,9 @@ class OVOServerRpcInterfaceTestCase(test_plugin.Ml2PluginV2TestCase):
receive = lambda s, ctx, obs, evt: self.received.append((obs[0], evt))
mock.patch('neutron.api.rpc.handlers.resources_rpc.'
'ResourcesPushRpcApi.push', new=receive).start()
# base case blocks the handler
self.ovo_push_interface_p.stop()
self.plugin.ovo_notifier = ovo_rpc.OVOServerRpcInterface()
def _assert_object_received(self, ovotype, oid=None, event=None):
self.plugin.ovo_notifier.wait()

View File

@ -131,6 +131,9 @@ class Ml2PluginV2TestCase(test_plugin.NeutronDbPluginV2TestCase):
self.port_create_status = 'DOWN'
def setUp(self):
self.ovo_push_interface_p = mock.patch(
'neutron.plugins.ml2.ovo_rpc.OVOServerRpcInterface')
self.ovo_push_interface_p.start()
# Enable the test mechanism driver to ensure that
# we can successfully call through to all mechanism
# driver apis.