def test_router_delete_event_exception_preserved(self): super(L3CfgAgentRouterApplianceTestCase, self).test_router_delete_event_exception_preserved() registry.clear()
def test_neutron_registry_callback(mock_agent_rpc): """Test callback functions used for registering for RPC events in driver. Creates two drivers to simulate a differentiated environment deployment, then tests that each driver registers different functions to receive notification from Neutron after subscribing for events, and that the functions are called by the Neutron callback manager. Also, see related unit test, f5lbaasdriver/v2/bigip/test/test_bind_registry_callback.py :param mock_agent_rpc: Not used. Mock needed to create F5DriverV2. """ plugin = mock.MagicMock() # start with empty Neutron RPC callback registry registry.clear() # create default driver default_driver = F5DriverV2(plugin) default_driver.plugin_rpc = mock.MagicMock() # create a differentiated environment driver dmz_driver = F5DriverV2(plugin, 'dmz') dmz_driver.plugin_rpc = mock.MagicMock() default_callback_func = default_driver._bindRegistryCallback() dmz_callback_func = dmz_driver._bindRegistryCallback() # two different callback functions created assert default_callback_func != dmz_callback_func # registry holds two callbacks callback_mgr = registry._get_callback_manager() assert len( callback_mgr._callbacks[resources.PROCESS][events.AFTER_CREATE]) == 2 # both callbacks are in registry callbacks = callback_mgr._callbacks[resources.PROCESS][events.AFTER_CREATE] callback_iter = iter(callbacks) callback_name = next(callback_iter).split('.')[-1] assert callback_name == default_callback_func.__name__ callback_name = next(callback_iter).split('.')[-1] assert callback_name == dmz_callback_func.__name__ # callbacks can be called back with mock.patch('f5lbaasdriver.v2.bigip.driver_v2.LOG') as mock_log: # invoke callbacks from callback manager callback_mgr.notify( resources.PROCESS, events.AFTER_CREATE, mock.MagicMock()) # create_rpc_listener called assert default_driver.plugin_rpc.create_rpc_listener.called assert dmz_driver.plugin_rpc.create_rpc_listener.called # debug messages logged log_iter = iter(mock_log.debug.call_args_list) args, kwargs = log_iter.next() assert str(args[0]).startswith("F5DriverV2 with env None received") args, kwargs = log_iter.next() assert str(args[0]).startswith("F5DriverV2 with env dmz received")
def test_neutron_registry_callback(mock_agent_rpc): """Test callback functions used for registering for RPC events in driver. Creates two drivers to simulate a differentiated environment deployment, then tests that each driver registers different functions to receive notification from Neutron after subscribing for events, and that the functions are called by the Neutron callback manager. Also, see related unit test, f5lbaasdriver/v2/bigip/test/test_bind_registry_callback.py :param mock_agent_rpc: Not used. Mock needed to create F5DriverV2. """ plugin = mock.MagicMock() # start with empty Neutron RPC callback registry registry.clear() # create default driver default_driver = F5DriverV2(plugin) default_driver.plugin_rpc = mock.MagicMock() # create a differentiated environment driver dmz_driver = F5DriverV2(plugin, 'dmz') dmz_driver.plugin_rpc = mock.MagicMock() default_callback_func = default_driver._bindRegistryCallback() dmz_callback_func = dmz_driver._bindRegistryCallback() # two different callback functions created assert default_callback_func != dmz_callback_func # registry holds two callbacks callback_mgr = registry._get_callback_manager() assert len( callback_mgr._callbacks[resources.PROCESS][events.AFTER_CREATE]) == 2 # both callbacks are in registry callbacks = callback_mgr._callbacks[resources.PROCESS][events.AFTER_CREATE] callback_iter = iter(callbacks) callback_name = next(callback_iter).split('.')[-1] assert callback_name == default_callback_func.__name__ callback_name = next(callback_iter).split('.')[-1] assert callback_name == dmz_callback_func.__name__ # callbacks can be called back with mock.patch('f5lbaasdriver.v2.bigip.driver_v2.LOG') as mock_log: # invoke callbacks from callback manager callback_mgr.notify(resources.PROCESS, events.AFTER_CREATE, mock.MagicMock()) # create_rpc_listener called assert default_driver.plugin_rpc.create_rpc_listener.called assert dmz_driver.plugin_rpc.create_rpc_listener.called # debug messages logged log_iter = iter(mock_log.debug.call_args_list) args, kwargs = log_iter.next() assert str(args[0]).startswith("F5DriverV2 with env None received") args, kwargs = log_iter.next() assert str(args[0]).startswith("F5DriverV2 with env dmz received")