From c2634fa580b9b5e1c55bb6dc7eb02f0de989d747 Mon Sep 17 00:00:00 2001 From: Jakub Libosvar Date: Fri, 18 Apr 2014 15:30:32 +0200 Subject: [PATCH] Fix H302 violations in unit tests H302 violation is reported by flake8 when importing separated objects from modules instead of importing the whole module. e.g. from package.module import function function() is changed to from package import module module.function() Change-Id: Ic6975f39c755ded54149a9c01fcdcfaf78c596fc Partial-Bug: #1291032 --- .../agent/linux/test_async_process.py | 4 +- .../unit/_test_extension_portbindings.py | 4 +- .../tests/unit/agent/linux/test_ovs_lib.py | 11 +- .../tests/unit/bigswitch/test_capabilities.py | 6 +- .../unit/bigswitch/test_restproxy_agent.py | 4 +- .../unit/bigswitch/test_restproxy_plugin.py | 14 +- .../tests/unit/bigswitch/test_router_db.py | 24 +- .../unit/bigswitch/test_servermanager.py | 32 +- neutron/tests/unit/bigswitch/test_ssl.py | 6 +- neutron/tests/unit/cisco/n1kv/fake_client.py | 4 +- neutron/tests/unit/cisco/n1kv/test_n1kv_db.py | 6 +- .../tests/unit/cisco/n1kv/test_n1kv_plugin.py | 31 +- .../tests/unit/cisco/test_network_plugin.py | 6 +- .../db/loadbalancer/test_db_loadbalancer.py | 11 +- .../unit/db/metering/test_db_metering.py | 7 +- neutron/tests/unit/db/vpn/test_db_vpnaas.py | 7 +- neutron/tests/unit/dummy_plugin.py | 4 +- neutron/tests/unit/extension_stubs.py | 4 +- .../unit/extensions/extensionattribute.py | 6 +- neutron/tests/unit/extensions/foxinsocks.py | 4 +- .../unit/hyperv/test_hyperv_neutron_plugin.py | 4 +- neutron/tests/unit/linuxbridge/test_lb_db.py | 4 +- neutron/tests/unit/metaplugin/test_basic.py | 7 +- .../tests/unit/metaplugin/test_metaplugin.py | 22 +- .../drivers/cisco/nexus/test_cisco_mech.py | 14 +- .../unit/ml2/drivers/test_bigswitch_mech.py | 14 +- neutron/tests/unit/ml2/test_type_gre.py | 4 +- neutron/tests/unit/ml2/test_type_vxlan.py | 4 +- .../tests/unit/mlnx/test_mlnx_comm_utils.py | 25 +- neutron/tests/unit/mlnx/test_mlnx_db.py | 4 +- .../unit/mlnx/test_mlnx_plugin_config.py | 4 +- neutron/tests/unit/nec/test_nec_agent.py | 6 +- neutron/tests/unit/nec/test_nec_plugin.py | 14 +- neutron/tests/unit/nec/test_trema_driver.py | 11 +- .../unit/oneconvergence/test_nvsd_plugin.py | 6 +- .../unit/openvswitch/test_agent_scheduler.py | 10 +- neutron/tests/unit/openvswitch/test_ovs_db.py | 8 +- .../unit/plumgrid/test_plumgrid_plugin.py | 6 +- neutron/tests/unit/ryu/test_ryu_agent.py | 32 +- neutron/tests/unit/ryu/test_ryu_db.py | 9 +- .../drivers/linux/test_iptables_fwaas.py | 95 +-- .../netscaler/test_netscaler_driver.py | 4 +- .../drivers/test_agent_driver_base.py | 4 +- .../metering/drivers/test_iptables_driver.py | 265 ++++---- .../vpn/device_drivers/cisco_csr_mock.py | 10 +- .../device_drivers/notest_cisco_csr_rest.py | 272 +++++--- neutron/tests/unit/test_api_v2.py | 13 +- neutron/tests/unit/test_db_plugin.py | 80 +-- neutron/tests/unit/test_debug_commands.py | 42 +- neutron/tests/unit/test_dhcp_agent.py | 8 +- .../test_extension_allowedaddresspairs.py | 6 +- neutron/tests/unit/test_extension_ext_net.py | 10 +- neutron/tests/unit/test_extension_pnet.py | 4 +- .../tests/unit/test_extension_portsecurity.py | 4 +- neutron/tests/unit/test_iptables_firewall.py | 632 +++++++++--------- neutron/tests/unit/test_l3_plugin.py | 8 +- neutron/tests/unit/test_linux_interface.py | 4 +- neutron/tests/unit/test_neutron_manager.py | 32 +- neutron/tests/unit/test_post_mortem_debug.py | 4 +- .../tests/unit/test_security_groups_rpc.py | 212 +++--- .../unit/vmware/apiclient/test_api_common.py | 8 +- .../apiclient/test_api_eventlet_request.py | 101 ++- .../vmware/extensions/test_maclearning.py | 23 +- .../unit/vmware/extensions/test_networkgw.py | 16 +- .../vmware/extensions/test_portsecurity.py | 14 +- .../vmware/extensions/test_providernet.py | 10 +- .../unit/vmware/extensions/test_qosqueues.py | 8 +- neutron/tests/unit/vmware/nsxlib/base.py | 11 +- .../tests/unit/vmware/nsxlib/test_router.py | 16 +- .../unit/vmware/nsxlib/test_versioning.py | 10 +- .../tests/unit/vmware/test_agent_scheduler.py | 16 +- neutron/tests/unit/vmware/test_dhcpmeta.py | 22 +- neutron/tests/unit/vmware/test_nsx_opts.py | 48 +- neutron/tests/unit/vmware/test_nsx_plugin.py | 44 +- neutron/tests/unit/vmware/test_nsx_sync.py | 12 +- neutron/tests/unit/vmware/test_nsx_utils.py | 74 +- .../unit/vmware/vshield/test_edge_router.py | 19 +- .../vmware/vshield/test_firewall_driver.py | 7 +- .../vshield/test_loadbalancer_driver.py | 7 +- .../unit/vmware/vshield/test_vcns_driver.py | 89 ++- 80 files changed, 1372 insertions(+), 1295 deletions(-) diff --git a/neutron/tests/functional/agent/linux/test_async_process.py b/neutron/tests/functional/agent/linux/test_async_process.py index 3d829d6896b..dd2ebb8896e 100644 --- a/neutron/tests/functional/agent/linux/test_async_process.py +++ b/neutron/tests/functional/agent/linux/test_async_process.py @@ -17,7 +17,7 @@ import eventlet import fixtures -from six.moves import xrange +from six import moves from neutron.agent.linux import async_process from neutron.tests import base @@ -29,7 +29,7 @@ class TestAsyncProcess(base.BaseTestCase): super(TestAsyncProcess, self).setUp() self.test_file_path = self.useFixture( fixtures.TempDir()).join("test_async_process.tmp") - self.data = [str(x) for x in xrange(4)] + self.data = [str(x) for x in moves.xrange(4)] with file(self.test_file_path, 'w') as f: f.writelines('%s\n' % item for item in self.data) diff --git a/neutron/tests/unit/_test_extension_portbindings.py b/neutron/tests/unit/_test_extension_portbindings.py index 45c04f6bd8e..3a78b8d8f6c 100644 --- a/neutron/tests/unit/_test_extension_portbindings.py +++ b/neutron/tests/unit/_test_extension_portbindings.py @@ -26,7 +26,7 @@ from webob import exc from neutron import context from neutron.extensions import portbindings -from neutron.manager import NeutronManager +from neutron import manager from neutron.tests.unit import test_db_plugin @@ -75,7 +75,7 @@ class PortBindingsTestCase(test_db_plugin.NeutronDbPluginV2TestCase): self._check_response_no_portbindings(non_admin_port) def test_ports_vif_details(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() cfg.CONF.set_default('allow_overlapping_ips', True) with contextlib.nested(self.port(), self.port()): ctx = context.get_admin_context() diff --git a/neutron/tests/unit/agent/linux/test_ovs_lib.py b/neutron/tests/unit/agent/linux/test_ovs_lib.py index b34f7be6487..96a7e8ee64b 100644 --- a/neutron/tests/unit/agent/linux/test_ovs_lib.py +++ b/neutron/tests/unit/agent/linux/test_ovs_lib.py @@ -12,10 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. -try: - from collections import OrderedDict -except ImportError: - from ordereddict import OrderedDict +import collections import mock from oslo.config import cfg import testtools @@ -29,6 +26,12 @@ from neutron.plugins.openvswitch.common import constants from neutron.tests import base from neutron.tests import tools +try: + OrderedDict = collections.OrderedDict +except AttributeError: + import ordereddict + OrderedDict = ordereddict.OrderedDict + OVS_LINUX_KERN_VERS_WITHOUT_VXLAN = "3.12.0" diff --git a/neutron/tests/unit/bigswitch/test_capabilities.py b/neutron/tests/unit/bigswitch/test_capabilities.py index 6304303143c..cc81b70b0a3 100644 --- a/neutron/tests/unit/bigswitch/test_capabilities.py +++ b/neutron/tests/unit/bigswitch/test_capabilities.py @@ -17,7 +17,7 @@ # # @author Kevin Benton -from contextlib import nested +import contextlib import mock from neutron.tests.unit.bigswitch import test_router_db @@ -32,7 +32,7 @@ HTTPCON = SERVERMANAGER + '.httplib.HTTPConnection' class CapabilitiesTests(test_router_db.RouterDBTestBase): def test_floating_ip_capability(self): - with nested( + with contextlib.nested( mock.patch(SERVERRESTCALL, return_value=(200, None, None, '["floatingip"]')), mock.patch(SERVERPOOL + '.rest_create_floatingip', @@ -51,7 +51,7 @@ class CapabilitiesTests(test_router_db.RouterDBTestBase): ) def test_floating_ip_capability_neg(self): - with nested( + with contextlib.nested( mock.patch(SERVERRESTCALL, return_value=(200, None, None, '[""]')), mock.patch(SERVERPOOL + '.rest_update_network', diff --git a/neutron/tests/unit/bigswitch/test_restproxy_agent.py b/neutron/tests/unit/bigswitch/test_restproxy_agent.py index 5a5ee438eb7..258ab1a0a82 100644 --- a/neutron/tests/unit/bigswitch/test_restproxy_agent.py +++ b/neutron/tests/unit/bigswitch/test_restproxy_agent.py @@ -15,7 +15,7 @@ # # @author: Kevin Benton, Big Switch Networks -from contextlib import nested +import contextlib import mock @@ -164,7 +164,7 @@ class TestRestProxyAgent(BaseAgentTestCase): 'CONF.RESTPROXYAGENT.polling_interval': 5, 'CONF.RESTPROXYAGENT.virtual_switch_type': 'ovs', 'CONF.AGENT.root_helper': 'helper'} - with nested( + with contextlib.nested( mock.patch(AGENTMOD + '.cfg', **cfg_attrs), mock.patch(NEUTRONCFG), mock.patch(PLCONFIG), diff --git a/neutron/tests/unit/bigswitch/test_restproxy_plugin.py b/neutron/tests/unit/bigswitch/test_restproxy_plugin.py index 012dae9a20c..df3aeb030fe 100644 --- a/neutron/tests/unit/bigswitch/test_restproxy_plugin.py +++ b/neutron/tests/unit/bigswitch/test_restproxy_plugin.py @@ -15,7 +15,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from contextlib import nested +import contextlib import mock from oslo.config import cfg import webob.exc @@ -23,7 +23,7 @@ import webob.exc from neutron.common import constants from neutron import context from neutron.extensions import portbindings -from neutron.manager import NeutronManager +from neutron import manager from neutron.tests.unit import _test_extension_portbindings as test_bindings from neutron.tests.unit.bigswitch import fake_server from neutron.tests.unit.bigswitch import test_base @@ -106,7 +106,7 @@ class TestBigSwitchProxyPortsV2(test_plugin.TestPortsV2, self._list_ports('json', netid=netid))['ports'] def test_rollback_for_port_create(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() with self.subnet() as s: # stop normal patch self.httpPatch.stop() @@ -183,7 +183,7 @@ class TestBigSwitchProxyPortsV2(test_plugin.TestPortsV2, def test_create404_triggers_sync(self): # allow async port thread for this patch self.spawn_p.stop() - with nested( + with contextlib.nested( self.subnet(), patch(HTTPCON, create=True, new=fake_server.HTTPConnectionMock404), @@ -192,7 +192,7 @@ class TestBigSwitchProxyPortsV2(test_plugin.TestPortsV2, ) as (s, mock_http, mock_send_all): with self.port(subnet=s, device_id='somedevid') as p: # wait for the async port thread to finish - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() plugin.evpool.waitall() call = mock.call( send_routers=True, send_ports=True, send_floating_ips=True, @@ -259,7 +259,7 @@ class TestBigSwitchProxyNetworksV2(test_plugin.TestNetworksV2, def _get_networks(self, tenant_id): ctx = context.Context('', tenant_id) - return NeutronManager.get_plugin().get_networks(ctx) + return manager.NeutronManager.get_plugin().get_networks(ctx) def test_rollback_on_network_create(self): tid = test_api_v2._uuid() @@ -306,7 +306,7 @@ class TestBigSwitchProxySubnetsV2(test_plugin.TestSubnetsV2, class TestBigSwitchProxySync(BigSwitchProxyPluginV2TestCase): def test_send_data(self): - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() result = plugin_obj._send_all_data() self.assertEqual(result[0], 200) diff --git a/neutron/tests/unit/bigswitch/test_router_db.py b/neutron/tests/unit/bigswitch/test_router_db.py index 0a7fa69b2de..fc82b727cf8 100644 --- a/neutron/tests/unit/bigswitch/test_router_db.py +++ b/neutron/tests/unit/bigswitch/test_router_db.py @@ -21,15 +21,15 @@ import contextlib import copy -from mock import patch +import mock from oslo.config import cfg -from six.moves import xrange +from six import moves from webob import exc -from neutron.common.test_lib import test_config +from neutron.common import test_lib from neutron import context from neutron.extensions import l3 -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import uuidutils from neutron.plugins.bigswitch.extensions import routerrule from neutron.tests.unit.bigswitch import fake_server @@ -79,12 +79,12 @@ class RouterDBTestBase(test_base.BigSwitchTestBase, super(RouterDBTestBase, self).setUp(plugin=self._plugin_name, ext_mgr=ext_mgr) cfg.CONF.set_default('allow_overlapping_ips', False) - self.plugin_obj = NeutronManager.get_plugin() + self.plugin_obj = manager.NeutronManager.get_plugin() self.startHttpPatch() def tearDown(self): super(RouterDBTestBase, self).tearDown() - del test_config['config_files'] + del test_lib.test_config['config_files'] class RouterDBTestCase(RouterDBTestBase, @@ -172,7 +172,7 @@ class RouterDBTestCase(RouterDBTestBase, port_id=p1['port']['id'], tenant_id=tenant1_id) self.httpPatch.stop() - multiFloatPatch = patch( + multiFloatPatch = mock.patch( HTTPCON, new=fake_server.VerifyMultiTenantFloatingIP) multiFloatPatch.start() @@ -301,7 +301,7 @@ class RouterDBTestCase(RouterDBTestBase, def test_send_data(self): fmt = 'json' - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() with self.router() as r: r_id = r['router']['id'] @@ -502,7 +502,7 @@ class RouterDBTestCase(RouterDBTestBase, cfg.CONF.set_override('max_router_rules', 10, 'ROUTER') with self.router() as r: rules = [] - for i in xrange(1, 12): + for i in moves.xrange(1, 12): rule = {'source': 'any', 'nexthops': [], 'destination': '1.1.1.' + str(i) + '/32', 'action': 'permit'} @@ -514,7 +514,7 @@ class RouterDBTestCase(RouterDBTestBase, def test_rollback_on_router_create(self): tid = test_api_v2._uuid() self.httpPatch.stop() - with patch(HTTPCON, new=fake_server.HTTPConnectionMock500): + with mock.patch(HTTPCON, new=fake_server.HTTPConnectionMock500): self._create_router('json', tid) self.assertTrue(len(self._get_routers(tid)) == 0) @@ -522,7 +522,7 @@ class RouterDBTestCase(RouterDBTestBase, with self.router() as r: data = {'router': {'name': 'aNewName'}} self.httpPatch.stop() - with patch(HTTPCON, new=fake_server.HTTPConnectionMock500): + with mock.patch(HTTPCON, new=fake_server.HTTPConnectionMock500): self.new_update_request( 'routers', data, r['router']['id']).get_response(self.api) self.httpPatch.start() @@ -533,7 +533,7 @@ class RouterDBTestCase(RouterDBTestBase, def test_rollback_on_router_delete(self): with self.router() as r: self.httpPatch.stop() - with patch(HTTPCON, new=fake_server.HTTPConnectionMock500): + with mock.patch(HTTPCON, new=fake_server.HTTPConnectionMock500): self._delete('routers', r['router']['id'], expected_code=exc.HTTPInternalServerError.code) self.httpPatch.start() diff --git a/neutron/tests/unit/bigswitch/test_servermanager.py b/neutron/tests/unit/bigswitch/test_servermanager.py index aae095b7b09..47db82ec67e 100644 --- a/neutron/tests/unit/bigswitch/test_servermanager.py +++ b/neutron/tests/unit/bigswitch/test_servermanager.py @@ -14,7 +14,7 @@ # # @author: Kevin Benton, kevin.benton@bigswitch.com # -from contextlib import nested +import contextlib import httplib import socket import ssl @@ -22,7 +22,7 @@ import ssl import mock from oslo.config import cfg -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import importutils from neutron.plugins.bigswitch import servermanager from neutron.tests.unit.bigswitch import test_restproxy_plugin as test_rp @@ -61,7 +61,7 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): '[ABCD:EF01:2345:6789:ABCD:EF01:2345:6789]') def test_sticky_cert_fetch_fail(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() pl.servers.ssl = True with mock.patch( 'ssl.get_server_certificate', @@ -75,10 +75,10 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): sslgetmock.assert_has_calls([mock.call(('example.org', 443))]) def test_consistency_watchdog(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() pl.servers.capabilities = [] self.watch_p.stop() - with nested( + with contextlib.nested( mock.patch('eventlet.sleep'), mock.patch( SERVERMANAGER + '.ServerPool.rest_call', @@ -119,7 +119,7 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): 'HASH2') def test_file_put_contents(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() with mock.patch(SERVERMANAGER + '.open', create=True) as omock: pl.servers._file_put_contents('somepath', 'contents') omock.assert_has_calls([mock.call('somepath', 'w')]) @@ -128,7 +128,7 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): ]) def test_combine_certs_to_file(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() with mock.patch(SERVERMANAGER + '.open', create=True) as omock: omock.return_value.__enter__().read.return_value = 'certdata' pl.servers._combine_certs_to_file(['cert1.pem', 'cert2.pem'], @@ -248,7 +248,7 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): self.assertEqual(resp, (0, None, None, None)) def test_cert_get_fail(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() pl.servers.ssl = True with mock.patch('os.path.exists', return_value=False): self.assertRaises(cfg.Error, @@ -256,11 +256,11 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): *('example.org', 443)) def test_cert_make_dirs(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() pl.servers.ssl = True cfg.CONF.set_override('ssl_sticky', False, 'RESTPROXY') # pretend base dir exists, 3 children don't, and host cert does - with nested( + with contextlib.nested( mock.patch('os.path.exists', side_effect=[True, False, False, False, True]), mock.patch('os.makedirs'), @@ -279,7 +279,7 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): self.assertEqual(makemock.call_count, 3) def test_no_cert_error(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() pl.servers.ssl = True cfg.CONF.set_override('ssl_sticky', False, 'RESTPROXY') # pretend base dir exists and 3 children do, but host cert doesn't @@ -296,18 +296,18 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): self.assertEqual(exmock.call_count, 5) def test_action_success(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() self.assertTrue(pl.servers.action_success((200,))) def test_server_failure(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() self.assertTrue(pl.servers.server_failure((404,))) # server failure has an ignore codes option self.assertFalse(pl.servers.server_failure((404,), ignore_codes=[404])) def test_conflict_triggers_sync(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() with mock.patch( SERVERMANAGER + '.ServerProxy.rest_call', return_value=(httplib.CONFLICT, 0, 0, 0) @@ -322,7 +322,7 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): ]) def test_conflict_sync_raises_error_without_topology(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() pl.servers.get_topo_function = None with mock.patch( SERVERMANAGER + '.ServerProxy.rest_call', @@ -337,7 +337,7 @@ class ServerManagerTests(test_rp.BigSwitchProxyPluginV2TestCase): ) def test_floating_calls(self): - pl = NeutronManager.get_plugin() + pl = manager.NeutronManager.get_plugin() with mock.patch(SERVERMANAGER + '.ServerPool.rest_action') as ramock: pl.servers.rest_create_floatingip('tenant', {'id': 'somefloat'}) pl.servers.rest_update_floatingip('tenant', {'name': 'myfl'}, 'id') diff --git a/neutron/tests/unit/bigswitch/test_ssl.py b/neutron/tests/unit/bigswitch/test_ssl.py index f8696e2d80a..551f9cc53a2 100644 --- a/neutron/tests/unit/bigswitch/test_ssl.py +++ b/neutron/tests/unit/bigswitch/test_ssl.py @@ -14,7 +14,7 @@ # # @author: Kevin Benton, kevin.benton@bigswitch.com # -from contextlib import nested +import contextlib import os import mock @@ -101,7 +101,7 @@ class TestSslSticky(test_ssl_certificate_base): def test_sticky_cert(self): # SSL connection should be successful and cert should be cached - with nested( + with contextlib.nested( mock.patch(HTTPS, new=fake_server.HTTPSHostValidation), self.network() ): @@ -241,7 +241,7 @@ class TestSslNoValidation(test_ssl_certificate_base): def test_validation_disabled(self): # SSL connection should be successful without any certificates # If not, attempting to create a network will raise an exception - with nested( + with contextlib.nested( mock.patch(HTTPS, new=fake_server.HTTPSNoValidation), self.network() ): diff --git a/neutron/tests/unit/cisco/n1kv/fake_client.py b/neutron/tests/unit/cisco/n1kv/fake_client.py index 55f8765195e..6348bbfd042 100755 --- a/neutron/tests/unit/cisco/n1kv/fake_client.py +++ b/neutron/tests/unit/cisco/n1kv/fake_client.py @@ -19,7 +19,7 @@ from neutron.openstack.common import log as logging from neutron.plugins.cisco.common import cisco_exceptions as c_exc -from neutron.plugins.cisco.n1kv.n1kv_client import Client as n1kv_client +from neutron.plugins.cisco.n1kv import n1kv_client LOG = logging.getLogger(__name__) @@ -31,7 +31,7 @@ _resource_metadata = {'port': ['id', 'macAddress', 'ipAddress', 'subnetId'], 'ipAddress', 'subnetId']} -class TestClient(n1kv_client): +class TestClient(n1kv_client.Client): def __init__(self, **kwargs): self.broken = False diff --git a/neutron/tests/unit/cisco/n1kv/test_n1kv_db.py b/neutron/tests/unit/cisco/n1kv/test_n1kv_db.py index f8d544340cf..39e27e6e797 100644 --- a/neutron/tests/unit/cisco/n1kv/test_n1kv_db.py +++ b/neutron/tests/unit/cisco/n1kv/test_n1kv_db.py @@ -18,7 +18,7 @@ # @author: Abhishek Raut, Cisco Systems Inc. # @author: Rudrajit Tapadar, Cisco Systems Inc. -from six.moves import xrange +from six import moves from sqlalchemy.orm import exc as s_exc from testtools import matchers @@ -147,7 +147,7 @@ class VlanAllocationsTest(base.BaseTestCase): def test_vlan_pool(self): vlan_ids = set() - for x in xrange(VLAN_MIN, VLAN_MAX + 1): + for x in moves.xrange(VLAN_MIN, VLAN_MAX + 1): (physical_network, seg_type, vlan_id, m_ip) = n1kv_db_v2.reserve_vlan(self.session, self.net_p) self.assertEqual(physical_network, PHYS_NET) @@ -242,7 +242,7 @@ class VxlanAllocationsTest(base.BaseTestCase, def test_vxlan_pool(self): vxlan_ids = set() - for x in xrange(VXLAN_MIN, VXLAN_MAX + 1): + for x in moves.xrange(VXLAN_MIN, VXLAN_MAX + 1): vxlan = n1kv_db_v2.reserve_vxlan(self.session, self.net_p) vxlan_id = vxlan[2] self.assertThat(vxlan_id, matchers.GreaterThan(VXLAN_MIN - 1)) diff --git a/neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py b/neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py index 931ddf16e76..12973a38381 100644 --- a/neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py +++ b/neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py @@ -18,7 +18,7 @@ # @author: Abhishek Raut, Cisco Systems Inc. # @author: Sourabh Patwardhan, Cisco Systems Inc. -from mock import patch +import mock from neutron.api import extensions as neutron_extensions from neutron.api.v2 import attributes @@ -184,7 +184,7 @@ class N1kvPluginTestCase(test_plugin.NeutronDbPluginV2TestCase): # in the unit tests, we need to 'fake' it by patching the HTTP library # itself. We install a patch for a fake HTTP connection class. # Using __name__ to avoid having to enter the full module path. - http_patcher = patch(n1kv_client.httplib2.__name__ + ".Http") + http_patcher = mock.patch(n1kv_client.httplib2.__name__ + ".Http") FakeHttpConnection = http_patcher.start() # Now define the return values for a few functions that may be called # on any instance of the fake HTTP connection class. @@ -201,13 +201,14 @@ class N1kvPluginTestCase(test_plugin.NeutronDbPluginV2TestCase): # in the background. # Return a dummy VSM IP address - get_vsm_hosts_patcher = patch(n1kv_client.__name__ + - ".Client._get_vsm_hosts") + get_vsm_hosts_patcher = mock.patch(n1kv_client.__name__ + + ".Client._get_vsm_hosts") fake_get_vsm_hosts = get_vsm_hosts_patcher.start() fake_get_vsm_hosts.return_value = ["127.0.0.1"] # Return dummy user profiles - get_cred_name_patcher = patch(cdb.__name__ + ".get_credential_name") + get_cred_name_patcher = mock.patch(cdb.__name__ + + ".get_credential_name") fake_get_cred_name = get_cred_name_patcher.start() fake_get_cred_name.return_value = {"user_name": "admin", "password": "admin_password"} @@ -495,8 +496,8 @@ class TestN1kvPorts(test_plugin.TestPortsV2, """Test parameters for first port create sent to the VSM.""" profile_obj = self._make_test_policy_profile(name='test_profile') with self.network() as network: - client_patch = patch(n1kv_client.__name__ + ".Client", - new=fake_client.TestClientInvalidRequest) + client_patch = mock.patch(n1kv_client.__name__ + ".Client", + new=fake_client.TestClientInvalidRequest) client_patch.start() data = {'port': {n1kv.PROFILE_ID: profile_obj.id, 'tenant_id': self.tenant_id, @@ -510,8 +511,8 @@ class TestN1kvPorts(test_plugin.TestPortsV2, def test_create_next_port_invalid_parameters_fail(self): """Test parameters for subsequent port create sent to the VSM.""" with self.port() as port: - client_patch = patch(n1kv_client.__name__ + ".Client", - new=fake_client.TestClientInvalidRequest) + client_patch = mock.patch(n1kv_client.__name__ + ".Client", + new=fake_client.TestClientInvalidRequest) client_patch.start() data = {'port': {n1kv.PROFILE_ID: port['port']['n1kv:profile_id'], 'tenant_id': port['port']['tenant_id'], @@ -524,8 +525,8 @@ class TestN1kvPorts(test_plugin.TestPortsV2, class TestN1kvPolicyProfiles(N1kvPluginTestCase): def test_populate_policy_profile(self): - client_patch = patch(n1kv_client.__name__ + ".Client", - new=fake_client.TestClient) + client_patch = mock.patch(n1kv_client.__name__ + ".Client", + new=fake_client.TestClient) client_patch.start() instance = n1kv_neutron_plugin.N1kvNeutronPluginV2() instance._populate_policy_profiles() @@ -537,11 +538,11 @@ class TestN1kvPolicyProfiles(N1kvPluginTestCase): def test_populate_policy_profile_delete(self): # Patch the Client class with the TestClient class - with patch(n1kv_client.__name__ + ".Client", - new=fake_client.TestClient): + with mock.patch(n1kv_client.__name__ + ".Client", + new=fake_client.TestClient): # Patch the _get_total_profiles() method to return a custom value - with patch(fake_client.__name__ + - '.TestClient._get_total_profiles') as obj_inst: + with mock.patch(fake_client.__name__ + + '.TestClient._get_total_profiles') as obj_inst: # Return 3 policy profiles obj_inst.return_value = 3 plugin = manager.NeutronManager.get_plugin() diff --git a/neutron/tests/unit/cisco/test_network_plugin.py b/neutron/tests/unit/cisco/test_network_plugin.py index fe5aaa3b162..4e7be3e873b 100644 --- a/neutron/tests/unit/cisco/test_network_plugin.py +++ b/neutron/tests/unit/cisco/test_network_plugin.py @@ -31,7 +31,7 @@ from neutron.db import db_base_plugin_v2 as base_plugin from neutron.db import l3_db from neutron.extensions import portbindings from neutron.extensions import providernet as provider -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import gettextutils from neutron.plugins.cisco.common import cisco_constants as const from neutron.plugins.cisco.common import cisco_exceptions as c_exc @@ -136,7 +136,7 @@ class CiscoNetworkPluginV2TestCase(test_db_plugin.NeutronDbPluginV2TestCase): new=NEXUS_IP_ADDR).start() def _get_plugin_ref(self): - return getattr(NeutronManager.get_plugin(), + return getattr(manager.NeutronManager.get_plugin(), "_model")._plugins[const.VSWITCH_PLUGIN] @contextlib.contextmanager @@ -239,7 +239,7 @@ class TestCiscoGetAttribute(CiscoNetworkPluginV2TestCase): This test also checks that this operation does not cause excessive nesting of calls to deepcopy. """ - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() def _lazy_gettext(msg): return gettextutils.Message(msg, domain='neutron') diff --git a/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py b/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py index 17ee42b39bd..0dec61cf6df 100644 --- a/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py +++ b/neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py @@ -21,8 +21,7 @@ from oslo.config import cfg import testtools import webob.exc -from neutron.api.extensions import ExtensionMiddleware -from neutron.api.extensions import PluginAwareExtensionManager +from neutron.api import extensions from neutron.common import config from neutron import context import neutron.db.l3_db # noqa @@ -34,9 +33,7 @@ from neutron.plugins.common import constants from neutron.services.loadbalancer import ( plugin as loadbalancer_plugin ) -from neutron.services.loadbalancer.drivers import ( - abstract_driver -) +from neutron.services.loadbalancer.drivers import abstract_driver from neutron.services import provider_configuration as pconf from neutron.tests.unit import test_db_plugin @@ -324,12 +321,12 @@ class LoadBalancerPluginDbTestCase(LoadBalancerTestMixin, if not ext_mgr: self.plugin = loadbalancer_plugin.LoadBalancerPlugin() - ext_mgr = PluginAwareExtensionManager( + ext_mgr = extensions.PluginAwareExtensionManager( extensions_path, {constants.LOADBALANCER: self.plugin} ) app = config.load_paste_app('extensions_test_app') - self.ext_api = ExtensionMiddleware(app, ext_mgr=ext_mgr) + self.ext_api = extensions.ExtensionMiddleware(app, ext_mgr=ext_mgr) get_lbaas_agent_patcher = mock.patch( 'neutron.services.loadbalancer.agent_scheduler' diff --git a/neutron/tests/unit/db/metering/test_db_metering.py b/neutron/tests/unit/db/metering/test_db_metering.py index 8a03509c30e..83e4996af8f 100644 --- a/neutron/tests/unit/db/metering/test_db_metering.py +++ b/neutron/tests/unit/db/metering/test_db_metering.py @@ -19,8 +19,7 @@ import logging import webob.exc -from neutron.api.extensions import ExtensionMiddleware -from neutron.api.extensions import PluginAwareExtensionManager +from neutron.api import extensions from neutron.common import config from neutron import context import neutron.extensions @@ -136,12 +135,12 @@ class MeteringPluginDbTestCase(test_db_plugin.NeutronDbPluginV2TestCase, ) self.plugin = metering_plugin.MeteringPlugin() - ext_mgr = PluginAwareExtensionManager( + ext_mgr = extensions.PluginAwareExtensionManager( extensions_path, {constants.METERING: self.plugin} ) app = config.load_paste_app('extensions_test_app') - self.ext_api = ExtensionMiddleware(app, ext_mgr=ext_mgr) + self.ext_api = extensions.ExtensionMiddleware(app, ext_mgr=ext_mgr) def test_create_metering_label(self): name = 'my label' diff --git a/neutron/tests/unit/db/vpn/test_db_vpnaas.py b/neutron/tests/unit/db/vpn/test_db_vpnaas.py index 826416d727c..d685df96c95 100644 --- a/neutron/tests/unit/db/vpn/test_db_vpnaas.py +++ b/neutron/tests/unit/db/vpn/test_db_vpnaas.py @@ -23,8 +23,7 @@ import os from oslo.config import cfg import webob.exc -from neutron.api.extensions import ExtensionMiddleware -from neutron.api.extensions import PluginAwareExtensionManager +from neutron.api import extensions as api_extensions from neutron.common import config from neutron import context from neutron.db import agentschedulers_db @@ -441,13 +440,13 @@ class VPNPluginDbTestCase(VPNTestMixin, self._subnet_id = uuidutils.generate_uuid() self.core_plugin = TestVpnCorePlugin self.plugin = vpn_plugin.VPNPlugin() - ext_mgr = PluginAwareExtensionManager( + ext_mgr = api_extensions.PluginAwareExtensionManager( extensions_path, {constants.CORE: self.core_plugin, constants.VPN: self.plugin} ) app = config.load_paste_app('extensions_test_app') - self.ext_api = ExtensionMiddleware(app, ext_mgr=ext_mgr) + self.ext_api = api_extensions.ExtensionMiddleware(app, ext_mgr=ext_mgr) class TestVpnaas(VPNPluginDbTestCase): diff --git a/neutron/tests/unit/dummy_plugin.py b/neutron/tests/unit/dummy_plugin.py index f3ba5b5b7d8..fc58a7e2977 100644 --- a/neutron/tests/unit/dummy_plugin.py +++ b/neutron/tests/unit/dummy_plugin.py @@ -23,7 +23,7 @@ from neutron.extensions import servicetype from neutron import manager from neutron.openstack.common import uuidutils from neutron.plugins.common import constants -from neutron.services.service_base import ServicePluginBase +from neutron.services import service_base DUMMY_PLUGIN_NAME = "dummy_plugin" @@ -85,7 +85,7 @@ class Dummy(object): controller)] -class DummyServicePlugin(ServicePluginBase): +class DummyServicePlugin(service_base.ServicePluginBase): """This is a simple plugin for managing instantes of a fictional 'dummy' service. This plugin is provided as a proof-of-concept of how advanced service might leverage the service type extension. diff --git a/neutron/tests/unit/extension_stubs.py b/neutron/tests/unit/extension_stubs.py index 83aed9000c1..6241ab0f158 100644 --- a/neutron/tests/unit/extension_stubs.py +++ b/neutron/tests/unit/extension_stubs.py @@ -14,7 +14,7 @@ # License for the specific language governing permissions and limitations # under the License. -from abc import abstractmethod +import abc from neutron.api import extensions from neutron import wsgi @@ -60,7 +60,7 @@ class ExtensionExpectingPluginInterface(StubExtension): class StubPluginInterface(extensions.PluginInterface): - @abstractmethod + @abc.abstractmethod def get_foo(self, bar=None): pass diff --git a/neutron/tests/unit/extensions/extensionattribute.py b/neutron/tests/unit/extensions/extensionattribute.py index f162f7fe83e..a348587c56e 100644 --- a/neutron/tests/unit/extensions/extensionattribute.py +++ b/neutron/tests/unit/extensions/extensionattribute.py @@ -18,7 +18,7 @@ # @author: Kaiwei Fan, VMware, Inc # -from abc import abstractmethod +import abc from neutron.api import extensions from neutron.api.v2 import base @@ -101,10 +101,10 @@ class Extensionattribute(extensions.ExtensionDescriptor): class ExtensionObjectTestPluginBase(object): - @abstractmethod + @abc.abstractmethod def create_ext_test_resource(self, context, router): pass - @abstractmethod + @abc.abstractmethod def get_ext_test_resource(self, context, id, fields=None): pass diff --git a/neutron/tests/unit/extensions/foxinsocks.py b/neutron/tests/unit/extensions/foxinsocks.py index 4247f2e705f..27308a5a2b2 100644 --- a/neutron/tests/unit/extensions/foxinsocks.py +++ b/neutron/tests/unit/extensions/foxinsocks.py @@ -15,7 +15,7 @@ # License for the specific language governing permissions and limitations # under the License. -from abc import abstractmethod +import abc from neutron.api import extensions from neutron.openstack.common import jsonutils @@ -30,7 +30,7 @@ class FoxInSocksController(wsgi.Controller): class FoxInSocksPluginInterface(extensions.PluginInterface): - @abstractmethod + @abc.abstractmethod def method_to_support_foxnsox_extension(self): pass diff --git a/neutron/tests/unit/hyperv/test_hyperv_neutron_plugin.py b/neutron/tests/unit/hyperv/test_hyperv_neutron_plugin.py index f132c40acc5..8e34777c221 100644 --- a/neutron/tests/unit/hyperv/test_hyperv_neutron_plugin.py +++ b/neutron/tests/unit/hyperv/test_hyperv_neutron_plugin.py @@ -22,7 +22,7 @@ from oslo.config import cfg from neutron import context from neutron.extensions import portbindings -from neutron.manager import NeutronManager +from neutron import manager from neutron.tests.unit import test_db_plugin as test_plugin @@ -54,7 +54,7 @@ class TestHyperVVirtualSwitchPortsV2( def test_ports_vif_details(self): cfg.CONF.set_default('allow_overlapping_ips', True) - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() with contextlib.nested(self.port(), self.port()) as (port1, port2): ctx = context.get_admin_context() ports = plugin.get_ports(ctx) diff --git a/neutron/tests/unit/linuxbridge/test_lb_db.py b/neutron/tests/unit/linuxbridge/test_lb_db.py index 59d1086f66c..41f56b52ed3 100644 --- a/neutron/tests/unit/linuxbridge/test_lb_db.py +++ b/neutron/tests/unit/linuxbridge/test_lb_db.py @@ -14,7 +14,7 @@ # limitations under the License. from oslo.config import cfg -from six.moves import xrange +from six import moves import testtools from testtools import matchers @@ -108,7 +108,7 @@ class NetworkStatesTest(base.BaseTestCase): def test_network_pool(self): vlan_ids = set() - for x in xrange(VLAN_MIN, VLAN_MAX + 1): + for x in moves.xrange(VLAN_MIN, VLAN_MAX + 1): physical_network, vlan_id = lb_db.reserve_network(self.session) self.assertEqual(physical_network, PHYS_NET) self.assertThat(vlan_id, matchers.GreaterThan(VLAN_MIN - 1)) diff --git a/neutron/tests/unit/metaplugin/test_basic.py b/neutron/tests/unit/metaplugin/test_basic.py index de407fd809c..5f204695766 100644 --- a/neutron/tests/unit/metaplugin/test_basic.py +++ b/neutron/tests/unit/metaplugin/test_basic.py @@ -13,8 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from neutron.tests.unit.metaplugin.test_metaplugin import setup_metaplugin_conf -from neutron.tests.unit.metaplugin.test_metaplugin import unregister_meta_hooks +from neutron.tests.unit.metaplugin import test_metaplugin from neutron.tests.unit import test_db_plugin as test_plugin from neutron.tests.unit import test_l3_plugin @@ -30,9 +29,9 @@ class MetaPluginV2DBTestCase(test_plugin.NeutronDbPluginV2TestCase): # as this class will always invoke super with self._plugin_name. # These keyword parameters ensure setUp methods always have the # same signature. - setup_metaplugin_conf() + test_metaplugin.setup_metaplugin_conf() ext_mgr = ext_mgr or test_l3_plugin.L3TestExtensionManager() - self.addCleanup(unregister_meta_hooks) + self.addCleanup(test_metaplugin.unregister_meta_hooks) super(MetaPluginV2DBTestCase, self).setUp( plugin=self._plugin_name, ext_mgr=ext_mgr, service_plugins=service_plugins) diff --git a/neutron/tests/unit/metaplugin/test_metaplugin.py b/neutron/tests/unit/metaplugin/test_metaplugin.py index d56ab62ef4c..97346cc0d6e 100644 --- a/neutron/tests/unit/metaplugin/test_metaplugin.py +++ b/neutron/tests/unit/metaplugin/test_metaplugin.py @@ -27,10 +27,7 @@ from neutron.db import db_base_plugin_v2 from neutron.db import models_v2 from neutron.extensions import flavor as ext_flavor from neutron.openstack.common import uuidutils -from neutron.plugins.metaplugin.meta_neutron_plugin import ( - FaildToAddFlavorBinding) -from neutron.plugins.metaplugin.meta_neutron_plugin import FlavorNotFound -from neutron.plugins.metaplugin.meta_neutron_plugin import MetaPluginV2 +from neutron.plugins.metaplugin import meta_neutron_plugin from neutron.tests import base CONF_FILE = "" @@ -112,9 +109,10 @@ class MetaNeutronPluginV2Test(base.BaseTestCase): self.client_inst.delete_network.return_value = True self.client_inst.delete_port.return_value = True self.client_inst.delete_subnet.return_value = True - plugin = MetaPluginV2.__module__ + '.' + MetaPluginV2.__name__ + plugin = (meta_neutron_plugin.MetaPluginV2.__module__ + '.' + + meta_neutron_plugin.MetaPluginV2.__name__) self.setup_coreplugin(plugin) - self.plugin = MetaPluginV2(configfile=None) + self.plugin = meta_neutron_plugin.MetaPluginV2(configfile=None) def _fake_network(self, flavor): data = {'network': {'name': flavor, @@ -311,7 +309,7 @@ class MetaNeutronPluginV2Test(base.BaseTestCase): self.plugin.delete_router(self.context, router_ret1['id']) self.plugin.delete_router(self.context, router_ret2['id']) - with testtools.ExpectedException(FlavorNotFound): + with testtools.ExpectedException(meta_neutron_plugin.FlavorNotFound): self.plugin.get_router(self.context, router_ret1['id']) def test_extension_method(self): @@ -333,7 +331,7 @@ class MetaNeutronPluginV2Test(base.BaseTestCase): 'add_network_flavor_binding', side_effect=Exception): network = self._fake_network('fake1') - self.assertRaises(FaildToAddFlavorBinding, + self.assertRaises(meta_neutron_plugin.FaildToAddFlavorBinding, self.plugin.create_network, self.context, network) @@ -345,7 +343,7 @@ class MetaNeutronPluginV2Test(base.BaseTestCase): 'add_router_flavor_binding', side_effect=Exception): router = self._fake_router('fake1') - self.assertRaises(FaildToAddFlavorBinding, + self.assertRaises(meta_neutron_plugin.FaildToAddFlavorBinding, self.plugin.create_router, self.context, router) @@ -383,7 +381,7 @@ class MetaNeutronPluginV2TestRpcFlavor(base.BaseTestCase): def test_rpc_flavor(self): setup_metaplugin_conf() cfg.CONF.set_override('rpc_flavor', 'fake1', 'META') - self.plugin = MetaPluginV2() + self.plugin = meta_neutron_plugin.MetaPluginV2() self.assertEqual(topics.PLUGIN, 'q-plugin') ret = self.plugin.rpc_workers_supported() self.assertFalse(ret) @@ -392,13 +390,13 @@ class MetaNeutronPluginV2TestRpcFlavor(base.BaseTestCase): setup_metaplugin_conf() cfg.CONF.set_override('rpc_flavor', 'fake-fake', 'META') self.assertRaises(exc.Invalid, - MetaPluginV2) + meta_neutron_plugin.MetaPluginV2) self.assertEqual(topics.PLUGIN, 'q-plugin') def test_rpc_flavor_multiple_rpc_workers(self): setup_metaplugin_conf() cfg.CONF.set_override('rpc_flavor', 'fake2', 'META') - self.plugin = MetaPluginV2() + self.plugin = meta_neutron_plugin.MetaPluginV2() self.assertEqual(topics.PLUGIN, 'q-plugin') ret = self.plugin.rpc_workers_supported() self.assertTrue(ret) diff --git a/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_mech.py b/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_mech.py index 5efaff8cee3..55717ebe2cc 100644 --- a/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_mech.py +++ b/neutron/tests/unit/ml2/drivers/cisco/nexus/test_cisco_mech.py @@ -22,7 +22,7 @@ from neutron.api.v2 import base from neutron.common import constants as n_const from neutron import context from neutron.extensions import portbindings -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import log as logging from neutron.plugins.common import constants as p_const from neutron.plugins.ml2 import config as ml2_config @@ -274,7 +274,7 @@ class TestCiscoPortsV2(CiscoML2MechanismTestCase, with mock.patch('__builtin__.hasattr', new=fakehasattr): - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() orig = plugin_obj.create_port with mock.patch.object(plugin_obj, 'create_port') as patched_plugin: @@ -308,7 +308,7 @@ class TestCiscoPortsV2(CiscoML2MechanismTestCase, self.skipTest("Plugin does not support native bulk port create") ctx = context.get_admin_context() with self.network() as net: - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() orig = plugin_obj.create_port with mock.patch.object(plugin_obj, 'create_port') as patched_plugin: @@ -605,7 +605,7 @@ class TestCiscoNetworksV2(CiscoML2MechanismTestCase, return False return real_has_attr(item, attr) - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() orig = plugin_obj.create_network #ensures the API choose the emulation code path with mock.patch('__builtin__.hasattr', @@ -627,7 +627,7 @@ class TestCiscoNetworksV2(CiscoML2MechanismTestCase, def test_create_networks_bulk_native_plugin_failure(self): if self._skip_native_bulk: self.skipTest("Plugin does not support native bulk network create") - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() orig = plugin_obj.create_network with mock.patch.object(plugin_obj, 'create_network') as patched_plugin: @@ -659,7 +659,7 @@ class TestCiscoSubnetsV2(CiscoML2MechanismTestCase, with mock.patch('__builtin__.hasattr', new=fakehasattr): - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() orig = plugin_obj.create_subnet with mock.patch.object(plugin_obj, 'create_subnet') as patched_plugin: @@ -682,7 +682,7 @@ class TestCiscoSubnetsV2(CiscoML2MechanismTestCase, def test_create_subnets_bulk_native_plugin_failure(self): if self._skip_native_bulk: self.skipTest("Plugin does not support native bulk subnet create") - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() orig = plugin_obj.create_subnet with mock.patch.object(plugin_obj, 'create_subnet') as patched_plugin: diff --git a/neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py b/neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py index 257b0165c0b..dab3c5b632a 100644 --- a/neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py +++ b/neutron/tests/unit/ml2/drivers/test_bigswitch_mech.py @@ -15,17 +15,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -from contextlib import nested +import contextlib import mock import webob.exc from neutron.extensions import portbindings -from neutron.manager import NeutronManager +from neutron import manager from neutron.plugins.bigswitch import servermanager from neutron.plugins.ml2 import config as ml2_config from neutron.plugins.ml2.drivers import type_vlan as vlan_config import neutron.tests.unit.bigswitch.test_restproxy_plugin as trp -from neutron.tests.unit.ml2.test_ml2_plugin import PLUGIN_NAME as ML2_PLUGIN +from neutron.tests.unit.ml2 import test_ml2_plugin from neutron.tests.unit import test_db_plugin PHYS_NET = 'physnet1' @@ -53,7 +53,7 @@ class TestBigSwitchMechDriverBase(trp.BigSwitchProxyPluginV2TestCase): [phys_vrange], 'ml2_type_vlan') super(TestBigSwitchMechDriverBase, - self).setUp(ML2_PLUGIN) + self).setUp(test_ml2_plugin.PLUGIN_NAME) class TestBigSwitchMechDriverNetworksV2(test_db_plugin.TestNetworksV2, @@ -90,7 +90,7 @@ class TestBigSwitchMechDriverPortsV2(test_db_plugin.TestPortsV2, def test_create404_triggers_background_sync(self): # allow the async background thread to run for this test self.spawn_p.stop() - with nested( + with contextlib.nested( mock.patch(SERVER_POOL + '.rest_create_port', side_effect=servermanager.RemoteRestError( reason=servermanager.NXNETWORK, status=404)), @@ -98,7 +98,7 @@ class TestBigSwitchMechDriverPortsV2(test_db_plugin.TestPortsV2, self.port(**{'device_id': 'devid', 'binding:host_id': 'host'}) ) as (mock_http, mock_send_all, p): # wait for thread to finish - mm = NeutronManager.get_plugin().mechanism_manager + mm = manager.NeutronManager.get_plugin().mechanism_manager bigdriver = mm.mech_drivers['bigswitch'].obj bigdriver.evpool.waitall() mock_send_all.assert_has_calls([ @@ -111,7 +111,7 @@ class TestBigSwitchMechDriverPortsV2(test_db_plugin.TestPortsV2, self.spawn_p.start() def test_backend_request_contents(self): - with nested( + with contextlib.nested( mock.patch(SERVER_POOL + '.rest_create_port'), self.port(**{'device_id': 'devid', 'binding:host_id': 'host'}) ) as (mock_rest, p): diff --git a/neutron/tests/unit/ml2/test_type_gre.py b/neutron/tests/unit/ml2/test_type_gre.py index b45ed8378dc..36420e2b6e1 100644 --- a/neutron/tests/unit/ml2/test_type_gre.py +++ b/neutron/tests/unit/ml2/test_type_gre.py @@ -13,7 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. -from six.moves import xrange +from six import moves import testtools from testtools import matchers @@ -138,7 +138,7 @@ class GreTypeTest(base.BaseTestCase): def test_allocate_tenant_segment(self): tunnel_ids = set() - for x in xrange(TUN_MIN, TUN_MAX + 1): + for x in moves.xrange(TUN_MIN, TUN_MAX + 1): segment = self.driver.allocate_tenant_segment(self.session) self.assertThat(segment[api.SEGMENTATION_ID], matchers.GreaterThan(TUN_MIN - 1)) diff --git a/neutron/tests/unit/ml2/test_type_vxlan.py b/neutron/tests/unit/ml2/test_type_vxlan.py index 51ce2549dff..1242df2abc6 100644 --- a/neutron/tests/unit/ml2/test_type_vxlan.py +++ b/neutron/tests/unit/ml2/test_type_vxlan.py @@ -15,7 +15,7 @@ # @author: Kyle Mestery, Cisco Systems, Inc. from oslo.config import cfg -from six.moves import xrange +from six import moves import testtools from testtools import matchers @@ -146,7 +146,7 @@ class VxlanTypeTest(base.BaseTestCase): def test_allocate_tenant_segment(self): tunnel_ids = set() - for x in xrange(TUN_MIN, TUN_MAX + 1): + for x in moves.xrange(TUN_MIN, TUN_MAX + 1): segment = self.driver.allocate_tenant_segment(self.session) self.assertThat(segment[api.SEGMENTATION_ID], matchers.GreaterThan(TUN_MIN - 1)) diff --git a/neutron/tests/unit/mlnx/test_mlnx_comm_utils.py b/neutron/tests/unit/mlnx/test_mlnx_comm_utils.py index 75d235759d3..bb8bdcced71 100644 --- a/neutron/tests/unit/mlnx/test_mlnx_comm_utils.py +++ b/neutron/tests/unit/mlnx/test_mlnx_comm_utils.py @@ -16,7 +16,7 @@ import mock from oslo.config import cfg -from neutron.plugins.mlnx.common.comm_utils import RetryDecorator +from neutron.plugins.mlnx.common import comm_utils from neutron.plugins.mlnx.common import config # noqa from neutron.plugins.mlnx.common import exceptions from neutron.tests import base @@ -29,14 +29,15 @@ class WrongException(Exception): class TestRetryDecorator(base.BaseTestCase): def setUp(self): super(TestRetryDecorator, self).setUp() - self.sleep_fn_p = mock.patch.object(RetryDecorator, 'sleep_fn') + self.sleep_fn_p = mock.patch.object(comm_utils.RetryDecorator, + 'sleep_fn') self.sleep_fn = self.sleep_fn_p.start() def test_no_retry_required(self): self.counter = 0 - @RetryDecorator(exceptions.RequestTimeout, interval=2, - retries=3, backoff_rate=2) + @comm_utils.RetryDecorator(exceptions.RequestTimeout, interval=2, + retries=3, backoff_rate=2) def succeeds(): self.counter += 1 return 'success' @@ -52,8 +53,8 @@ class TestRetryDecorator(base.BaseTestCase): backoff_rate = 2 retries = 0 - @RetryDecorator(exceptions.RequestTimeout, interval, - retries, backoff_rate) + @comm_utils.RetryDecorator(exceptions.RequestTimeout, interval, + retries, backoff_rate) def always_fails(): self.counter += 1 raise exceptions.RequestTimeout() @@ -68,8 +69,8 @@ class TestRetryDecorator(base.BaseTestCase): backoff_rate = 2 retries = 3 - @RetryDecorator(exceptions.RequestTimeout, interval, - retries, backoff_rate) + @comm_utils.RetryDecorator(exceptions.RequestTimeout, interval, + retries, backoff_rate) def fails_once(): self.counter += 1 if self.counter < 2: @@ -89,8 +90,8 @@ class TestRetryDecorator(base.BaseTestCase): interval = 2 backoff_rate = 4 - @RetryDecorator(exceptions.RequestTimeout, interval, - retries, backoff_rate) + @comm_utils.RetryDecorator(exceptions.RequestTimeout, interval, + retries, backoff_rate) def always_fails(): self.counter += 1 raise exceptions.RequestTimeout() @@ -109,7 +110,7 @@ class TestRetryDecorator(base.BaseTestCase): def test_limit_is_reached_with_conf(self): self.counter = 0 - @RetryDecorator(exceptions.RequestTimeout) + @comm_utils.RetryDecorator(exceptions.RequestTimeout) def always_fails(): self.counter += 1 raise exceptions.RequestTimeout() @@ -130,7 +131,7 @@ class TestRetryDecorator(base.BaseTestCase): def test_wrong_exception_no_retry(self): - @RetryDecorator(exceptions.RequestTimeout) + @comm_utils.RetryDecorator(exceptions.RequestTimeout) def raise_unexpected_error(): raise WrongException("wrong exception") diff --git a/neutron/tests/unit/mlnx/test_mlnx_db.py b/neutron/tests/unit/mlnx/test_mlnx_db.py index 51aadb9db5e..a72ed0865a9 100644 --- a/neutron/tests/unit/mlnx/test_mlnx_db.py +++ b/neutron/tests/unit/mlnx/test_mlnx_db.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from six.moves import xrange +from six import moves from testtools import matchers from neutron.common import exceptions as n_exc @@ -107,7 +107,7 @@ class SegmentationIdAllocationTest(base.BaseTestCase): def test_segmentationId_pool(self): vlan_ids = set() - for x in xrange(VLAN_MIN, VLAN_MAX + 1): + for x in moves.xrange(VLAN_MIN, VLAN_MAX + 1): physical_network, vlan_id = mlnx_db.reserve_network(self.session) self.assertEqual(physical_network, PHYS_NET) self.assertThat(vlan_id, matchers.GreaterThan(VLAN_MIN - 1)) diff --git a/neutron/tests/unit/mlnx/test_mlnx_plugin_config.py b/neutron/tests/unit/mlnx/test_mlnx_plugin_config.py index 52e5e99f330..70f3d2df494 100644 --- a/neutron/tests/unit/mlnx/test_mlnx_plugin_config.py +++ b/neutron/tests/unit/mlnx/test_mlnx_plugin_config.py @@ -19,7 +19,7 @@ from oslo.config import cfg #NOTE this import loads tests required options from neutron.plugins.mlnx.common import config # noqa from neutron.plugins.mlnx.common import constants -from neutron.plugins.mlnx.mlnx_plugin import MellanoxEswitchPlugin +from neutron.plugins.mlnx import mlnx_plugin from neutron.tests import base @@ -41,7 +41,7 @@ class TestMlnxPluginConfig(base.BaseTestCase): def _create_mlnx_plugin(self): with mock.patch('neutron.plugins.mlnx.db.mlnx_db_v2'): - return MellanoxEswitchPlugin() + return mlnx_plugin.MellanoxEswitchPlugin() def _assert_expected_config(self): plugin = self._create_mlnx_plugin() diff --git a/neutron/tests/unit/nec/test_nec_agent.py b/neutron/tests/unit/nec/test_nec_agent.py index 89c243574d3..f23cece8159 100644 --- a/neutron/tests/unit/nec/test_nec_agent.py +++ b/neutron/tests/unit/nec/test_nec_agent.py @@ -21,7 +21,7 @@ import time import mock from oslo.config import cfg -from six.moves import xrange +from six import moves import testtools from neutron.agent.linux import ovs_lib @@ -154,8 +154,8 @@ class TestNecAgent(TestNecAgentBase): # Ensure vif_ports_scenario is longer than DAEMON_LOOP_COUNT if len(self.vif_ports_scenario) < DAEMON_LOOP_COUNT: self.vif_ports_scenario.extend( - [] for _i in xrange(DAEMON_LOOP_COUNT - - len(self.vif_ports_scenario))) + [] for _i in moves.xrange(DAEMON_LOOP_COUNT - + len(self.vif_ports_scenario))) with contextlib.nested( mock.patch.object(time, 'sleep', side_effect=sleep_mock), diff --git a/neutron/tests/unit/nec/test_nec_plugin.py b/neutron/tests/unit/nec/test_nec_plugin.py index 3b8a6478b49..0a012b7935b 100644 --- a/neutron/tests/unit/nec/test_nec_plugin.py +++ b/neutron/tests/unit/nec/test_nec_plugin.py @@ -20,7 +20,7 @@ import mock import webob.exc from neutron.common import constants -from neutron.common.test_lib import test_config +from neutron.common import test_lib from neutron.common import topics from neutron import context from neutron.db import db_base_plugin_v2 @@ -52,16 +52,16 @@ class NecPluginV2TestCaseBase(object): self.nec_ini_file = self.useFixture(fixtures.TempDir()).join("nec.ini") with open(self.nec_ini_file, 'w') as f: f.write(self._nec_ini) - if 'config_files' in test_config.keys(): - for c in test_config['config_files']: + if 'config_files' in test_lib.test_config.keys(): + for c in test_lib.test_config['config_files']: if c.rfind("/nec.ini") > -1: - test_config['config_files'].remove(c) - test_config['config_files'].append(self.nec_ini_file) + test_lib.test_config['config_files'].remove(c) + test_lib.test_config['config_files'].append(self.nec_ini_file) else: - test_config['config_files'] = [self.nec_ini_file] + test_lib.test_config['config_files'] = [self.nec_ini_file] def _clean_nec_ini(self): - test_config['config_files'].remove(self.nec_ini_file) + test_lib.test_config['config_files'].remove(self.nec_ini_file) os.remove(self.nec_ini_file) self.nec_ini_file = None diff --git a/neutron/tests/unit/nec/test_trema_driver.py b/neutron/tests/unit/nec/test_trema_driver.py index dc16baab2bc..484d65dd9fb 100644 --- a/neutron/tests/unit/nec/test_trema_driver.py +++ b/neutron/tests/unit/nec/test_trema_driver.py @@ -18,7 +18,7 @@ import random import mock -from six.moves import xrange +from six import moves from neutron.openstack.common import uuidutils from neutron.plugins.nec.common import ofc_client @@ -48,7 +48,8 @@ class TremaDriverTestBase(base.BaseTestCase): tenant_id = uuidutils.generate_uuid() network_id = uuidutils.generate_uuid() port_id = uuidutils.generate_uuid() - mac = ':'.join(['%x' % random.randint(0, 255) for i in xrange(6)]) + mac = ':'.join(['%x' % random.randint(0, 255) + for i in moves.xrange(6)]) portinfo = nmodels.PortInfo(id=port_id, datapath_id="0x123456789", port_no=1234, vlan_id=321, mac=mac) @@ -186,7 +187,8 @@ class TremaFilterDriverTest(TremaDriverTestBase): def _test_create_filter(self, filter_dict=None, filter_post=None, filter_wildcards=None, no_portinfo=False): t, n, p = self.get_ofc_item_random_params() - src_mac = ':'.join(['%x' % random.randint(0, 255) for i in xrange(6)]) + src_mac = ':'.join(['%x' % random.randint(0, 255) + for i in moves.xrange(6)]) if filter_wildcards is None: filter_wildcards = [] @@ -286,7 +288,8 @@ class TremaFilterDriverTest(TremaDriverTestBase): filter_wildcards=['dl_src']) def test_create_filter_dst_mac(self): - dst_mac = ':'.join(['%x' % random.randint(0, 255) for i in xrange(6)]) + dst_mac = ':'.join(['%x' % random.randint(0, 255) + for i in moves.xrange(6)]) self._test_create_filter(filter_dict={'dst_mac': dst_mac}, filter_post={'dl_dst': dst_mac}) diff --git a/neutron/tests/unit/oneconvergence/test_nvsd_plugin.py b/neutron/tests/unit/oneconvergence/test_nvsd_plugin.py index 4a20ce742bd..6cc8a14969f 100644 --- a/neutron/tests/unit/oneconvergence/test_nvsd_plugin.py +++ b/neutron/tests/unit/oneconvergence/test_nvsd_plugin.py @@ -23,7 +23,7 @@ from oslo.config import cfg from neutron import context from neutron.extensions import portbindings -from neutron.manager import NeutronManager +from neutron import manager from neutron.plugins.oneconvergence import plugin as nvsd_plugin from neutron.tests.unit import _test_extension_portbindings as test_bindings from neutron.tests.unit import test_db_plugin as test_plugin @@ -97,7 +97,7 @@ class TestOneConvergencePluginPortsV2(test_plugin.TestPortsV2, self.skipTest("NVSD Plugin does not support IPV6.") def test_port_vif_details(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() with self.port(name='name') as port1: ctx = context.get_admin_context() port = plugin.get_port(ctx, port1['port']['id']) @@ -106,7 +106,7 @@ class TestOneConvergencePluginPortsV2(test_plugin.TestPortsV2, def test_ports_vif_details(self): cfg.CONF.set_default('allow_overlapping_ips', True) - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() with contextlib.nested(self.port(), self.port()) as (port1, port2): ctx = context.get_admin_context() ports = plugin.get_ports(ctx) diff --git a/neutron/tests/unit/openvswitch/test_agent_scheduler.py b/neutron/tests/unit/openvswitch/test_agent_scheduler.py index 230d99e13ed..72d57568a29 100644 --- a/neutron/tests/unit/openvswitch/test_agent_scheduler.py +++ b/neutron/tests/unit/openvswitch/test_agent_scheduler.py @@ -39,8 +39,8 @@ from neutron.tests.unit import test_agent_ext_plugin from neutron.tests.unit import test_db_plugin as test_plugin from neutron.tests.unit import test_extensions from neutron.tests.unit import test_l3_plugin -from neutron.tests.unit.testlib_api import create_request -from neutron.wsgi import Serializer +from neutron.tests.unit import testlib_api +from neutron import wsgi L3_HOSTA = 'hosta' DHCP_HOSTA = 'hosta' @@ -63,12 +63,12 @@ class AgentSchedulerTestMixIn(object): content_type = 'application/%s' % self.fmt body = None if data is not None: # empty dict is valid - body = Serializer().serialize(data, content_type) + body = wsgi.Serializer().serialize(data, content_type) if admin_context: - return create_request( + return testlib_api.create_request( path, body, content_type, method, query_string=query_string) else: - return create_request( + return testlib_api.create_request( path, body, content_type, method, query_string=query_string, context=context.Context('', 'tenant_id')) diff --git a/neutron/tests/unit/openvswitch/test_ovs_db.py b/neutron/tests/unit/openvswitch/test_ovs_db.py index f9896e4acc7..528f894a60f 100644 --- a/neutron/tests/unit/openvswitch/test_ovs_db.py +++ b/neutron/tests/unit/openvswitch/test_ovs_db.py @@ -17,7 +17,7 @@ import mock from oslo.config import cfg -from six.moves import xrange +from six import moves import testtools from testtools import matchers @@ -126,7 +126,7 @@ class VlanAllocationsTest(base.BaseTestCase): def test_vlan_pool(self): vlan_ids = set() - for x in xrange(VLAN_MIN, VLAN_MAX + 1): + for x in moves.xrange(VLAN_MIN, VLAN_MAX + 1): physical_network, vlan_id = ovs_db_v2.reserve_vlan(self.session) self.assertEqual(physical_network, PHYS_NET) self.assertThat(vlan_id, matchers.GreaterThan(VLAN_MIN - 1)) @@ -178,7 +178,7 @@ class VlanAllocationsTest(base.BaseTestCase): def test_sync_with_allocated_false(self): vlan_ids = set() - for x in xrange(VLAN_MIN, VLAN_MAX + 1): + for x in moves.xrange(VLAN_MIN, VLAN_MAX + 1): physical_network, vlan_id = ovs_db_v2.reserve_vlan(self.session) self.assertEqual(physical_network, PHYS_NET) self.assertThat(vlan_id, matchers.GreaterThan(VLAN_MIN - 1)) @@ -223,7 +223,7 @@ class TunnelAllocationsTest(base.BaseTestCase): def test_tunnel_pool(self): tunnel_ids = set() - for x in xrange(TUN_MIN, TUN_MAX + 1): + for x in moves.xrange(TUN_MIN, TUN_MAX + 1): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertThat(tunnel_id, matchers.GreaterThan(TUN_MIN - 1)) self.assertThat(tunnel_id, matchers.LessThan(TUN_MAX + 1)) diff --git a/neutron/tests/unit/plumgrid/test_plumgrid_plugin.py b/neutron/tests/unit/plumgrid/test_plumgrid_plugin.py index 8cf1868ec83..79acbae2413 100644 --- a/neutron/tests/unit/plumgrid/test_plumgrid_plugin.py +++ b/neutron/tests/unit/plumgrid/test_plumgrid_plugin.py @@ -23,7 +23,7 @@ import mock from neutron.extensions import portbindings from neutron.extensions import providernet as provider -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import importutils from neutron.plugins.plumgrid.plumgrid_plugin import plumgrid_plugin from neutron.tests.unit import _test_extension_portbindings as test_bindings @@ -111,7 +111,7 @@ class TestPlumgridNetworkAdminState(PLUMgridPluginV2TestCase): network = {'network': {'name': name, 'admin_state_up': admin_status_up, 'tenant_id': tenant_id}} - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() self.assertEqual(plugin._network_admin_state(network), network) @@ -125,7 +125,7 @@ class TestPlumgridAllocationPool(PLUMgridPluginV2TestCase): allocation_pool = [{"start": '10.0.0.2', "end": '10.0.0.253'}] context = None - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() pool = plugin._allocate_pools_for_subnet(context, subnet) self.assertEqual(allocation_pool, pool) diff --git a/neutron/tests/unit/ryu/test_ryu_agent.py b/neutron/tests/unit/ryu/test_ryu_agent.py index dee2c2e790d..f8d357adb65 100644 --- a/neutron/tests/unit/ryu/test_ryu_agent.py +++ b/neutron/tests/unit/ryu/test_ryu_agent.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from contextlib import nested +import contextlib import httplib import mock @@ -226,7 +226,7 @@ class TestOVSNeutronOFPRyuAgent(RyuAgentTestCase): class TestRyuPluginApi(RyuAgentTestCase): def test_get_ofp_rest_api_addr(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.RyuPluginApi.make_msg', return_value='msg'), mock.patch(self._AGENT_NAME + '.RyuPluginApi.call', @@ -313,7 +313,7 @@ class TestOVSBridge(RyuAgentTestCase): self.assertEqual(ofport, 1) def test_get_ports(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSBridge.get_port_name_list', return_value=['p1', 'p2']), mock.patch(self._AGENT_NAME + '.OVSBridge.get_ofport', @@ -338,7 +338,7 @@ class TestOVSBridge(RyuAgentTestCase): self.assertEqual(ports, ['port1', 'port2']) def test_get_ports_empty(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSBridge.get_port_name_list', return_value=[]), mock.patch(self._AGENT_NAME + '.OVSBridge.get_ofport', @@ -356,7 +356,7 @@ class TestOVSBridge(RyuAgentTestCase): self.assertEqual(len(ports), 0) def test_get_ports_invalid_ofport(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSBridge.get_port_name_list', return_value=['p1', 'p2']), mock.patch(self._AGENT_NAME + '.OVSBridge.get_ofport', @@ -380,7 +380,7 @@ class TestOVSBridge(RyuAgentTestCase): self.assertEqual(ports, ['port1']) def test_get_ports_invalid_port(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSBridge.get_port_name_list', return_value=['p1', 'p2']), mock.patch(self._AGENT_NAME + '.OVSBridge.get_ofport', @@ -405,7 +405,7 @@ class TestOVSBridge(RyuAgentTestCase): self.assertEqual(ports, ['port2']) def test_get_external_port(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSBridge.db_get_map', side_effect=[None, {'opts': 'opts_val'}]), mock.patch(self._AGENT_NAME + '.OVSBridge.get_ofport', @@ -428,7 +428,7 @@ class TestOVSBridge(RyuAgentTestCase): self.assertEqual(vifport, mock_vif.return_value) def test_get_external_port_vmport(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSBridge.db_get_map', side_effect=[{'extids': 'extid_val'}, {'opts': 'opts_val'}]), @@ -447,7 +447,7 @@ class TestOVSBridge(RyuAgentTestCase): self.assertIsNone(vifport) def test_get_external_port_tunnel(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSBridge.db_get_map', side_effect=[None, {'remote_ip': '0.0.0.0'}]), mock.patch(self._AGENT_NAME + '.OVSBridge.get_ofport', @@ -466,7 +466,7 @@ class TestOVSBridge(RyuAgentTestCase): self.assertIsNone(vifport) def test_get_external_ports(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSBridge._get_external_port'), mock.patch(self._AGENT_NAME + '.OVSBridge._get_ports') ) as (mock_extport, mock_port): @@ -514,7 +514,7 @@ class TestRyuNeutronAgent(RyuAgentTestCase): def test_get_ip_ip(self): cfg_attrs = {'CONF.OVS.cfg_ip': '1.2.3.4', 'CONF.OVS.cfg_iface': 'eth0'} - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.cfg', **cfg_attrs), mock.patch(self._AGENT_NAME + '._get_ip_from_nic', return_value='10.0.0.1'), @@ -530,7 +530,7 @@ class TestRyuNeutronAgent(RyuAgentTestCase): def test_get_ip_nic(self): cfg_attrs = {'CONF.OVS.cfg_ip': None, 'CONF.OVS.cfg_iface': 'eth0'} - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.cfg', **cfg_attrs), mock.patch(self._AGENT_NAME + '._get_ip_from_nic', return_value='10.0.0.1'), @@ -548,7 +548,7 @@ class TestRyuNeutronAgent(RyuAgentTestCase): def test_get_ip_myip(self): cfg_attrs = {'CONF.OVS.cfg_ip': None, 'CONF.OVS.cfg_iface': None} - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.cfg', **cfg_attrs), mock.patch(self._AGENT_NAME + '._get_ip_from_nic', return_value='10.0.0.1'), @@ -566,7 +566,7 @@ class TestRyuNeutronAgent(RyuAgentTestCase): def test_get_ip_nic_myip(self): cfg_attrs = {'CONF.OVS.cfg_ip': None, 'CONF.OVS.cfg_iface': 'eth0'} - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.cfg', **cfg_attrs), mock.patch(self._AGENT_NAME + '._get_ip_from_nic', return_value=None), @@ -608,7 +608,7 @@ class TestRyuNeutronAgent(RyuAgentTestCase): 'CONF.OVS.ovsdb_port': 16634, 'CONF.AGENT.polling_interval': 2, 'CONF.AGENT.root_helper': 'helper'} - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.cfg', **cfg_attrs), mock.patch(self._AGENT_NAME + '.logging_config'), mock.patch(self._AGENT_NAME + '._get_tunnel_ip', @@ -635,7 +635,7 @@ class TestRyuNeutronAgent(RyuAgentTestCase): ]) def test_main_raise(self): - with nested( + with contextlib.nested( mock.patch(self._AGENT_NAME + '.OVSNeutronOFPRyuAgent', side_effect=httplib.HTTPException('boom')), mock.patch('sys.exit', side_effect=SystemExit(0)) diff --git a/neutron/tests/unit/ryu/test_ryu_db.py b/neutron/tests/unit/ryu/test_ryu_db.py index 1d9d1f41845..3dd49fcc88a 100644 --- a/neutron/tests/unit/ryu/test_ryu_db.py +++ b/neutron/tests/unit/ryu/test_ryu_db.py @@ -15,7 +15,7 @@ # License for the specific language governing permissions and limitations # under the License. -from contextlib import nested +import contextlib import operator from neutron.db import api as db @@ -34,10 +34,9 @@ class RyuDBTest(test_plugin.NeutronDbPluginV2TestCase): def test_key_allocation(self): tunnel_key = db_api_v2.TunnelKey() session = db.get_session() - with nested(self.network('network-0'), - self.network('network-1') - ) as (network_0, - network_1): + with contextlib.nested(self.network('network-0'), + self.network('network-1') + ) as (network_0, network_1): network_id0 = network_0['network']['id'] key0 = tunnel_key.allocate(session, network_id0) network_id1 = network_1['network']['id'] diff --git a/neutron/tests/unit/services/firewall/drivers/linux/test_iptables_fwaas.py b/neutron/tests/unit/services/firewall/drivers/linux/test_iptables_fwaas.py index f3fba7da584..4bcef20e6c0 100644 --- a/neutron/tests/unit/services/firewall/drivers/linux/test_iptables_fwaas.py +++ b/neutron/tests/unit/services/firewall/drivers/linux/test_iptables_fwaas.py @@ -18,7 +18,6 @@ # @author: Rajesh Mohan, Rajesh_Mohan3@Dell.com, DELL Inc. import mock -from mock import call from oslo.config import cfg from neutron.agent.common import config as a_cfg @@ -125,29 +124,29 @@ class IptablesFwaasTestCase(base.BaseTestCase): ipt_mgr_echain = '%s-%s' % (bname, egress_chain[:11]) for router_info_inst in apply_list: v4filter_inst = router_info_inst.iptables_manager.ipv4['filter'] - calls = [call.ensure_remove_chain('iv4fake-fw-uuid'), - call.ensure_remove_chain('ov4fake-fw-uuid'), - call.ensure_remove_chain('fwaas-default-policy'), - call.add_chain('fwaas-default-policy'), - call.add_rule('fwaas-default-policy', '-j DROP'), - call.add_chain(ingress_chain), - call.add_rule(ingress_chain, invalid_rule), - call.add_rule(ingress_chain, est_rule), - call.add_chain(egress_chain), - call.add_rule(egress_chain, invalid_rule), - call.add_rule(egress_chain, est_rule), - call.add_rule(ingress_chain, rule1), - call.add_rule(egress_chain, rule1), - call.add_rule(ingress_chain, rule2), - call.add_rule(egress_chain, rule2), - call.add_rule('FORWARD', - '-o qr-+ -j %s' % ipt_mgr_ichain), - call.add_rule('FORWARD', - '-i qr-+ -j %s' % ipt_mgr_echain), - call.add_rule('FORWARD', - '-o qr-+ -j %s-fwaas-defau' % bname), - call.add_rule('FORWARD', - '-i qr-+ -j %s-fwaas-defau' % bname)] + calls = [mock.call.ensure_remove_chain('iv4fake-fw-uuid'), + mock.call.ensure_remove_chain('ov4fake-fw-uuid'), + mock.call.ensure_remove_chain('fwaas-default-policy'), + mock.call.add_chain('fwaas-default-policy'), + mock.call.add_rule('fwaas-default-policy', '-j DROP'), + mock.call.add_chain(ingress_chain), + mock.call.add_rule(ingress_chain, invalid_rule), + mock.call.add_rule(ingress_chain, est_rule), + mock.call.add_chain(egress_chain), + mock.call.add_rule(egress_chain, invalid_rule), + mock.call.add_rule(egress_chain, est_rule), + mock.call.add_rule(ingress_chain, rule1), + mock.call.add_rule(egress_chain, rule1), + mock.call.add_rule(ingress_chain, rule2), + mock.call.add_rule(egress_chain, rule2), + mock.call.add_rule('FORWARD', + '-o qr-+ -j %s' % ipt_mgr_ichain), + mock.call.add_rule('FORWARD', + '-i qr-+ -j %s' % ipt_mgr_echain), + mock.call.add_rule('FORWARD', + '-o qr-+ -j %s-fwaas-defau' % bname), + mock.call.add_rule('FORWARD', + '-i qr-+ -j %s-fwaas-defau' % bname)] v4filter_inst.assert_has_calls(calls) def test_create_firewall_no_rules(self): @@ -161,21 +160,23 @@ class IptablesFwaasTestCase(base.BaseTestCase): for ip_version in (4, 6): ingress_chain = ('iv%s%s' % (ip_version, firewall['id'])) egress_chain = ('ov%s%s' % (ip_version, firewall['id'])) - calls = [call.ensure_remove_chain('iv%sfake-fw-uuid' % ip_version), - call.ensure_remove_chain('ov%sfake-fw-uuid' % ip_version), - call.ensure_remove_chain('fwaas-default-policy'), - call.add_chain('fwaas-default-policy'), - call.add_rule('fwaas-default-policy', '-j DROP'), - call.add_chain(ingress_chain), - call.add_rule(ingress_chain, invalid_rule), - call.add_rule(ingress_chain, est_rule), - call.add_chain(egress_chain), - call.add_rule(egress_chain, invalid_rule), - call.add_rule(egress_chain, est_rule), - call.add_rule('FORWARD', - '-o qr-+ -j %s-fwaas-defau' % bname), - call.add_rule('FORWARD', - '-i qr-+ -j %s-fwaas-defau' % bname)] + calls = [mock.call.ensure_remove_chain( + 'iv%sfake-fw-uuid' % ip_version), + mock.call.ensure_remove_chain( + 'ov%sfake-fw-uuid' % ip_version), + mock.call.ensure_remove_chain('fwaas-default-policy'), + mock.call.add_chain('fwaas-default-policy'), + mock.call.add_rule('fwaas-default-policy', '-j DROP'), + mock.call.add_chain(ingress_chain), + mock.call.add_rule(ingress_chain, invalid_rule), + mock.call.add_rule(ingress_chain, est_rule), + mock.call.add_chain(egress_chain), + mock.call.add_rule(egress_chain, invalid_rule), + mock.call.add_rule(egress_chain, est_rule), + mock.call.add_rule('FORWARD', + '-o qr-+ -j %s-fwaas-defau' % bname), + mock.call.add_rule('FORWARD', + '-i qr-+ -j %s-fwaas-defau' % bname)] if ip_version == 4: v4filter_inst = apply_list[0].iptables_manager.ipv4['filter'] v4filter_inst.assert_has_calls(calls) @@ -199,9 +200,9 @@ class IptablesFwaasTestCase(base.BaseTestCase): self.firewall.delete_firewall(apply_list, firewall) ingress_chain = 'iv4%s' % firewall['id'] egress_chain = 'ov4%s' % firewall['id'] - calls = [call.ensure_remove_chain(ingress_chain), - call.ensure_remove_chain(egress_chain), - call.ensure_remove_chain('fwaas-default-policy')] + calls = [mock.call.ensure_remove_chain(ingress_chain), + mock.call.ensure_remove_chain(egress_chain), + mock.call.ensure_remove_chain('fwaas-default-policy')] apply_list[0].iptables_manager.ipv4['filter'].assert_has_calls(calls) def test_create_firewall_with_admin_down(self): @@ -209,9 +210,9 @@ class IptablesFwaasTestCase(base.BaseTestCase): rule_list = self._fake_rules_v4(FAKE_FW_ID, apply_list) firewall = self._fake_firewall_with_admin_down(rule_list) self.firewall.create_firewall(apply_list, firewall) - calls = [call.ensure_remove_chain('iv4fake-fw-uuid'), - call.ensure_remove_chain('ov4fake-fw-uuid'), - call.ensure_remove_chain('fwaas-default-policy'), - call.add_chain('fwaas-default-policy'), - call.add_rule('fwaas-default-policy', '-j DROP')] + calls = [mock.call.ensure_remove_chain('iv4fake-fw-uuid'), + mock.call.ensure_remove_chain('ov4fake-fw-uuid'), + mock.call.ensure_remove_chain('fwaas-default-policy'), + mock.call.add_chain('fwaas-default-policy'), + mock.call.add_rule('fwaas-default-policy', '-j DROP')] apply_list[0].iptables_manager.ipv4['filter'].assert_has_calls(calls) diff --git a/neutron/tests/unit/services/loadbalancer/drivers/netscaler/test_netscaler_driver.py b/neutron/tests/unit/services/loadbalancer/drivers/netscaler/test_netscaler_driver.py index e10c1a3d766..87f48fbcc6f 100644 --- a/neutron/tests/unit/services/loadbalancer/drivers/netscaler/test_netscaler_driver.py +++ b/neutron/tests/unit/services/loadbalancer/drivers/netscaler/test_netscaler_driver.py @@ -23,7 +23,7 @@ from neutron import manager from neutron.plugins.common import constants from neutron.services.loadbalancer.drivers.netscaler import ncc_client from neutron.services.loadbalancer.drivers.netscaler import netscaler_driver -from neutron.tests.unit.db.loadbalancer import test_db_loadbalancer +from neutron.tests.unit.db import loadbalancer LBAAS_DRIVER_CLASS = ('neutron.services.loadbalancer.drivers' @@ -55,7 +55,7 @@ TESTVIP_IP = '10.0.1.100' TESTMEMBER_IP = '10.0.0.5' -class TestLoadBalancerPluginBase(test_db_loadbalancer +class TestLoadBalancerPluginBase(loadbalancer.test_db_loadbalancer .LoadBalancerPluginDbTestCase): def setUp(self): diff --git a/neutron/tests/unit/services/loadbalancer/drivers/test_agent_driver_base.py b/neutron/tests/unit/services/loadbalancer/drivers/test_agent_driver_base.py index 8efec3a7978..6a92213062f 100644 --- a/neutron/tests/unit/services/loadbalancer/drivers/test_agent_driver_base.py +++ b/neutron/tests/unit/services/loadbalancer/drivers/test_agent_driver_base.py @@ -19,7 +19,7 @@ import contextlib import mock -from six.moves import xrange +from six import moves from webob import exc from neutron import context @@ -91,7 +91,7 @@ class TestLoadBalancerCallbacks(TestLoadBalancerPluginBase): # add 3 pools and 2 vips directly to DB # to create 2 "ready" devices and one pool without vip pools = [] - for i in xrange(3): + for i in moves.xrange(3): pools.append(ldb.Pool(id=uuidutils.generate_uuid(), subnet_id=self._subnet_id, protocol="HTTP", diff --git a/neutron/tests/unit/services/metering/drivers/test_iptables_driver.py b/neutron/tests/unit/services/metering/drivers/test_iptables_driver.py index c6131154c7f..ad056f40122 100644 --- a/neutron/tests/unit/services/metering/drivers/test_iptables_driver.py +++ b/neutron/tests/unit/services/metering/drivers/test_iptables_driver.py @@ -17,7 +17,6 @@ import copy import mock -from mock import call from oslo.config import cfg from neutron.services.metering.drivers.iptables import iptables_driver @@ -80,13 +79,16 @@ class IptablesDriverTestCase(base.BaseTestCase): 'tenant_id': '6c5f5d2a1fa2441e88e35422926f48e8'}] self.metering.add_metering_label(None, routers) - calls = [call.add_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.add_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-l-c5df2fe5-c60', - '', - wrap=False)] + calls = [mock.call.add_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-c5df2fe5-c60', + '', + wrap=False)] self.v4filter_inst.assert_has_calls(calls) @@ -121,27 +123,34 @@ class IptablesDriverTestCase(base.BaseTestCase): 'tenant_id': '6c5f5d2a1fa2441e88e35422926f48e8'}] self.metering.add_metering_label(None, routers) - calls = [call.add_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.add_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-l-c5df2fe5-c60', - '', - wrap=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' - ' -j neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False), - call.add_chain('neutron-meter-l-eeef45da-c60', wrap=False), - call.add_chain('neutron-meter-r-eeef45da-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-eeef45da-c60', wrap=False), - call.add_rule('neutron-meter-l-eeef45da-c60', - '', - wrap=False), - call.add_rule('neutron-meter-r-eeef45da-c60', - '-i qg-7d411f48-ec -d 20.0.0.0/24 -j RETURN', - wrap=False, top=True)] + calls = [mock.call.add_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-c5df2fe5-c60', + '', + wrap=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-6d411f48-ec -d 10.0.0.0/24' + ' -j neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False), + mock.call.add_chain('neutron-meter-l-eeef45da-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-eeef45da-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-eeef45da-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-eeef45da-c60', + '', + wrap=False), + mock.call.add_rule('neutron-meter-r-eeef45da-c60', + '-i qg-7d411f48-ec -d 20.0.0.0/24' + ' -j RETURN', + wrap=False, top=True)] self.v4filter_inst.assert_has_calls(calls) @@ -178,25 +187,30 @@ class IptablesDriverTestCase(base.BaseTestCase): self.metering.update_metering_label_rules(None, updates) - calls = [call.add_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.add_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-l-c5df2fe5-c60', - '', - wrap=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' - ' -j neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False), - call.empty_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-o qg-6d411f48-ec -d 10.0.0.0/24 -j RETURN', - wrap=False, top=True), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 20.0.0.0/24 -j ' - 'neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False)] + calls = [mock.call.add_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-c5df2fe5-c60', + '', + wrap=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-6d411f48-ec -d 10.0.0.0/24' + ' -j neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False), + mock.call.empty_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-o qg-6d411f48-ec -d 10.0.0.0/24' + ' -j RETURN', + wrap=False, top=True), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-6d411f48-ec -d 20.0.0.0/24 -j ' + 'neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False)] self.v4filter_inst.assert_has_calls(calls) @@ -241,26 +255,30 @@ class IptablesDriverTestCase(base.BaseTestCase): 'tenant_id': '6c5f5d2a1fa2441e88e35422926f48e8'}] self.metering.update_metering_label_rules(None, routers) - calls = [call.add_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.add_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-l-c5df2fe5-c60', - '', - wrap=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-7d411f48-ec -d 10.0.0.0/24' - ' -j neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-7d411f48-ec -d 20.0.0.0/24' - ' -j neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False), - call.empty_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-7d411f48-ec -d 10.0.0.0/24' - ' -j neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False)] + calls = [mock.call.add_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-c5df2fe5-c60', + '', + wrap=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-7d411f48-ec -d 10.0.0.0/24' + ' -j neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-7d411f48-ec -d 20.0.0.0/24' + ' -j neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False), + mock.call.empty_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-7d411f48-ec -d 10.0.0.0/24' + ' -j neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False)] self.v4filter_inst.assert_has_calls(calls) @@ -283,19 +301,24 @@ class IptablesDriverTestCase(base.BaseTestCase): self.metering.add_metering_label(None, routers) self.metering.remove_metering_label(None, routers) - calls = [call.add_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.add_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-l-c5df2fe5-c60', - '', - wrap=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-7d411f48-ec -d 10.0.0.0/24' - ' -j neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False), - call.remove_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.remove_chain('neutron-meter-r-c5df2fe5-c60', wrap=False)] + calls = [mock.call.add_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-c5df2fe5-c60', + '', + wrap=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-7d411f48-ec -d 10.0.0.0/24' + ' -j neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False), + mock.call.remove_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.remove_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False)] self.v4filter_inst.assert_has_calls(calls) @@ -335,39 +358,51 @@ class IptablesDriverTestCase(base.BaseTestCase): updates[0]['gw_port_id'] = '587b63c1-22a3-40b3-9834-486d1fb215a5' self.metering.update_routers(None, updates) - calls = [call.add_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.add_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-l-c5df2fe5-c60', - '', - wrap=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-6d411f48-ec -d 10.0.0.0/24' - ' -j neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False), - call.add_chain('neutron-meter-l-eeef45da-c60', wrap=False), - call.add_chain('neutron-meter-r-eeef45da-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-eeef45da-c60', wrap=False), - call.add_rule('neutron-meter-l-eeef45da-c60', - '', - wrap=False), - call.add_rule('neutron-meter-r-eeef45da-c60', - '-i qg-7d411f48-ec -d 20.0.0.0/24 -j RETURN', - wrap=False, top=True), - call.remove_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.remove_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_chain('neutron-meter-l-c5df2fe5-c60', wrap=False), - call.add_chain('neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-FORWARD', '-j ' - 'neutron-meter-r-c5df2fe5-c60', wrap=False), - call.add_rule('neutron-meter-l-c5df2fe5-c60', - '', - wrap=False), - call.add_rule('neutron-meter-r-c5df2fe5-c60', - '-i qg-587b63c1-22 -d 10.0.0.0/24' - ' -j neutron-meter-l-c5df2fe5-c60', - wrap=False, top=False)] + calls = [mock.call.add_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-c5df2fe5-c60', + '', + wrap=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-6d411f48-ec -d 10.0.0.0/24' + ' -j neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False), + mock.call.add_chain('neutron-meter-l-eeef45da-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-eeef45da-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-eeef45da-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-eeef45da-c60', + '', + wrap=False), + mock.call.add_rule('neutron-meter-r-eeef45da-c60', + '-i qg-7d411f48-ec -d 20.0.0.0/24' + ' -j RETURN', + wrap=False, top=True), + mock.call.remove_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.remove_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_chain('neutron-meter-l-c5df2fe5-c60', + wrap=False), + mock.call.add_chain('neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-FORWARD', '-j ' + 'neutron-meter-r-c5df2fe5-c60', + wrap=False), + mock.call.add_rule('neutron-meter-l-c5df2fe5-c60', + '', + wrap=False), + mock.call.add_rule('neutron-meter-r-c5df2fe5-c60', + '-i qg-587b63c1-22 -d 10.0.0.0/24' + ' -j neutron-meter-l-c5df2fe5-c60', + wrap=False, top=False)] self.v4filter_inst.assert_has_calls(calls) diff --git a/neutron/tests/unit/services/vpn/device_drivers/cisco_csr_mock.py b/neutron/tests/unit/services/vpn/device_drivers/cisco_csr_mock.py index ef3003d99a7..fe2223a7420 100644 --- a/neutron/tests/unit/services/vpn/device_drivers/cisco_csr_mock.py +++ b/neutron/tests/unit/services/vpn/device_drivers/cisco_csr_mock.py @@ -18,7 +18,7 @@ import re -from functools import wraps +import functools # import httmock import requests from requests import exceptions as r_exc @@ -26,10 +26,12 @@ from requests import exceptions as r_exc from neutron.openstack.common import log as logging # TODO(pcm) Remove once httmock package is added to test-requirements. For # now, uncomment and include httmock source to UT -from neutron.tests.unit.services.vpn.device_drivers import httmock +from neutron.tests.unit.services.vpn import device_drivers LOG = logging.getLogger(__name__) +httmock = device_drivers.httmock + def repeat(n): """Decorator to limit the number of times a handler is called. @@ -43,7 +45,7 @@ def repeat(n): retries = n def decorator(func): - @wraps(func) + @functools.wraps(func) def wrapped(*args, **kwargs): if static.retries == 0: return None @@ -66,7 +68,7 @@ def filter_request(methods, resource): target_resource = resource def decorator(func): - @wraps(func) + @functools.wraps(func) def wrapped(*args, **kwargs): if (args[1].method in static.target_methods and static.target_resource in args[0].path): diff --git a/neutron/tests/unit/services/vpn/device_drivers/notest_cisco_csr_rest.py b/neutron/tests/unit/services/vpn/device_drivers/notest_cisco_csr_rest.py index 13191b48f1e..45bf9723872 100644 --- a/neutron/tests/unit/services/vpn/device_drivers/notest_cisco_csr_rest.py +++ b/neutron/tests/unit/services/vpn/device_drivers/notest_cisco_csr_rest.py @@ -27,11 +27,9 @@ from neutron.openstack.common import log as logging from neutron.services.vpn.device_drivers import ( cisco_csr_rest_client as csr_client) from neutron.tests import base -from neutron.tests.unit.services.vpn.device_drivers import ( - cisco_csr_mock as csr_request) +from neutron.tests.unit.services.vpn import device_drivers # TODO(pcm) Remove once httmock is available. In the meantime, use # temporary local copy of httmock source to run UT -from neutron.tests.unit.services.vpn.device_drivers import httmock LOG = logging.getLogger(__name__) @@ -42,6 +40,8 @@ if True: dummy_policy_id = 'dummy-ipsec-policy-id-name' +httmock = device_drivers.httmock + # Note: Helper functions to test reuse of IDs. def generate_pre_shared_key_id(): @@ -67,7 +67,7 @@ class TestCsrLoginRestApi(base.BaseTestCase): def test_get_token(self): """Obtain the token and its expiration time.""" - with httmock.HTTMock(csr_request.token): + with httmock.HTTMock(device_drivers.csr_request.token): self.assertTrue(self.csr.authenticate()) self.assertEqual(requests.codes.OK, self.csr.status) self.assertIsNotNone(self.csr.token) @@ -75,7 +75,7 @@ class TestCsrLoginRestApi(base.BaseTestCase): def test_unauthorized_token_request(self): """Negative test of invalid user/password.""" self.csr.auth = ('stack', 'bogus') - with httmock.HTTMock(csr_request.token_unauthorized): + with httmock.HTTMock(device_drivers.csr_request.token_unauthorized): self.assertIsNone(self.csr.authenticate()) self.assertEqual(requests.codes.UNAUTHORIZED, self.csr.status) @@ -83,14 +83,14 @@ class TestCsrLoginRestApi(base.BaseTestCase): """Negative test of request to non-existent host.""" self.csr.host = 'wrong-host' self.csr.token = 'Set by some previously successful access' - with httmock.HTTMock(csr_request.token_wrong_host): + with httmock.HTTMock(device_drivers.csr_request.token_wrong_host): self.assertIsNone(self.csr.authenticate()) self.assertEqual(requests.codes.NOT_FOUND, self.csr.status) self.assertIsNone(self.csr.token) def test_timeout_on_token_access(self): """Negative test of a timeout on a request.""" - with httmock.HTTMock(csr_request.token_timeout): + with httmock.HTTMock(device_drivers.csr_request.token_timeout): self.assertIsNone(self.csr.authenticate()) self.assertEqual(requests.codes.REQUEST_TIMEOUT, self.csr.status) self.assertIsNone(self.csr.token) @@ -112,7 +112,8 @@ class TestCsrGetRestApi(base.BaseTestCase): that there are two interfaces on the CSR. """ - with httmock.HTTMock(csr_request.token, csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.normal_get): content = self.csr.get_request('global/host-name') self.assertEqual(requests.codes.OK, self.csr.status) self.assertIn('host-name', content) @@ -139,7 +140,8 @@ class TestCsrPostRestApi(base.BaseTestCase): that there are two interfaces (Ge1 and Ge2) on the CSR. """ - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): content = self.csr.post_request( 'interfaces/GigabitEthernet1/statistics', payload={'action': 'clear'}) @@ -153,7 +155,8 @@ class TestCsrPostRestApi(base.BaseTestCase): def test_post_with_location(self): """Create a user and verify that location returned.""" - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): location = self.csr.post_request( 'global/local-users', payload={'username': 'test-user', @@ -164,7 +167,8 @@ class TestCsrPostRestApi(base.BaseTestCase): def test_post_missing_required_attribute(self): """Negative test of POST with missing mandatory info.""" - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): self.csr.post_request('global/local-users', payload={'password': 'pass12345', 'privilege': 15}) @@ -172,7 +176,8 @@ class TestCsrPostRestApi(base.BaseTestCase): def test_post_invalid_attribute(self): """Negative test of POST with invalid info.""" - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): self.csr.post_request('global/local-users', payload={'username': 'test-user', 'password': 'pass12345', @@ -185,7 +190,8 @@ class TestCsrPostRestApi(base.BaseTestCase): Uses the lower level _do_request() API to just perform the POST and obtain the response, without any error processing. """ - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): location = self.csr._do_request( 'POST', 'global/local-users', @@ -195,8 +201,8 @@ class TestCsrPostRestApi(base.BaseTestCase): more_headers=csr_client.HEADER_CONTENT_TYPE_JSON) self.assertEqual(requests.codes.CREATED, self.csr.status) self.assertIn('global/local-users/test-user', location) - with httmock.HTTMock(csr_request.token, - csr_request.post_change_attempt): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post_change_attempt): self.csr._do_request( 'POST', 'global/local-users', @@ -210,7 +216,8 @@ class TestCsrPostRestApi(base.BaseTestCase): def test_post_changing_value(self): """Negative test of a POST trying to change a value.""" - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): location = self.csr.post_request( 'global/local-users', payload={'username': 'test-user', @@ -218,8 +225,8 @@ class TestCsrPostRestApi(base.BaseTestCase): 'privilege': 15}) self.assertEqual(requests.codes.CREATED, self.csr.status) self.assertIn('global/local-users/test-user', location) - with httmock.HTTMock(csr_request.token, - csr_request.post_change_attempt): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post_change_attempt): content = self.csr.post_request('global/local-users', payload={'username': 'test-user', 'password': 'changed', @@ -235,7 +242,8 @@ class TestCsrPutRestApi(base.BaseTestCase): """Test CSR PUT REST API.""" def _save_resources(self): - with httmock.HTTMock(csr_request.token, csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.normal_get): details = self.csr.get_request('global/host-name') if self.csr.status != requests.codes.OK: self.fail("Unable to save original host name") @@ -258,7 +266,8 @@ class TestCsrPutRestApi(base.BaseTestCase): self.csr.auth = (user, password) self.csr.token = None - with httmock.HTTMock(csr_request.token, csr_request.put): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.put): payload = {'host-name': self.original_host} self.csr.put_request('global/host-name', payload=payload) if self.csr.status != requests.codes.NO_CONTENT: @@ -288,8 +297,9 @@ class TestCsrPutRestApi(base.BaseTestCase): that there are two interfaces on the CSR (Ge1 and Ge2). """ - with httmock.HTTMock(csr_request.token, csr_request.put, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.put, + device_drivers.csr_request.normal_get): payload = {'host-name': 'TestHost'} content = self.csr.put_request('global/host-name', payload=payload) @@ -308,8 +318,9 @@ class TestCsrPutRestApi(base.BaseTestCase): This was a problem with an earlier version of the CSR image and is here to prevent regression. """ - with httmock.HTTMock(csr_request.token, csr_request.put, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.put, + device_drivers.csr_request.normal_get): payload = {'description': u'Changed description', 'if-name': self.original_if['if-name'], 'ip-address': self.original_if['ip-address'], @@ -334,8 +345,9 @@ class TestCsrPutRestApi(base.BaseTestCase): test setup to change the description to a non-empty string to avoid failures in other tests. """ - with httmock.HTTMock(csr_request.token, csr_request.put, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.put, + device_drivers.csr_request.normal_get): payload = {'description': '', 'if-name': self.original_if['if-name'], 'ip-address': self.original_if['ip-address'], @@ -370,8 +382,9 @@ class TestCsrDeleteRestApi(base.BaseTestCase): def test_delete_requests(self): """Simple DELETE requests (creating entry first).""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.delete): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.delete): self._make_dummy_user() self.csr.token = None # Force login self.csr.delete_request('global/local-users/dummy') @@ -383,7 +396,8 @@ class TestCsrDeleteRestApi(base.BaseTestCase): def test_delete_non_existent_entry(self): """Negative test of trying to delete a non-existent user.""" - with httmock.HTTMock(csr_request.token, csr_request.delete_unknown): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete_unknown): content = self.csr.delete_request('global/local-users/unknown') self.assertEqual(requests.codes.NOT_FOUND, self.csr.status) expected = {u'error-code': -1, @@ -392,8 +406,8 @@ class TestCsrDeleteRestApi(base.BaseTestCase): def test_delete_not_allowed(self): """Negative test of trying to delete the host-name.""" - with httmock.HTTMock(csr_request.token, - csr_request.delete_not_allowed): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete_not_allowed): self.csr.delete_request('global/host-name') self.assertEqual(requests.codes.METHOD_NOT_ALLOWED, self.csr.status) @@ -414,14 +428,16 @@ class TestCsrRestApiFailures(base.BaseTestCase): def test_request_for_non_existent_resource(self): """Negative test of non-existent resource on REST request.""" - with httmock.HTTMock(csr_request.token, csr_request.no_such_resource): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.no_such_resource): self.csr.post_request('no/such/request') self.assertEqual(requests.codes.NOT_FOUND, self.csr.status) # The result is HTTP 404 message, so no error content to check def test_timeout_during_request(self): """Negative test of timeout during REST request.""" - with httmock.HTTMock(csr_request.token, csr_request.timeout): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.timeout): self.csr._do_request('GET', 'global/host-name') self.assertEqual(requests.codes.REQUEST_TIMEOUT, self.csr.status) @@ -433,8 +449,9 @@ class TestCsrRestApiFailures(base.BaseTestCase): token by changing it. """ - with httmock.HTTMock(csr_request.token, csr_request.expired_request, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.expired_request, + device_drivers.csr_request.normal_get): self.csr.token = '123' # These are 44 characters, so won't match content = self.csr._do_request('GET', 'global/host-name') self.assertEqual(requests.codes.OK, self.csr.status) @@ -444,7 +461,7 @@ class TestCsrRestApiFailures(base.BaseTestCase): def test_failed_to_obtain_token_for_request(self): """Negative test of unauthorized user for REST request.""" self.csr.auth = ('stack', 'bogus') - with httmock.HTTMock(csr_request.token_unauthorized): + with httmock.HTTMock(device_drivers.csr_request.token_unauthorized): self.csr._do_request('GET', 'global/host-name') self.assertEqual(requests.codes.UNAUTHORIZED, self.csr.status) @@ -460,8 +477,9 @@ class TestCsrRestIkePolicyCreate(base.BaseTestCase): def test_create_delete_ike_policy(self): """Create and then delete IKE policy.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): policy_id = '2' policy_info = {u'priority-id': u'%s' % policy_id, u'encryption': u'aes256', @@ -480,8 +498,9 @@ class TestCsrRestIkePolicyCreate(base.BaseTestCase): expected_policy.update(policy_info) self.assertEqual(expected_policy, content) # Now delete and verify the IKE policy is gone - with httmock.HTTMock(csr_request.token, csr_request.delete, - csr_request.no_such_resource): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete, + device_drivers.csr_request.no_such_resource): self.csr.delete_ike_policy(policy_id) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) content = self.csr.get_request(location, full_url=True) @@ -489,8 +508,9 @@ class TestCsrRestIkePolicyCreate(base.BaseTestCase): def test_create_ike_policy_with_defaults(self): """Create IKE policy using defaults for all optional values.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.get_defaults): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.get_defaults): policy_id = '2' policy_info = {u'priority-id': u'%s' % policy_id} location = self.csr.create_ike_policy(policy_info) @@ -512,8 +532,9 @@ class TestCsrRestIkePolicyCreate(base.BaseTestCase): def test_create_duplicate_ike_policy(self): """Negative test of trying to create a duplicate IKE policy.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): policy_id = '2' policy_info = {u'priority-id': u'%s' % policy_id, u'encryption': u'aes', @@ -523,7 +544,8 @@ class TestCsrRestIkePolicyCreate(base.BaseTestCase): location = self.csr.create_ike_policy(policy_info) self.assertEqual(requests.codes.CREATED, self.csr.status) self.assertIn('vpn-svc/ike/policies/%s' % policy_id, location) - with httmock.HTTMock(csr_request.token, csr_request.post_duplicate): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post_duplicate): location = self.csr.create_ike_policy(policy_info) self.assertEqual(requests.codes.BAD_REQUEST, self.csr.status) expected = {u'error-code': -1, @@ -543,8 +565,9 @@ class TestCsrRestIPSecPolicyCreate(base.BaseTestCase): def test_create_delete_ipsec_policy(self): """Create and then delete IPSec policy.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): policy_id = '123' policy_info = { u'policy-id': u'%s' % policy_id, @@ -572,8 +595,9 @@ class TestCsrRestIPSecPolicyCreate(base.BaseTestCase): expected_policy[u'anti-replay-window-size'] = u'Disable' self.assertEqual(expected_policy, content) # Now delete and verify the IPSec policy is gone - with httmock.HTTMock(csr_request.token, csr_request.delete, - csr_request.no_such_resource): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete, + device_drivers.csr_request.no_such_resource): self.csr.delete_ipsec_policy(policy_id) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) content = self.csr.get_request(location, full_url=True) @@ -581,8 +605,9 @@ class TestCsrRestIPSecPolicyCreate(base.BaseTestCase): def test_create_ipsec_policy_with_defaults(self): """Create IPSec policy with default for all optional values.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.get_defaults): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.get_defaults): policy_id = '123' policy_info = { u'policy-id': u'%s' % policy_id, @@ -606,8 +631,9 @@ class TestCsrRestIPSecPolicyCreate(base.BaseTestCase): def test_create_ipsec_policy_with_uuid(self): """Create IPSec policy using UUID for id.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): policy_info = { u'policy-id': u'%s' % dummy_policy_id, u'protection-suite': { @@ -637,8 +663,9 @@ class TestCsrRestIPSecPolicyCreate(base.BaseTestCase): def test_create_ipsec_policy_without_ah(self): """Create IPSec policy.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.get_no_ah): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.get_no_ah): policy_id = '10' policy_info = { u'policy-id': u'%s' % policy_id, @@ -665,8 +692,8 @@ class TestCsrRestIPSecPolicyCreate(base.BaseTestCase): def test_invalid_ipsec_policy_lifetime(self): """Failure test of IPSec policy with unsupported lifetime.""" - with httmock.HTTMock(csr_request.token, - csr_request.post_bad_lifetime): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post_bad_lifetime): policy_id = '123' policy_info = { u'policy-id': u'%s' % policy_id, @@ -684,8 +711,9 @@ class TestCsrRestIPSecPolicyCreate(base.BaseTestCase): def test_create_ipsec_policy_with_invalid_name(self): """Failure test of creating IPSec policy with name too long.""" - with httmock.HTTMock(csr_request.token, csr_request.post_bad_name, - csr_request.get_defaults): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post_bad_name, + device_drivers.csr_request.get_defaults): policy_id = 'policy-name-is-too-long-32-chars' policy_info = { u'policy-id': u'%s' % policy_id, @@ -705,8 +733,9 @@ class TestCsrRestPreSharedKeyCreate(base.BaseTestCase): def test_create_delete_pre_shared_key(self): """Create and then delete a keyring entry for pre-shared key.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): psk_id = '5' psk_info = {u'keyring-name': u'%s' % psk_id, u'pre-shared-key-list': [ @@ -727,8 +756,9 @@ class TestCsrRestPreSharedKeyCreate(base.BaseTestCase): u'10.10.10.20 255.255.255.0') self.assertEqual(expected_policy, content) # Now delete and verify pre-shared key is gone - with httmock.HTTMock(csr_request.token, csr_request.delete, - csr_request.no_such_resource): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete, + device_drivers.csr_request.no_such_resource): self.csr.delete_pre_shared_key(psk_id) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) content = self.csr.get_request(location, full_url=True) @@ -736,8 +766,9 @@ class TestCsrRestPreSharedKeyCreate(base.BaseTestCase): def test_create_pre_shared_key_with_fqdn_peer(self): """Create pre-shared key using FQDN for peer address.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.get_fqdn): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.get_fqdn): psk_id = '5' psk_info = {u'keyring-name': u'%s' % psk_id, u'pre-shared-key-list': [ @@ -757,8 +788,9 @@ class TestCsrRestPreSharedKeyCreate(base.BaseTestCase): def test_create_pre_shared_key_with_duplicate_peer_address(self): """Negative test of creating a second pre-shared key with same peer.""" - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): psk_id = '5' psk_info = {u'keyring-name': u'%s' % psk_id, u'pre-shared-key-list': [ @@ -769,7 +801,8 @@ class TestCsrRestPreSharedKeyCreate(base.BaseTestCase): location = self.csr.create_pre_shared_key(psk_info) self.assertEqual(requests.codes.CREATED, self.csr.status) self.assertIn('vpn-svc/ike/keyrings/%s' % psk_id, location) - with httmock.HTTMock(csr_request.token, csr_request.post_duplicate): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post_duplicate): psk_id = u'6' another_psk_info = {u'keyring-name': psk_id, u'pre-shared-key-list': [ @@ -799,7 +832,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): psk_id = generate_pre_shared_key_id() self._remove_resource_for_test(self.csr.delete_pre_shared_key, psk_id) - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): psk_info = {u'keyring-name': u'%d' % psk_id, u'pre-shared-key-list': [ {u'key': u'super-secret', @@ -817,7 +851,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): policy_id = generate_ike_policy_id() self._remove_resource_for_test(self.csr.delete_ike_policy, policy_id) - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): policy_info = {u'priority-id': u'%d' % policy_id, u'encryption': u'aes', u'hash': u'sha', @@ -834,7 +869,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): policy_id = generate_ipsec_policy_id() self._remove_resource_for_test(self.csr.delete_ipsec_policy, policy_id) - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): policy_info = { u'policy-id': u'%d' % policy_id, u'protection-suite': { @@ -854,7 +890,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): return policy_id def _remove_resource_for_test(self, delete_resource, resource_id): - with httmock.HTTMock(csr_request.token, csr_request.delete): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete): delete_resource(resource_id) def _prepare_for_site_conn_create(self, skip_psk=False, skip_ike=False, @@ -876,8 +913,9 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): def test_create_delete_ipsec_connection(self): """Create and then delete an IPSec connection.""" tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create() - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): connection_info = { u'vpn-interface-name': u'Tunnel%d' % tunnel_id, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -903,8 +941,9 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): expected_connection.update(connection_info) self.assertEqual(expected_connection, content) # Now delete and verify that site-to-site connection is gone - with httmock.HTTMock(csr_request.token, csr_request.delete, - csr_request.no_such_resource): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete, + device_drivers.csr_request.no_such_resource): # Only delete connection. Cleanup will take care of prerequisites self.csr.delete_ipsec_connection('Tunnel%d' % tunnel_id) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) @@ -914,8 +953,9 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): def test_create_ipsec_connection_with_no_tunnel_subnet(self): """Create an IPSec connection without an IP address on tunnel.""" tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create() - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.get_unnumbered): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.get_unnumbered): connection_info = { u'vpn-interface-name': u'Tunnel%d' % tunnel_id, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -949,8 +989,9 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create( skip_psk=True) - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): connection_info = { u'vpn-interface-name': u'Tunnel%d' % tunnel_id, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -985,8 +1026,9 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create( skip_ike=True) - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): connection_info = { u'vpn-interface-name': u'Tunnel%d' % tunnel_id, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -1016,7 +1058,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): """Create IPSec connection in admin down state.""" tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create() tunnel = u'Tunnel%d' % tunnel_id - with httmock.HTTMock(csr_request.token, csr_request.post): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post): connection_info = { u'vpn-interface-name': tunnel, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -1038,14 +1081,16 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): u'vpn-interface-name': tunnel, u'line-protocol-state': u'down', u'enabled': False} - with httmock.HTTMock(csr_request.put, csr_request.get_admin_down): + with httmock.HTTMock(device_drivers.csr_request.put, + device_drivers.csr_request.get_admin_down): self.csr.set_ipsec_connection_state(tunnel, admin_up=False) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) content = self.csr.get_request(state_uri, full_url=True) self.assertEqual(requests.codes.OK, self.csr.status) self.assertEqual(expected_state, content) - with httmock.HTTMock(csr_request.put, csr_request.get_admin_up): + with httmock.HTTMock(device_drivers.csr_request.put, + device_drivers.csr_request.get_admin_up): self.csr.set_ipsec_connection_state(tunnel, admin_up=True) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) content = self.csr.get_request(state_uri, full_url=True) @@ -1057,8 +1102,9 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): """Negative test of connection create without IPSec policy.""" tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create( skip_ipsec=True) - with httmock.HTTMock(csr_request.token, - csr_request.post_missing_ipsec_policy): + with httmock.HTTMock( + device_drivers.csr_request.token, + device_drivers.csr_request.post_missing_ipsec_policy): connection_info = { u'vpn-interface-name': u'Tunnel%d' % tunnel_id, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -1073,7 +1119,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): self.assertEqual(requests.codes.BAD_REQUEST, self.csr.status) def _determine_conflicting_ip(self): - with httmock.HTTMock(csr_request.token, csr_request.get_local_ip): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.get_local_ip): details = self.csr.get_request('interfaces/GigabitEthernet3') if self.csr.status != requests.codes.OK: self.fail("Unable to obtain interface GigabitEthernet3's IP") @@ -1091,7 +1138,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): conflicting_ip = self._determine_conflicting_ip() tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create() - with httmock.HTTMock(csr_request.token, csr_request.post_bad_ip): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post_bad_ip): connection_info = { u'vpn-interface-name': u'Tunnel%d' % tunnel_id, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -1108,8 +1156,9 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): def test_create_ipsec_connection_with_max_mtu(self): """Create an IPSec connection with max MTU value.""" tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create() - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.get_mtu): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.get_mtu): connection_info = { u'vpn-interface-name': u'Tunnel%d' % tunnel_id, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -1137,7 +1186,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): def test_create_ipsec_connection_with_bad_mtu(self): """Negative test of connection create with unsupported MTU value.""" tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create() - with httmock.HTTMock(csr_request.token, csr_request.post_bad_mtu): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post_bad_mtu): connection_info = { u'vpn-interface-name': u'Tunnel%d' % tunnel_id, u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -1154,7 +1204,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): def test_status_when_no_tunnels_exist(self): """Get status, when there are no tunnels.""" - with httmock.HTTMock(csr_request.token, csr_request.get_none): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.get_none): tunnels = self.csr.read_tunnel_statuses() self.assertEqual(requests.codes.OK, self.csr.status) self.assertEqual([], tunnels) @@ -1164,8 +1215,9 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): # Create the IPsec site-to-site connection first tunnel_id, ipsec_policy_id = self._prepare_for_site_conn_create() tunnel_id = 123 # Must hard code to work with mock - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): connection_info = { u'vpn-interface-name': u'Tunnel123', u'ipsec-policy-id': u'%d' % ipsec_policy_id, @@ -1180,7 +1232,8 @@ class TestCsrRestIPSecConnectionCreate(base.BaseTestCase): self.assertEqual(requests.codes.CREATED, self.csr.status) self.assertIn('vpn-svc/site-to-site/Tunnel%d' % tunnel_id, location) - with httmock.HTTMock(csr_request.token, csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.normal_get): tunnels = self.csr.read_tunnel_statuses() self.assertEqual(requests.codes.OK, self.csr.status) self.assertEqual([(u'Tunnel123', u'DOWN-NEGOTIATING'), ], tunnels) @@ -1197,7 +1250,8 @@ class TestCsrRestIkeKeepaliveCreate(base.BaseTestCase): """ def _save_dpd_info(self): - with httmock.HTTMock(csr_request.token, csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.normal_get): details = self.csr.get_request('vpn-svc/ike/keepalive') if self.csr.status == requests.codes.OK: self.dpd = details @@ -1206,7 +1260,8 @@ class TestCsrRestIkeKeepaliveCreate(base.BaseTestCase): self.fail("Unable to save original DPD info") def _restore_dpd_info(self): - with httmock.HTTMock(csr_request.token, csr_request.put): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.put): payload = {'interval': self.dpd['interval'], 'retry': self.dpd['retry']} self.csr.put_request('vpn-svc/ike/keepalive', payload=payload) @@ -1222,8 +1277,9 @@ class TestCsrRestIkeKeepaliveCreate(base.BaseTestCase): def test_configure_ike_keepalive(self): """Set IKE keep-alive (aka Dead Peer Detection) for the CSR.""" - with httmock.HTTMock(csr_request.token, csr_request.put, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.put, + device_drivers.csr_request.normal_get): keepalive_info = {'interval': 60, 'retry': 4} self.csr.configure_ike_keepalive(keepalive_info) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) @@ -1235,8 +1291,10 @@ class TestCsrRestIkeKeepaliveCreate(base.BaseTestCase): def test_disable_ike_keepalive(self): """Disable IKE keep-alive (aka Dead Peer Detection) for the CSR.""" - with httmock.HTTMock(csr_request.token, csr_request.delete, - csr_request.put, csr_request.get_not_configured): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete, + device_drivers.csr_request.put, + device_drivers.csr_request.get_not_configured): keepalive_info = {'interval': 0, 'retry': 4} self.csr.configure_ike_keepalive(keepalive_info) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) @@ -1260,8 +1318,9 @@ class TestCsrRestStaticRoute(base.BaseTestCase): cidr = u'10.1.0.0/24' interface = u'GigabitEthernet1' expected_id = '10.1.0.0_24_GigabitEthernet1' - with httmock.HTTMock(csr_request.token, csr_request.post, - csr_request.normal_get): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.post, + device_drivers.csr_request.normal_get): route_info = {u'destination-network': cidr, u'outgoing-interface': interface} location = self.csr.create_static_route(route_info) @@ -1277,8 +1336,9 @@ class TestCsrRestStaticRoute(base.BaseTestCase): expected_route.update(route_info) self.assertEqual(expected_route, content) # Now delete and verify that static route is gone - with httmock.HTTMock(csr_request.token, csr_request.delete, - csr_request.no_such_resource): + with httmock.HTTMock(device_drivers.csr_request.token, + device_drivers.csr_request.delete, + device_drivers.csr_request.no_such_resource): route_id = csr_client.make_route_id(cidr, interface) self.csr.delete_static_route(route_id) self.assertEqual(requests.codes.NO_CONTENT, self.csr.status) diff --git a/neutron/tests/unit/test_api_v2.py b/neutron/tests/unit/test_api_v2.py index 26cde7d5d2d..c09dd21ee90 100644 --- a/neutron/tests/unit/test_api_v2.py +++ b/neutron/tests/unit/test_api_v2.py @@ -25,14 +25,14 @@ from webob import exc import webtest from neutron.api import api_common -from neutron.api.extensions import PluginAwareExtensionManager +from neutron.api import extensions from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api from neutron.api.v2 import attributes from neutron.api.v2 import base as v2_base from neutron.api.v2 import router from neutron.common import exceptions as n_exc from neutron import context -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common.notifier import api as notifer_api from neutron.openstack.common import policy as common_policy from neutron.openstack.common import uuidutils @@ -94,7 +94,7 @@ class APIv2TestBase(base.BaseTestCase): plugin = 'neutron.neutron_plugin_base_v2.NeutronPluginBaseV2' # Ensure existing ExtensionManager is not used - PluginAwareExtensionManager._instance = None + extensions.PluginAwareExtensionManager._instance = None # Create the default configurations self.config_parse() # Update the plugin @@ -1122,7 +1122,7 @@ class SubresourceTest(base.BaseTestCase): super(SubresourceTest, self).setUp() plugin = 'neutron.tests.unit.test_api_v2.TestSubresourcePlugin' - PluginAwareExtensionManager._instance = None + extensions.PluginAwareExtensionManager._instance = None # Save the global RESOURCE_ATTRIBUTE_MAP self.saved_attr_map = {} @@ -1394,7 +1394,7 @@ class ExtensionTestCase(base.BaseTestCase): plugin = 'neutron.neutron_plugin_base_v2.NeutronPluginBaseV2' # Ensure existing ExtensionManager is not used - PluginAwareExtensionManager._instance = None + extensions.PluginAwareExtensionManager._instance = None # Save the global RESOURCE_ATTRIBUTE_MAP self.saved_attr_map = {} @@ -1412,7 +1412,8 @@ class ExtensionTestCase(base.BaseTestCase): self.plugin = self._plugin_patcher.start() # Instantiate mock plugin and enable the V2attributes extension - NeutronManager.get_plugin().supported_extension_aliases = ["v2attrs"] + manager.NeutronManager.get_plugin().supported_extension_aliases = ( + ["v2attrs"]) api = router.APIRouter() self.api = webtest.TestApp(api) diff --git a/neutron/tests/unit/test_db_plugin.py b/neutron/tests/unit/test_db_plugin.py index d61de971e4a..255b0ff6e29 100644 --- a/neutron/tests/unit/test_db_plugin.py +++ b/neutron/tests/unit/test_db_plugin.py @@ -25,18 +25,17 @@ import webob.exc import neutron from neutron.api import api_common -from neutron.api.extensions import PluginAwareExtensionManager +from neutron.api import extensions from neutron.api.v2 import attributes -from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED -from neutron.api.v2.router import APIRouter +from neutron.api.v2 import router from neutron.common import constants from neutron.common import exceptions as n_exc -from neutron.common.test_lib import test_config +from neutron.common import test_lib from neutron import context from neutron.db import api as db from neutron.db import db_base_plugin_v2 from neutron.db import models_v2 -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import importutils from neutron.tests import base from neutron.tests.unit import test_extensions @@ -73,7 +72,7 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): super(NeutronDbPluginV2TestCase, self).setUp() cfg.CONF.set_override('notify_nova_on_port_status_changes', False) # Make sure at each test according extensions for the plugin is loaded - PluginAwareExtensionManager._instance = None + extensions.PluginAwareExtensionManager._instance = None # Save the attributes map in case the plugin will alter it # loading extensions # Note(salvatore-orlando): shallow copy is not good enough in @@ -92,14 +91,14 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): # Create the default configurations args = ['--config-file', base.etcdir('neutron.conf.test')] # If test_config specifies some config-file, use it, as well - for config_file in test_config.get('config_files', []): + for config_file in test_lib.test_config.get('config_files', []): args.extend(['--config-file', config_file]) self.config_parse(args=args) # Update the plugin self.setup_coreplugin(plugin) cfg.CONF.set_override( 'service_plugins', - [test_config.get(key, default) + [test_lib.test_config.get(key, default) for key, default in (service_plugins or {}).iteritems()] ) @@ -108,13 +107,13 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): cfg.CONF.set_override('max_subnet_host_routes', 2) cfg.CONF.set_override('allow_pagination', True) cfg.CONF.set_override('allow_sorting', True) - self.api = APIRouter() + self.api = router.APIRouter() # Set the defualt status self.net_create_status = 'ACTIVE' self.port_create_status = 'ACTIVE' def _is_native_bulk_supported(): - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() native_bulk_attr_name = ("_%s__native_bulk_support" % plugin_obj.__class__.__name__) return getattr(plugin_obj, native_bulk_attr_name, False) @@ -124,9 +123,9 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): def _is_native_pagination_support(): native_pagination_attr_name = ( "_%s__native_pagination_support" % - NeutronManager.get_plugin().__class__.__name__) + manager.NeutronManager.get_plugin().__class__.__name__) return (cfg.CONF.allow_pagination and - getattr(NeutronManager.get_plugin(), + getattr(manager.NeutronManager.get_plugin(), native_pagination_attr_name, False)) self._skip_native_pagination = not _is_native_pagination_support() @@ -134,9 +133,9 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): def _is_native_sorting_support(): native_sorting_attr_name = ( "_%s__native_sorting_support" % - NeutronManager.get_plugin().__class__.__name__) + manager.NeutronManager.get_plugin().__class__.__name__) return (cfg.CONF.allow_sorting and - getattr(NeutronManager.get_plugin(), + getattr(manager.NeutronManager.get_plugin(), native_sorting_attr_name, False)) self._skip_native_sorting = not _is_native_sorting_support() @@ -309,7 +308,7 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): data['subnet'][arg] = kwargs[arg] if ('gateway_ip' in kwargs and - kwargs['gateway_ip'] is not ATTR_NOT_SPECIFIED): + kwargs['gateway_ip'] is not attributes.ATTR_NOT_SPECIFIED): data['subnet']['gateway_ip'] = kwargs['gateway_ip'] subnet_req = self.new_create_request('subnets', data, fmt) @@ -525,7 +524,7 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase): @contextlib.contextmanager def subnet(self, network=None, - gateway_ip=ATTR_NOT_SPECIFIED, + gateway_ip=attributes.ATTR_NOT_SPECIFIED, cidr='10.0.0.0/24', fmt=None, ip_version=4, @@ -888,8 +887,8 @@ class TestPortsV2(NeutronDbPluginV2TestCase): with mock.patch('__builtin__.hasattr', new=fakehasattr): - orig = NeutronManager.get_plugin().create_port - with mock.patch.object(NeutronManager.get_plugin(), + orig = manager.NeutronManager.get_plugin().create_port + with mock.patch.object(manager.NeutronManager.get_plugin(), 'create_port') as patched_plugin: def side_effect(*args, **kwargs): @@ -912,8 +911,8 @@ class TestPortsV2(NeutronDbPluginV2TestCase): self.skipTest("Plugin does not support native bulk port create") ctx = context.get_admin_context() with self.network() as net: - orig = NeutronManager._instance.plugin.create_port - with mock.patch.object(NeutronManager._instance.plugin, + orig = manager.NeutronManager._instance.plugin.create_port + with mock.patch.object(manager.NeutronManager._instance.plugin, 'create_port') as patched_plugin: def side_effect(*args, **kwargs): @@ -1350,7 +1349,7 @@ fixed_ips=ip_address%%3D%s&fixed_ips=ip_address%%3D%s&fixed_ips=subnet_id%%3D%s net_id=net_id, cidr='10.0.0.225/28', ip_version=4, - gateway_ip=ATTR_NOT_SPECIFIED) + gateway_ip=attributes.ATTR_NOT_SPECIFIED) self.assertEqual(res.status_int, webob.exc.HTTPClientError.code) def test_requested_subnet_id_v4_and_v6(self): @@ -1358,12 +1357,13 @@ fixed_ips=ip_address%%3D%s&fixed_ips=ip_address%%3D%s&fixed_ips=subnet_id%%3D%s # Get a IPv4 and IPv6 address tenant_id = subnet['subnet']['tenant_id'] net_id = subnet['subnet']['network_id'] - res = self._create_subnet(self.fmt, - tenant_id=tenant_id, - net_id=net_id, - cidr='2607:f0d0:1002:51::/124', - ip_version=6, - gateway_ip=ATTR_NOT_SPECIFIED) + res = self._create_subnet( + self.fmt, + tenant_id=tenant_id, + net_id=net_id, + cidr='2607:f0d0:1002:51::/124', + ip_version=6, + gateway_ip=attributes.ATTR_NOT_SPECIFIED) subnet2 = self.deserialize(self.fmt, res) kwargs = {"fixed_ips": [{'subnet_id': subnet['subnet']['id']}, @@ -1639,7 +1639,7 @@ fixed_ips=ip_address%%3D%s&fixed_ips=ip_address%%3D%s&fixed_ips=subnet_id%%3D%s webob.exc.HTTPClientError.code) def test_delete_ports_by_device_id(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() ctx = context.get_admin_context() with self.subnet() as subnet: with contextlib.nested( @@ -1685,7 +1685,7 @@ fixed_ips=ip_address%%3D%s&fixed_ips=ip_address%%3D%s&fixed_ips=subnet_id%%3D%s expected_code=webob.exc.HTTPOk.code) def test_delete_ports_by_device_id_second_call_failure(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() self._test_delete_ports_by_device_id_second_call_failure(plugin) def _test_delete_ports_ignores_port_not_found(self, plugin): @@ -1710,7 +1710,7 @@ fixed_ips=ip_address%%3D%s&fixed_ips=ip_address%%3D%s&fixed_ips=subnet_id%%3D%s "deleting some of the same ports.") def test_delete_ports_ignores_port_not_found(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() self._test_delete_ports_ignores_port_not_found(plugin) @@ -1798,7 +1798,7 @@ class TestNetworksV2(NeutronDbPluginV2TestCase): # must query db to see whether subnet's shared attribute # has been updated or not ctx = context.Context('', '', is_admin=True) - subnet_db = NeutronManager.get_plugin()._get_subnet( + subnet_db = manager.NeutronManager.get_plugin()._get_subnet( ctx, subnet['subnet']['id']) self.assertEqual(subnet_db['shared'], True) @@ -1965,11 +1965,11 @@ class TestNetworksV2(NeutronDbPluginV2TestCase): return False return real_has_attr(item, attr) - orig = NeutronManager.get_plugin().create_network + orig = manager.NeutronManager.get_plugin().create_network #ensures the API choose the emulation code path with mock.patch('__builtin__.hasattr', new=fakehasattr): - with mock.patch.object(NeutronManager.get_plugin(), + with mock.patch.object(manager.NeutronManager.get_plugin(), 'create_network') as patched_plugin: def side_effect(*args, **kwargs): @@ -1986,8 +1986,8 @@ class TestNetworksV2(NeutronDbPluginV2TestCase): def test_create_networks_bulk_native_plugin_failure(self): if self._skip_native_bulk: self.skipTest("Plugin does not support native bulk network create") - orig = NeutronManager.get_plugin().create_network - with mock.patch.object(NeutronManager.get_plugin(), + orig = manager.NeutronManager.get_plugin().create_network + with mock.patch.object(manager.NeutronManager.get_plugin(), 'create_network') as patched_plugin: def side_effect(*args, **kwargs): @@ -2384,8 +2384,8 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): with mock.patch('__builtin__.hasattr', new=fakehasattr): - orig = NeutronManager.get_plugin().create_subnet - with mock.patch.object(NeutronManager.get_plugin(), + orig = manager.NeutronManager.get_plugin().create_subnet + with mock.patch.object(manager.NeutronManager.get_plugin(), 'create_subnet') as patched_plugin: def side_effect(*args, **kwargs): @@ -2405,8 +2405,8 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): def test_create_subnets_bulk_native_plugin_failure(self): if self._skip_native_bulk: self.skipTest("Plugin does not support native bulk subnet create") - orig = NeutronManager._instance.plugin.create_subnet - with mock.patch.object(NeutronManager._instance.plugin, + orig = manager.NeutronManager._instance.plugin.create_subnet + with mock.patch.object(manager.NeutronManager._instance.plugin, 'create_subnet') as patched_plugin: def side_effect(*args, **kwargs): return self._fail_second_call(patched_plugin, orig, @@ -3728,7 +3728,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): 'dns_nameservers': ['8.8.8.8'], 'host_routes': [{'destination': '135.207.0.0/16', 'nexthop': '1.2.3.4'}]} - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() e = self.assertRaises(exception, plugin._validate_subnet, context.get_admin_context( diff --git a/neutron/tests/unit/test_debug_commands.py b/neutron/tests/unit/test_debug_commands.py index 7827a095bd2..85f77735601 100644 --- a/neutron/tests/unit/test_debug_commands.py +++ b/neutron/tests/unit/test_debug_commands.py @@ -23,9 +23,7 @@ from oslo.config import cfg from neutron.agent.common import config from neutron.agent.linux import interface from neutron.debug import commands -from neutron.debug.debug_agent import DEVICE_OWNER_COMPUTE_PROBE -from neutron.debug.debug_agent import DEVICE_OWNER_NETWORK_PROBE -from neutron.debug.debug_agent import NeutronDebugAgent +from neutron.debug import debug_agent from neutron.tests import base @@ -38,7 +36,7 @@ class TestDebugCommands(base.BaseTestCase): def setUp(self): super(TestDebugCommands, self).setUp() cfg.CONF.register_opts(interface.OPTS) - cfg.CONF.register_opts(NeutronDebugAgent.OPTS) + cfg.CONF.register_opts(debug_agent.NeutronDebugAgent.OPTS) cfg.CONF(args=[], project='neutron') config.register_interface_driver_opts_helper(cfg.CONF) config.register_use_namespaces_opts_helper(cfg.CONF) @@ -102,14 +100,14 @@ class TestDebugCommands(base.BaseTestCase): self.client = client_inst mock_std = mock.Mock() self.app = MyApp(mock_std) - self.app.debug_agent = NeutronDebugAgent(cfg.CONF, - client_inst, - mock_driver) + self.app.debug_agent = debug_agent.NeutronDebugAgent(cfg.CONF, + client_inst, + mock_driver) def _test_create_probe(self, device_owner): cmd = commands.CreateProbe(self.app, None) cmd_parser = cmd.get_parser('create_probe') - if device_owner == DEVICE_OWNER_COMPUTE_PROBE: + if device_owner == debug_agent.DEVICE_OWNER_COMPUTE_PROBE: args = ['fake_net', '--device-owner', 'compute'] else: args = ['fake_net'] @@ -141,10 +139,10 @@ class TestDebugCommands(base.BaseTestCase): )]) def test_create_network_probe(self): - self._test_create_probe(DEVICE_OWNER_NETWORK_PROBE) + self._test_create_probe(debug_agent.DEVICE_OWNER_NETWORK_PROBE) def test_create_nova_probe(self): - self._test_create_probe(DEVICE_OWNER_COMPUTE_PROBE) + self._test_create_probe(debug_agent.DEVICE_OWNER_COMPUTE_PROBE) def _test_create_probe_external(self, device_owner): fake_network = {'network': {'id': 'fake_net', @@ -154,7 +152,7 @@ class TestDebugCommands(base.BaseTestCase): self.client.show_network.return_value = fake_network cmd = commands.CreateProbe(self.app, None) cmd_parser = cmd.get_parser('create_probe') - if device_owner == DEVICE_OWNER_COMPUTE_PROBE: + if device_owner == debug_agent.DEVICE_OWNER_COMPUTE_PROBE: args = ['fake_net', '--device-owner', 'compute'] else: args = ['fake_net'] @@ -186,10 +184,12 @@ class TestDebugCommands(base.BaseTestCase): )]) def test_create_network_probe_external(self): - self._test_create_probe_external(DEVICE_OWNER_NETWORK_PROBE) + self._test_create_probe_external( + debug_agent.DEVICE_OWNER_NETWORK_PROBE) def test_create_nova_probe_external(self): - self._test_create_probe_external(DEVICE_OWNER_COMPUTE_PROBE) + self._test_create_probe_external( + debug_agent.DEVICE_OWNER_COMPUTE_PROBE) def test_delete_probe(self): cmd = commands.DeleteProbe(self.app, None) @@ -250,8 +250,9 @@ class TestDebugCommands(base.BaseTestCase): parsed_args = cmd_parser.parse_args(args) cmd.run(parsed_args) self.client.assert_has_calls( - [mock.call.list_ports(device_owner=[DEVICE_OWNER_NETWORK_PROBE, - DEVICE_OWNER_COMPUTE_PROBE])]) + [mock.call.list_ports( + device_owner=[debug_agent.DEVICE_OWNER_NETWORK_PROBE, + debug_agent.DEVICE_OWNER_COMPUTE_PROBE])]) def test_exec_command(self): cmd = commands.ExecProbe(self.app, None) @@ -282,9 +283,10 @@ class TestDebugCommands(base.BaseTestCase): cmd.run(parsed_args) namespace = 'qprobe-fake_port' self.client.assert_has_calls( - [mock.call.list_ports(device_id=socket.gethostname(), - device_owner=[DEVICE_OWNER_NETWORK_PROBE, - DEVICE_OWNER_COMPUTE_PROBE]), + [mock.call.list_ports( + device_id=socket.gethostname(), + device_owner=[debug_agent.DEVICE_OWNER_NETWORK_PROBE, + debug_agent.DEVICE_OWNER_COMPUTE_PROBE]), mock.call.show_port('fake_port'), mock.call.show_network('fake_net'), mock.call.show_subnet('fake_subnet'), @@ -312,7 +314,7 @@ class TestDebugCommands(base.BaseTestCase): cmd.run(parsed_args) ns.assert_has_calls([mock.call.execute(mock.ANY)]) fake_port = {'port': - {'device_owner': DEVICE_OWNER_NETWORK_PROBE, + {'device_owner': debug_agent.DEVICE_OWNER_NETWORK_PROBE, 'admin_state_up': True, 'network_id': 'fake_net', 'tenant_id': 'fake_tenant', @@ -340,7 +342,7 @@ class TestDebugCommands(base.BaseTestCase): expected = [mock.call.list_ports(), mock.call.list_ports( network_id='fake_net', - device_owner=DEVICE_OWNER_NETWORK_PROBE, + device_owner=debug_agent.DEVICE_OWNER_NETWORK_PROBE, device_id=socket.gethostname()), mock.call.show_subnet('fake_subnet'), mock.call.show_port('fake_port')] diff --git a/neutron/tests/unit/test_dhcp_agent.py b/neutron/tests/unit/test_dhcp_agent.py index dd5f1ce127e..5978874cf32 100644 --- a/neutron/tests/unit/test_dhcp_agent.py +++ b/neutron/tests/unit/test_dhcp_agent.py @@ -26,7 +26,6 @@ import testtools from neutron.agent.common import config from neutron.agent import dhcp_agent -from neutron.agent.dhcp_agent import DhcpAgentWithStateReport from neutron.agent.linux import dhcp from neutron.agent.linux import interface from neutron.common import constants as const @@ -141,10 +140,10 @@ class TestDhcpAgent(base.BaseTestCase): state_rpc_str = 'neutron.agent.rpc.PluginReportStateAPI' # sync_state is needed for this test cfg.CONF.set_override('report_interval', 1, 'AGENT') - with mock.patch.object(DhcpAgentWithStateReport, + with mock.patch.object(dhcp_agent.DhcpAgentWithStateReport, 'sync_state', autospec=True) as mock_sync_state: - with mock.patch.object(DhcpAgentWithStateReport, + with mock.patch.object(dhcp_agent.DhcpAgentWithStateReport, 'periodic_resync', autospec=True) as mock_periodic_resync: with mock.patch(state_rpc_str) as state_rpc: @@ -159,7 +158,8 @@ class TestDhcpAgent(base.BaseTestCase): cfg.CONF.register_opts(dhcp.OPTS) cfg.CONF.register_opts(interface.OPTS) cfg.CONF(project='neutron') - agent_mgr = DhcpAgentWithStateReport('testhost') + agent_mgr = dhcp_agent.DhcpAgentWithStateReport( + 'testhost') eventlet.greenthread.sleep(1) agent_mgr.after_start() mock_sync_state.assert_called_once_with(agent_mgr) diff --git a/neutron/tests/unit/test_extension_allowedaddresspairs.py b/neutron/tests/unit/test_extension_allowedaddresspairs.py index 826768f61de..25de95995c7 100644 --- a/neutron/tests/unit/test_extension_allowedaddresspairs.py +++ b/neutron/tests/unit/test_extension_allowedaddresspairs.py @@ -20,7 +20,7 @@ from neutron.db import db_base_plugin_v2 from neutron.db import portsecurity_db from neutron.extensions import allowedaddresspairs as addr_pair from neutron.extensions import portsecurity as psec -from neutron.manager import NeutronManager +from neutron import manager from neutron.tests.unit import test_db_plugin DB_PLUGIN_KLASS = ('neutron.tests.unit.test_extension_allowedaddresspairs.' @@ -32,7 +32,7 @@ class AllowedAddressPairTestCase(test_db_plugin.NeutronDbPluginV2TestCase): super(AllowedAddressPairTestCase, self).setUp(plugin) # Check if a plugin supports security groups - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() self._skip_port_security = ('port-security' not in plugin_obj.supported_extension_aliases) @@ -266,7 +266,7 @@ class TestAllowedAddressPairs(AllowedAddressPairDBTestCase): update_port = {'port': {psec.PORTSECURITY: False}} # If plugin implements security groups we also need to remove # the security group on port. - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() if 'security-groups' in plugin_obj.supported_extension_aliases: update_port['port']['security_groups'] = [] req = self.new_update_request('ports', update_port, diff --git a/neutron/tests/unit/test_extension_ext_net.py b/neutron/tests/unit/test_extension_ext_net.py index 1a8db1d2f0a..8633e245a51 100644 --- a/neutron/tests/unit/test_extension_ext_net.py +++ b/neutron/tests/unit/test_extension_ext_net.py @@ -25,7 +25,7 @@ from webob import exc from neutron import context from neutron.db import models_v2 from neutron.extensions import external_net as external_net -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import log as logging from neutron.openstack.common import uuidutils from neutron.tests.unit import test_api_v2 @@ -105,20 +105,20 @@ class ExtNetDBTestCase(test_db_plugin.NeutronDbPluginV2TestCase): query_params='router:external=False') def test_get_network_succeeds_without_filter(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() ctx = context.Context(None, None, is_admin=True) result = plugin.get_networks(ctx, filters=None) self.assertEqual(result, []) def test_network_filter_hook_admin_context(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() ctx = context.Context(None, None, is_admin=True) model = models_v2.Network conditions = plugin._network_filter_hook(ctx, model, []) self.assertEqual(conditions, []) def test_network_filter_hook_nonadmin_context(self): - plugin = NeutronManager.get_plugin() + plugin = manager.NeutronManager.get_plugin() ctx = context.Context('edinson', 'cavani') model = models_v2.Network txt = "externalnetworks.network_id IS NOT NULL" @@ -160,7 +160,7 @@ class ExtNetDBTestCase(test_db_plugin.NeutronDbPluginV2TestCase): True) def test_delete_network_check_disassociated_floatingips(self): - with mock.patch.object(NeutronManager, + with mock.patch.object(manager.NeutronManager, 'get_service_plugins') as srv_plugins: l3_mock = mock.Mock() srv_plugins.return_value = {'L3_ROUTER_NAT': l3_mock} diff --git a/neutron/tests/unit/test_extension_pnet.py b/neutron/tests/unit/test_extension_pnet.py index d75cbfc2c81..fa88bbf33cd 100644 --- a/neutron/tests/unit/test_extension_pnet.py +++ b/neutron/tests/unit/test_extension_pnet.py @@ -28,7 +28,7 @@ from neutron.api.v2 import attributes from neutron.api.v2 import router from neutron import context from neutron.extensions import providernet as pnet -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import uuidutils from neutron import quota from neutron.tests.unit import test_api_v2 @@ -77,7 +77,7 @@ class ProvidernetExtensionTestCase(testlib_api.WebTestCase): instance = self.plugin.return_value instance.get_networks_count.return_value = 1 # Instantiate mock plugin and enable the 'provider' extension - NeutronManager.get_plugin().supported_extension_aliases = ( + manager.NeutronManager.get_plugin().supported_extension_aliases = ( ["provider"]) ext_mgr = ProviderExtensionManager() self.ext_mdw = test_extensions.setup_extensions_middleware(ext_mgr) diff --git a/neutron/tests/unit/test_extension_portsecurity.py b/neutron/tests/unit/test_extension_portsecurity.py index 29c4e850181..b40166f7155 100644 --- a/neutron/tests/unit/test_extension_portsecurity.py +++ b/neutron/tests/unit/test_extension_portsecurity.py @@ -21,7 +21,7 @@ from neutron.db import portsecurity_db from neutron.db import securitygroups_db from neutron.extensions import portsecurity as psec from neutron.extensions import securitygroup as ext_sg -from neutron.manager import NeutronManager +from neutron import manager from neutron.tests.unit import test_db_plugin from neutron.tests.unit import test_extension_security_group @@ -39,7 +39,7 @@ class PortSecurityTestCase( super(PortSecurityTestCase, self).setUp(plugin=plugin, ext_mgr=ext_mgr) # Check if a plugin supports security groups - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() self._skip_security_group = ('security-group' not in plugin_obj.supported_extension_aliases) diff --git a/neutron/tests/unit/test_iptables_firewall.py b/neutron/tests/unit/test_iptables_firewall.py index ff2b8106fe3..18c4fe4db36 100644 --- a/neutron/tests/unit/test_iptables_firewall.py +++ b/neutron/tests/unit/test_iptables_firewall.py @@ -18,11 +18,10 @@ import copy import mock -from mock import call from oslo.config import cfg from neutron.agent.common import config as a_cfg -from neutron.agent.linux.iptables_firewall import IptablesFirewallDriver +from neutron.agent.linux import iptables_firewall from neutron.common import constants from neutron.tests import base from neutron.tests.unit import test_api_v2 @@ -52,7 +51,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): self.iptables_inst.ipv6 = {'filter': self.v6filter_inst} iptables_cls.return_value = self.iptables_inst - self.firewall = IptablesFirewallDriver() + self.firewall = iptables_firewall.IptablesFirewallDriver() self.firewall.iptables = self.iptables_inst def _fake_port(self): @@ -64,64 +63,64 @@ class IptablesFirewallTestCase(base.BaseTestCase): def test_prepare_port_filter_with_no_sg(self): port = self._fake_port() self.firewall.prepare_port_filter(port) - calls = [call.add_chain('sg-fallback'), - call.add_rule('sg-fallback', '-j DROP'), - call.ensure_remove_chain('sg-chain'), - call.add_chain('sg-chain'), - call.add_chain('ifake_dev'), - call.add_rule('FORWARD', - '-m physdev --physdev-out tapfake_dev ' - '--physdev-is-bridged ' - '-j $sg-chain'), - call.add_rule('sg-chain', - '-m physdev --physdev-out tapfake_dev ' - '--physdev-is-bridged ' - '-j $ifake_dev'), - call.add_rule( + calls = [mock.call.add_chain('sg-fallback'), + mock.call.add_rule('sg-fallback', '-j DROP'), + mock.call.ensure_remove_chain('sg-chain'), + mock.call.add_chain('sg-chain'), + mock.call.add_chain('ifake_dev'), + mock.call.add_rule('FORWARD', + '-m physdev --physdev-out tapfake_dev ' + '--physdev-is-bridged ' + '-j $sg-chain'), + mock.call.add_rule('sg-chain', + '-m physdev --physdev-out tapfake_dev ' + '--physdev-is-bridged ' + '-j $ifake_dev'), + mock.call.add_rule( 'ifake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ifake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ifake_dev', '-j $sg-fallback'), - call.add_chain('ofake_dev'), - call.add_rule('FORWARD', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $sg-chain'), - call.add_rule('sg-chain', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $ofake_dev'), - call.add_rule('INPUT', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $ofake_dev'), - call.add_chain('sfake_dev'), - call.add_rule( + mock.call.add_rule('ifake_dev', '-j $sg-fallback'), + mock.call.add_chain('ofake_dev'), + mock.call.add_rule('FORWARD', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $sg-chain'), + mock.call.add_rule('sg-chain', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $ofake_dev'), + mock.call.add_rule('INPUT', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $ofake_dev'), + mock.call.add_chain('sfake_dev'), + mock.call.add_rule( 'sfake_dev', '-m mac --mac-source ff:ff:ff:ff:ff:ff ' '-s 10.0.0.1 -j RETURN'), - call.add_rule('sfake_dev', '-j DROP'), - call.add_rule( + mock.call.add_rule('sfake_dev', '-j DROP'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 68 --dport 67 -j RETURN'), - call.add_rule('ofake_dev', '-j $sfake_dev'), - call.add_rule( + mock.call.add_rule('ofake_dev', '-j $sfake_dev'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 67 --dport 68 -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ofake_dev', '-j $sg-fallback'), - call.add_rule('sg-chain', '-j ACCEPT')] + mock.call.add_rule('ofake_dev', '-j $sg-fallback'), + mock.call.add_rule('sg-chain', '-j ACCEPT')] self.v4filter_inst.assert_has_calls(calls) def test_filter_ipv4_ingress(self): rule = {'ethertype': 'IPv4', 'direction': 'ingress'} - ingress = call.add_rule('ifake_dev', '-j RETURN') + ingress = mock.call.add_rule('ifake_dev', '-j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -130,7 +129,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv4', 'direction': 'ingress', 'source_ip_prefix': prefix} - ingress = call.add_rule('ifake_dev', '-s %s -j RETURN' % prefix) + ingress = mock.call.add_rule('ifake_dev', '-s %s -j RETURN' % prefix) egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -138,7 +137,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv4', 'direction': 'ingress', 'protocol': 'tcp'} - ingress = call.add_rule('ifake_dev', '-p tcp -m tcp -j RETURN') + ingress = mock.call.add_rule('ifake_dev', '-p tcp -m tcp -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -148,8 +147,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'ingress', 'protocol': 'tcp', 'source_ip_prefix': prefix} - ingress = call.add_rule('ifake_dev', - '-s %s -p tcp -m tcp -j RETURN' % prefix) + ingress = mock.call.add_rule('ifake_dev', + '-s %s -p tcp -m tcp -j RETURN' % prefix) egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -157,7 +156,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv4', 'direction': 'ingress', 'protocol': 'icmp'} - ingress = call.add_rule('ifake_dev', '-p icmp -j RETURN') + ingress = mock.call.add_rule('ifake_dev', '-p icmp -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -167,7 +166,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'ingress', 'protocol': 'icmp', 'source_ip_prefix': prefix} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-s %s -p icmp -j RETURN' % prefix) egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -178,8 +177,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'tcp', 'port_range_min': 10, 'port_range_max': 10} - ingress = call.add_rule('ifake_dev', - '-p tcp -m tcp --dport 10 -j RETURN') + ingress = mock.call.add_rule('ifake_dev', + '-p tcp -m tcp --dport 10 -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -189,7 +188,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'tcp', 'port_range_min': 10, 'port_range_max': 100} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-p tcp -m tcp -m multiport --dports 10:100 -j RETURN') egress = None @@ -203,7 +202,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'port_range_min': 10, 'port_range_max': 100, 'source_ip_prefix': prefix} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-s %s -p tcp -m tcp -m multiport --dports 10:100 ' '-j RETURN' % prefix) @@ -214,7 +213,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv4', 'direction': 'ingress', 'protocol': 'udp'} - ingress = call.add_rule('ifake_dev', '-p udp -m udp -j RETURN') + ingress = mock.call.add_rule('ifake_dev', '-p udp -m udp -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -224,8 +223,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'ingress', 'protocol': 'udp', 'source_ip_prefix': prefix} - ingress = call.add_rule('ifake_dev', - '-s %s -p udp -m udp -j RETURN' % prefix) + ingress = mock.call.add_rule('ifake_dev', + '-s %s -p udp -m udp -j RETURN' % prefix) egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -235,8 +234,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'udp', 'port_range_min': 10, 'port_range_max': 10} - ingress = call.add_rule('ifake_dev', - '-p udp -m udp --dport 10 -j RETURN') + ingress = mock.call.add_rule('ifake_dev', + '-p udp -m udp --dport 10 -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -246,7 +245,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'udp', 'port_range_min': 10, 'port_range_max': 100} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-p udp -m udp -m multiport --dports 10:100 -j RETURN') egress = None @@ -260,7 +259,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'port_range_min': 10, 'port_range_max': 100, 'source_ip_prefix': prefix} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-s %s -p udp -m udp -m multiport --dports 10:100 ' '-j RETURN' % prefix) @@ -270,7 +269,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): def test_filter_ipv4_egress(self): rule = {'ethertype': 'IPv4', 'direction': 'egress'} - egress = call.add_rule('ofake_dev', '-j RETURN') + egress = mock.call.add_rule('ofake_dev', '-j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -279,7 +278,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv4', 'direction': 'egress', 'source_ip_prefix': prefix} - egress = call.add_rule('ofake_dev', '-s %s -j RETURN' % prefix) + egress = mock.call.add_rule('ofake_dev', '-s %s -j RETURN' % prefix) ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -287,7 +286,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv4', 'direction': 'egress', 'protocol': 'tcp'} - egress = call.add_rule('ofake_dev', '-p tcp -m tcp -j RETURN') + egress = mock.call.add_rule('ofake_dev', '-p tcp -m tcp -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -297,8 +296,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'egress', 'protocol': 'tcp', 'source_ip_prefix': prefix} - egress = call.add_rule('ofake_dev', - '-s %s -p tcp -m tcp -j RETURN' % prefix) + egress = mock.call.add_rule('ofake_dev', + '-s %s -p tcp -m tcp -j RETURN' % prefix) ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -306,7 +305,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv4', 'direction': 'egress', 'protocol': 'icmp'} - egress = call.add_rule('ofake_dev', '-p icmp -j RETURN') + egress = mock.call.add_rule('ofake_dev', '-p icmp -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -316,7 +315,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'egress', 'protocol': 'icmp', 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p icmp -j RETURN' % prefix) ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -328,7 +327,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'icmp', 'source_port_range_min': 8, 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p icmp --icmp-type 8 -j RETURN' % prefix) ingress = None @@ -341,7 +340,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'icmp', 'source_port_range_min': 'echo-request', 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p icmp --icmp-type echo-request -j RETURN' % prefix) ingress = None @@ -355,7 +354,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'source_port_range_min': 8, 'source_port_range_max': 0, 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p icmp --icmp-type 8/0 -j RETURN' % prefix) ingress = None @@ -367,8 +366,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'tcp', 'port_range_min': 10, 'port_range_max': 10} - egress = call.add_rule('ofake_dev', - '-p tcp -m tcp --dport 10 -j RETURN') + egress = mock.call.add_rule('ofake_dev', + '-p tcp -m tcp --dport 10 -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -378,7 +377,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'tcp', 'port_range_min': 10, 'port_range_max': 100} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-p tcp -m tcp -m multiport --dports 10:100 -j RETURN') ingress = None @@ -392,7 +391,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'port_range_min': 10, 'port_range_max': 100, 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p tcp -m tcp -m multiport --dports 10:100 ' '-j RETURN' % prefix) @@ -403,7 +402,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv4', 'direction': 'egress', 'protocol': 'udp'} - egress = call.add_rule('ofake_dev', '-p udp -m udp -j RETURN') + egress = mock.call.add_rule('ofake_dev', '-p udp -m udp -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -413,8 +412,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'egress', 'protocol': 'udp', 'source_ip_prefix': prefix} - egress = call.add_rule('ofake_dev', - '-s %s -p udp -m udp -j RETURN' % prefix) + egress = mock.call.add_rule('ofake_dev', + '-s %s -p udp -m udp -j RETURN' % prefix) ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -424,8 +423,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'udp', 'port_range_min': 10, 'port_range_max': 10} - egress = call.add_rule('ofake_dev', - '-p udp -m udp --dport 10 -j RETURN') + egress = mock.call.add_rule('ofake_dev', + '-p udp -m udp --dport 10 -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -435,7 +434,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'udp', 'port_range_min': 10, 'port_range_max': 100} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-p udp -m udp -m multiport --dports 10:100 -j RETURN') ingress = None @@ -449,7 +448,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'port_range_min': 10, 'port_range_max': 100, 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p udp -m udp -m multiport --dports 10:100 ' '-j RETURN' % prefix) @@ -459,7 +458,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): def test_filter_ipv6_ingress(self): rule = {'ethertype': 'IPv6', 'direction': 'ingress'} - ingress = call.add_rule('ifake_dev', '-j RETURN') + ingress = mock.call.add_rule('ifake_dev', '-j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -468,7 +467,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv6', 'direction': 'ingress', 'source_ip_prefix': prefix} - ingress = call.add_rule('ifake_dev', '-s %s -j RETURN' % prefix) + ingress = mock.call.add_rule('ifake_dev', '-s %s -j RETURN' % prefix) egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -476,7 +475,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv6', 'direction': 'ingress', 'protocol': 'tcp'} - ingress = call.add_rule('ifake_dev', '-p tcp -m tcp -j RETURN') + ingress = mock.call.add_rule('ifake_dev', '-p tcp -m tcp -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -486,8 +485,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'ingress', 'protocol': 'tcp', 'source_ip_prefix': prefix} - ingress = call.add_rule('ifake_dev', - '-s %s -p tcp -m tcp -j RETURN' % prefix) + ingress = mock.call.add_rule('ifake_dev', + '-s %s -p tcp -m tcp -j RETURN' % prefix) egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -497,8 +496,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'tcp', 'port_range_min': 10, 'port_range_max': 10} - ingress = call.add_rule('ifake_dev', - '-p tcp -m tcp --dport 10 -j RETURN') + ingress = mock.call.add_rule('ifake_dev', + '-p tcp -m tcp --dport 10 -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -506,7 +505,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv6', 'direction': 'ingress', 'protocol': 'icmp'} - ingress = call.add_rule('ifake_dev', '-p icmpv6 -j RETURN') + ingress = mock.call.add_rule('ifake_dev', '-p icmpv6 -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -516,7 +515,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'ingress', 'protocol': 'icmp', 'source_ip_prefix': prefix} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-s %s -p icmpv6 -j RETURN' % prefix) egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -527,7 +526,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'tcp', 'port_range_min': 10, 'port_range_max': 100} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-p tcp -m tcp -m multiport --dports 10:100 -j RETURN') egress = None @@ -541,7 +540,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'port_range_min': 10, 'port_range_max': 100, 'source_ip_prefix': prefix} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-s %s -p tcp -m tcp -m multiport --dports 10:100 ' '-j RETURN' % prefix) @@ -552,7 +551,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv6', 'direction': 'ingress', 'protocol': 'udp'} - ingress = call.add_rule('ifake_dev', '-p udp -m udp -j RETURN') + ingress = mock.call.add_rule('ifake_dev', '-p udp -m udp -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -562,8 +561,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'ingress', 'protocol': 'udp', 'source_ip_prefix': prefix} - ingress = call.add_rule('ifake_dev', - '-s %s -p udp -m udp -j RETURN' % prefix) + ingress = mock.call.add_rule('ifake_dev', + '-s %s -p udp -m udp -j RETURN' % prefix) egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -573,8 +572,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'udp', 'port_range_min': 10, 'port_range_max': 10} - ingress = call.add_rule('ifake_dev', - '-p udp -m udp --dport 10 -j RETURN') + ingress = mock.call.add_rule('ifake_dev', + '-p udp -m udp --dport 10 -j RETURN') egress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -584,7 +583,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'udp', 'port_range_min': 10, 'port_range_max': 100} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-p udp -m udp -m multiport --dports 10:100 -j RETURN') egress = None @@ -598,7 +597,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'port_range_min': 10, 'port_range_max': 100, 'source_ip_prefix': prefix} - ingress = call.add_rule( + ingress = mock.call.add_rule( 'ifake_dev', '-s %s -p udp -m udp -m multiport --dports 10:100 ' '-j RETURN' % prefix) @@ -608,7 +607,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): def test_filter_ipv6_egress(self): rule = {'ethertype': 'IPv6', 'direction': 'egress'} - egress = call.add_rule('ofake_dev', '-j RETURN') + egress = mock.call.add_rule('ofake_dev', '-j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -617,7 +616,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv6', 'direction': 'egress', 'source_ip_prefix': prefix} - egress = call.add_rule('ofake_dev', '-s %s -j RETURN' % prefix) + egress = mock.call.add_rule('ofake_dev', '-s %s -j RETURN' % prefix) ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -625,7 +624,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv6', 'direction': 'egress', 'protocol': 'tcp'} - egress = call.add_rule('ofake_dev', '-p tcp -m tcp -j RETURN') + egress = mock.call.add_rule('ofake_dev', '-p tcp -m tcp -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -635,8 +634,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'egress', 'protocol': 'tcp', 'source_ip_prefix': prefix} - egress = call.add_rule('ofake_dev', - '-s %s -p tcp -m tcp -j RETURN' % prefix) + egress = mock.call.add_rule('ofake_dev', + '-s %s -p tcp -m tcp -j RETURN' % prefix) ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -644,7 +643,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv6', 'direction': 'egress', 'protocol': 'icmp'} - egress = call.add_rule('ofake_dev', '-p icmpv6 -j RETURN') + egress = mock.call.add_rule('ofake_dev', '-p icmpv6 -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -654,7 +653,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'egress', 'protocol': 'icmp', 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p icmpv6 -j RETURN' % prefix) ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -666,7 +665,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'icmp', 'source_port_range_min': 8, 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p icmpv6 --icmpv6-type 8 -j RETURN' % prefix) ingress = None @@ -679,7 +678,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'icmp', 'source_port_range_min': 'echo-request', 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p icmpv6 --icmpv6-type echo-request -j RETURN' % prefix) ingress = None @@ -693,7 +692,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'source_port_range_min': 8, 'source_port_range_max': 0, 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p icmpv6 --icmpv6-type 8/0 -j RETURN' % prefix) ingress = None @@ -705,8 +704,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'tcp', 'port_range_min': 10, 'port_range_max': 10} - egress = call.add_rule('ofake_dev', - '-p tcp -m tcp --dport 10 -j RETURN') + egress = mock.call.add_rule('ofake_dev', + '-p tcp -m tcp --dport 10 -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -716,7 +715,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'tcp', 'port_range_min': 10, 'port_range_max': 100} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-p tcp -m tcp -m multiport --dports 10:100 -j RETURN') ingress = None @@ -730,7 +729,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'port_range_min': 10, 'port_range_max': 100, 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p tcp -m tcp -m multiport --dports 10:100 ' '-j RETURN' % prefix) @@ -741,7 +740,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): rule = {'ethertype': 'IPv6', 'direction': 'egress', 'protocol': 'udp'} - egress = call.add_rule('ofake_dev', '-p udp -m udp -j RETURN') + egress = mock.call.add_rule('ofake_dev', '-p udp -m udp -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -751,8 +750,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'direction': 'egress', 'protocol': 'udp', 'source_ip_prefix': prefix} - egress = call.add_rule('ofake_dev', - '-s %s -p udp -m udp -j RETURN' % prefix) + egress = mock.call.add_rule('ofake_dev', + '-s %s -p udp -m udp -j RETURN' % prefix) ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -762,8 +761,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'udp', 'port_range_min': 10, 'port_range_max': 10} - egress = call.add_rule('ofake_dev', - '-p udp -m udp --dport 10 -j RETURN') + egress = mock.call.add_rule('ofake_dev', + '-p udp -m udp --dport 10 -j RETURN') ingress = None self._test_prepare_port_filter(rule, ingress, egress) @@ -773,7 +772,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'protocol': 'udp', 'port_range_min': 10, 'port_range_max': 100} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-p udp -m udp -m multiport --dports 10:100 -j RETURN') ingress = None @@ -787,7 +786,7 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'port_range_min': 10, 'port_range_max': 100, 'source_ip_prefix': prefix} - egress = call.add_rule( + egress = mock.call.add_rule( 'ofake_dev', '-s %s -p udp -m udp -m multiport --dports 10:100 ' '-j RETURN' % prefix) @@ -802,84 +801,84 @@ class IptablesFirewallTestCase(base.BaseTestCase): ethertype = rule['ethertype'] prefix = FAKE_IP[ethertype] filter_inst = self.v4filter_inst - dhcp_rule = call.add_rule( + dhcp_rule = mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 68 --dport 67 -j RETURN') if ethertype == 'IPv6': filter_inst = self.v6filter_inst - dhcp_rule = call.add_rule('ofake_dev', '-p icmpv6 -j RETURN') + dhcp_rule = mock.call.add_rule('ofake_dev', '-p icmpv6 -j RETURN') sg = [rule] port['security_group_rules'] = sg self.firewall.prepare_port_filter(port) - calls = [call.add_chain('sg-fallback'), - call.add_rule('sg-fallback', '-j DROP'), - call.ensure_remove_chain('sg-chain'), - call.add_chain('sg-chain'), - call.add_chain('ifake_dev'), - call.add_rule('FORWARD', - '-m physdev --physdev-out tapfake_dev ' - '--physdev-is-bridged ' - '-j $sg-chain'), - call.add_rule('sg-chain', - '-m physdev --physdev-out tapfake_dev ' - '--physdev-is-bridged ' - '-j $ifake_dev'), + calls = [mock.call.add_chain('sg-fallback'), + mock.call.add_rule('sg-fallback', '-j DROP'), + mock.call.ensure_remove_chain('sg-chain'), + mock.call.add_chain('sg-chain'), + mock.call.add_chain('ifake_dev'), + mock.call.add_rule('FORWARD', + '-m physdev --physdev-out tapfake_dev ' + '--physdev-is-bridged ' + '-j $sg-chain'), + mock.call.add_rule('sg-chain', + '-m physdev --physdev-out tapfake_dev ' + '--physdev-is-bridged ' + '-j $ifake_dev'), ] if ethertype == 'IPv6': for icmp6_type in constants.ICMPV6_ALLOWED_TYPES: calls.append( - call.add_rule('ifake_dev', - '-p icmpv6 --icmpv6-type %s -j RETURN' % - icmp6_type)) - calls += [call.add_rule('ifake_dev', - '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule('ifake_dev', + '-p icmpv6 --icmpv6-type %s -j RETURN' % + icmp6_type)) + calls += [mock.call.add_rule('ifake_dev', + '-m state --state INVALID -j DROP'), + mock.call.add_rule( 'ifake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN')] if ingress_expected_call: calls.append(ingress_expected_call) - calls += [call.add_rule('ifake_dev', '-j $sg-fallback'), - call.add_chain('ofake_dev'), - call.add_rule('FORWARD', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $sg-chain'), - call.add_rule('sg-chain', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $ofake_dev'), - call.add_rule('INPUT', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $ofake_dev'), - call.add_chain('sfake_dev'), - call.add_rule( + calls += [mock.call.add_rule('ifake_dev', '-j $sg-fallback'), + mock.call.add_chain('ofake_dev'), + mock.call.add_rule('FORWARD', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $sg-chain'), + mock.call.add_rule('sg-chain', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $ofake_dev'), + mock.call.add_rule('INPUT', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $ofake_dev'), + mock.call.add_chain('sfake_dev'), + mock.call.add_rule( 'sfake_dev', '-m mac --mac-source ff:ff:ff:ff:ff:ff -s %s -j RETURN' % prefix), - call.add_rule('sfake_dev', '-j DROP'), + mock.call.add_rule('sfake_dev', '-j DROP'), dhcp_rule, - call.add_rule('ofake_dev', '-j $sfake_dev')] + mock.call.add_rule('ofake_dev', '-j $sfake_dev')] if ethertype == 'IPv4': - calls.append(call.add_rule( + calls.append(mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 67 --dport 68 -j DROP')) - calls += [call.add_rule( + calls += [mock.call.add_rule( 'ofake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN')] if egress_expected_call: calls.append(egress_expected_call) - calls += [call.add_rule('ofake_dev', '-j $sg-fallback'), - call.add_rule('sg-chain', '-j ACCEPT')] + calls += [mock.call.add_rule('ofake_dev', '-j $sg-fallback'), + mock.call.add_rule('sg-chain', '-j ACCEPT')] filter_inst.assert_has_calls(calls) @@ -894,119 +893,119 @@ class IptablesFirewallTestCase(base.BaseTestCase): self.firewall.update_port_filter({'device': 'no-exist-device'}) self.firewall.remove_port_filter(port) self.firewall.remove_port_filter({'device': 'no-exist-device'}) - calls = [call.add_chain('sg-fallback'), - call.add_rule('sg-fallback', '-j DROP'), - call.ensure_remove_chain('sg-chain'), - call.add_chain('sg-chain'), - call.add_chain('ifake_dev'), - call.add_rule( + calls = [mock.call.add_chain('sg-fallback'), + mock.call.add_rule('sg-fallback', '-j DROP'), + mock.call.ensure_remove_chain('sg-chain'), + mock.call.add_chain('sg-chain'), + mock.call.add_chain('ifake_dev'), + mock.call.add_rule( 'FORWARD', '-m physdev --physdev-out tapfake_dev ' '--physdev-is-bridged -j $sg-chain'), - call.add_rule( + mock.call.add_rule( 'sg-chain', '-m physdev --physdev-out tapfake_dev ' '--physdev-is-bridged -j $ifake_dev'), - call.add_rule( + mock.call.add_rule( 'ifake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ifake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ifake_dev', '-j RETURN'), - call.add_rule('ifake_dev', '-j $sg-fallback'), - call.add_chain('ofake_dev'), - call.add_rule( + mock.call.add_rule('ifake_dev', '-j RETURN'), + mock.call.add_rule('ifake_dev', '-j $sg-fallback'), + mock.call.add_chain('ofake_dev'), + mock.call.add_rule( 'FORWARD', '-m physdev --physdev-in tapfake_dev ' '--physdev-is-bridged -j $sg-chain'), - call.add_rule( + mock.call.add_rule( 'sg-chain', '-m physdev --physdev-in tapfake_dev ' '--physdev-is-bridged -j $ofake_dev'), - call.add_rule( + mock.call.add_rule( 'INPUT', '-m physdev --physdev-in tapfake_dev ' '--physdev-is-bridged -j $ofake_dev'), - call.add_chain('sfake_dev'), - call.add_rule( + mock.call.add_chain('sfake_dev'), + mock.call.add_rule( 'sfake_dev', '-m mac --mac-source ff:ff:ff:ff:ff:ff -s 10.0.0.1 ' '-j RETURN'), - call.add_rule('sfake_dev', '-j DROP'), - call.add_rule( + mock.call.add_rule('sfake_dev', '-j DROP'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 68 --dport 67 -j RETURN'), - call.add_rule('ofake_dev', '-j $sfake_dev'), - call.add_rule( + mock.call.add_rule('ofake_dev', '-j $sfake_dev'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 67 --dport 68 -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ofake_dev', '-j $sg-fallback'), - call.add_rule('sg-chain', '-j ACCEPT'), - call.ensure_remove_chain('ifake_dev'), - call.ensure_remove_chain('ofake_dev'), - call.ensure_remove_chain('sfake_dev'), - call.ensure_remove_chain('sg-chain'), - call.add_chain('sg-chain'), - call.add_chain('ifake_dev'), - call.add_rule( + mock.call.add_rule('ofake_dev', '-j $sg-fallback'), + mock.call.add_rule('sg-chain', '-j ACCEPT'), + mock.call.ensure_remove_chain('ifake_dev'), + mock.call.ensure_remove_chain('ofake_dev'), + mock.call.ensure_remove_chain('sfake_dev'), + mock.call.ensure_remove_chain('sg-chain'), + mock.call.add_chain('sg-chain'), + mock.call.add_chain('ifake_dev'), + mock.call.add_rule( 'FORWARD', '-m physdev --physdev-out tapfake_dev ' '--physdev-is-bridged -j $sg-chain'), - call.add_rule( + mock.call.add_rule( 'sg-chain', '-m physdev --physdev-out tapfake_dev ' '--physdev-is-bridged -j $ifake_dev'), - call.add_rule( + mock.call.add_rule( 'ifake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ifake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ifake_dev', '-j $sg-fallback'), - call.add_chain('ofake_dev'), - call.add_rule( + mock.call.add_rule('ifake_dev', '-j $sg-fallback'), + mock.call.add_chain('ofake_dev'), + mock.call.add_rule( 'FORWARD', '-m physdev --physdev-in tapfake_dev ' '--physdev-is-bridged -j $sg-chain'), - call.add_rule( + mock.call.add_rule( 'sg-chain', '-m physdev --physdev-in tapfake_dev ' '--physdev-is-bridged -j $ofake_dev'), - call.add_rule( + mock.call.add_rule( 'INPUT', '-m physdev --physdev-in tapfake_dev ' '--physdev-is-bridged -j $ofake_dev'), - call.add_chain('sfake_dev'), - call.add_rule( + mock.call.add_chain('sfake_dev'), + mock.call.add_rule( 'sfake_dev', '-m mac --mac-source ff:ff:ff:ff:ff:ff -s 10.0.0.1 ' '-j RETURN'), - call.add_rule('sfake_dev', '-j DROP'), - call.add_rule( + mock.call.add_rule('sfake_dev', '-j DROP'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 68 --dport 67 -j RETURN'), - call.add_rule('ofake_dev', '-j $sfake_dev'), - call.add_rule( + mock.call.add_rule('ofake_dev', '-j $sfake_dev'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 67 --dport 68 -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ofake_dev', '-j RETURN'), - call.add_rule('ofake_dev', '-j $sg-fallback'), - call.add_rule('sg-chain', '-j ACCEPT'), - call.ensure_remove_chain('ifake_dev'), - call.ensure_remove_chain('ofake_dev'), - call.ensure_remove_chain('sfake_dev'), - call.ensure_remove_chain('sg-chain'), - call.add_chain('sg-chain')] + mock.call.add_rule('ofake_dev', '-j RETURN'), + mock.call.add_rule('ofake_dev', '-j $sg-fallback'), + mock.call.add_rule('sg-chain', '-j ACCEPT'), + mock.call.ensure_remove_chain('ifake_dev'), + mock.call.ensure_remove_chain('ofake_dev'), + mock.call.ensure_remove_chain('sfake_dev'), + mock.call.ensure_remove_chain('sg-chain'), + mock.call.add_chain('sg-chain')] self.v4filter_inst.assert_has_calls(calls) @@ -1019,8 +1018,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): def test_defer_apply(self): with self.firewall.defer_apply(): pass - self.iptables_inst.assert_has_calls([call.defer_apply_on(), - call.defer_apply_off()]) + self.iptables_inst.assert_has_calls([mock.call.defer_apply_on(), + mock.call.defer_apply_off()]) def test_filter_defer_with_exception(self): try: @@ -1028,8 +1027,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): raise Exception("same exception") except Exception: pass - self.iptables_inst.assert_has_calls([call.defer_apply_on(), - call.defer_apply_off()]) + self.iptables_inst.assert_has_calls([mock.call.defer_apply_on(), + mock.call.defer_apply_off()]) def _mock_chain_applies(self): class CopyingMock(mock.MagicMock): @@ -1056,12 +1055,12 @@ class IptablesFirewallTestCase(base.BaseTestCase): self.firewall.prepare_port_filter(port_prepare) self.firewall.update_port_filter(port_update) self.firewall.remove_port_filter(port_update) - chain_applies.assert_has_calls([call.remove({}), - call.setup({'d1': port_prepare}), - call.remove({'d1': port_prepare}), - call.setup({'d1': port_update}), - call.remove({'d1': port_update}), - call.setup({})]) + chain_applies.assert_has_calls([mock.call.remove({}), + mock.call.setup({'d1': port_prepare}), + mock.call.remove({'d1': port_prepare}), + mock.call.setup({'d1': port_update}), + mock.call.remove({'d1': port_update}), + mock.call.setup({})]) def test_defer_chain_apply_need_pre_defer_copy(self): chain_applies = self._mock_chain_applies() @@ -1070,10 +1069,10 @@ class IptablesFirewallTestCase(base.BaseTestCase): self.firewall.prepare_port_filter(port) with self.firewall.defer_apply(): self.firewall.remove_port_filter(port) - chain_applies.assert_has_calls([call.remove({}), - call.setup(device2port), - call.remove(device2port), - call.setup({})]) + chain_applies.assert_has_calls([mock.call.remove({}), + mock.call.setup(device2port), + mock.call.remove(device2port), + mock.call.setup({})]) def test_defer_chain_apply_coalesce_simple(self): chain_applies = self._mock_chain_applies() @@ -1082,7 +1081,8 @@ class IptablesFirewallTestCase(base.BaseTestCase): self.firewall.prepare_port_filter(port) self.firewall.update_port_filter(port) self.firewall.remove_port_filter(port) - chain_applies.assert_has_calls([call.remove({}), call.setup({})]) + chain_applies.assert_has_calls([mock.call.remove({}), + mock.call.setup({})]) def test_defer_chain_apply_coalesce_multiple_ports(self): chain_applies = self._mock_chain_applies() @@ -1092,70 +1092,70 @@ class IptablesFirewallTestCase(base.BaseTestCase): with self.firewall.defer_apply(): self.firewall.prepare_port_filter(port1) self.firewall.prepare_port_filter(port2) - chain_applies.assert_has_calls([call.remove({}), - call.setup(device2port)]) + chain_applies.assert_has_calls([mock.call.remove({}), + mock.call.setup(device2port)]) def test_ip_spoofing_filter_with_multiple_ips(self): port = {'device': 'tapfake_dev', 'mac_address': 'ff:ff:ff:ff:ff:ff', 'fixed_ips': ['10.0.0.1', 'fe80::1', '10.0.0.2']} self.firewall.prepare_port_filter(port) - calls = [call.add_chain('sg-fallback'), - call.add_rule('sg-fallback', '-j DROP'), - call.ensure_remove_chain('sg-chain'), - call.add_chain('sg-chain'), - call.add_chain('ifake_dev'), - call.add_rule('FORWARD', - '-m physdev --physdev-out tapfake_dev ' - '--physdev-is-bridged ' - '-j $sg-chain'), - call.add_rule('sg-chain', - '-m physdev --physdev-out tapfake_dev ' - '--physdev-is-bridged ' - '-j $ifake_dev'), - call.add_rule( + calls = [mock.call.add_chain('sg-fallback'), + mock.call.add_rule('sg-fallback', '-j DROP'), + mock.call.ensure_remove_chain('sg-chain'), + mock.call.add_chain('sg-chain'), + mock.call.add_chain('ifake_dev'), + mock.call.add_rule('FORWARD', + '-m physdev --physdev-out tapfake_dev ' + '--physdev-is-bridged ' + '-j $sg-chain'), + mock.call.add_rule('sg-chain', + '-m physdev --physdev-out tapfake_dev ' + '--physdev-is-bridged ' + '-j $ifake_dev'), + mock.call.add_rule( 'ifake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ifake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ifake_dev', '-j $sg-fallback'), - call.add_chain('ofake_dev'), - call.add_rule('FORWARD', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $sg-chain'), - call.add_rule('sg-chain', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $ofake_dev'), - call.add_rule('INPUT', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $ofake_dev'), - call.add_chain('sfake_dev'), - call.add_rule( + mock.call.add_rule('ifake_dev', '-j $sg-fallback'), + mock.call.add_chain('ofake_dev'), + mock.call.add_rule('FORWARD', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $sg-chain'), + mock.call.add_rule('sg-chain', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $ofake_dev'), + mock.call.add_rule('INPUT', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $ofake_dev'), + mock.call.add_chain('sfake_dev'), + mock.call.add_rule( 'sfake_dev', '-m mac --mac-source ff:ff:ff:ff:ff:ff -s 10.0.0.1 ' '-j RETURN'), - call.add_rule( + mock.call.add_rule( 'sfake_dev', '-m mac --mac-source ff:ff:ff:ff:ff:ff -s 10.0.0.2 ' '-j RETURN'), - call.add_rule('sfake_dev', '-j DROP'), - call.add_rule( + mock.call.add_rule('sfake_dev', '-j DROP'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 68 --dport 67 -j RETURN'), - call.add_rule('ofake_dev', '-j $sfake_dev'), - call.add_rule( + mock.call.add_rule('ofake_dev', '-j $sfake_dev'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 67 --dport 68 -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ofake_dev', '-j $sg-fallback'), - call.add_rule('sg-chain', '-j ACCEPT')] + mock.call.add_rule('ofake_dev', '-j $sg-fallback'), + mock.call.add_rule('sg-chain', '-j ACCEPT')] self.v4filter_inst.assert_has_calls(calls) def test_ip_spoofing_no_fixed_ips(self): @@ -1163,55 +1163,55 @@ class IptablesFirewallTestCase(base.BaseTestCase): 'mac_address': 'ff:ff:ff:ff:ff:ff', 'fixed_ips': []} self.firewall.prepare_port_filter(port) - calls = [call.add_chain('sg-fallback'), - call.add_rule('sg-fallback', '-j DROP'), - call.ensure_remove_chain('sg-chain'), - call.add_chain('sg-chain'), - call.add_chain('ifake_dev'), - call.add_rule('FORWARD', - '-m physdev --physdev-out tapfake_dev ' - '--physdev-is-bridged ' - '-j $sg-chain'), - call.add_rule('sg-chain', - '-m physdev --physdev-out tapfake_dev ' - '--physdev-is-bridged ' - '-j $ifake_dev'), - call.add_rule( + calls = [mock.call.add_chain('sg-fallback'), + mock.call.add_rule('sg-fallback', '-j DROP'), + mock.call.ensure_remove_chain('sg-chain'), + mock.call.add_chain('sg-chain'), + mock.call.add_chain('ifake_dev'), + mock.call.add_rule('FORWARD', + '-m physdev --physdev-out tapfake_dev ' + '--physdev-is-bridged ' + '-j $sg-chain'), + mock.call.add_rule('sg-chain', + '-m physdev --physdev-out tapfake_dev ' + '--physdev-is-bridged ' + '-j $ifake_dev'), + mock.call.add_rule( 'ifake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ifake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ifake_dev', '-j $sg-fallback'), - call.add_chain('ofake_dev'), - call.add_rule('FORWARD', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $sg-chain'), - call.add_rule('sg-chain', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $ofake_dev'), - call.add_rule('INPUT', - '-m physdev --physdev-in tapfake_dev ' - '--physdev-is-bridged ' - '-j $ofake_dev'), - call.add_chain('sfake_dev'), - call.add_rule( + mock.call.add_rule('ifake_dev', '-j $sg-fallback'), + mock.call.add_chain('ofake_dev'), + mock.call.add_rule('FORWARD', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $sg-chain'), + mock.call.add_rule('sg-chain', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $ofake_dev'), + mock.call.add_rule('INPUT', + '-m physdev --physdev-in tapfake_dev ' + '--physdev-is-bridged ' + '-j $ofake_dev'), + mock.call.add_chain('sfake_dev'), + mock.call.add_rule( 'sfake_dev', '-m mac --mac-source ff:ff:ff:ff:ff:ff -j RETURN'), - call.add_rule('sfake_dev', '-j DROP'), - call.add_rule( + mock.call.add_rule('sfake_dev', '-j DROP'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 68 --dport 67 -j RETURN'), - call.add_rule('ofake_dev', '-j $sfake_dev'), - call.add_rule( + mock.call.add_rule('ofake_dev', '-j $sfake_dev'), + mock.call.add_rule( 'ofake_dev', '-p udp -m udp --sport 67 --dport 68 -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state INVALID -j DROP'), - call.add_rule( + mock.call.add_rule( 'ofake_dev', '-m state --state RELATED,ESTABLISHED -j RETURN'), - call.add_rule('ofake_dev', '-j $sg-fallback'), - call.add_rule('sg-chain', '-j ACCEPT')] + mock.call.add_rule('ofake_dev', '-j $sg-fallback'), + mock.call.add_rule('sg-chain', '-j ACCEPT')] self.v4filter_inst.assert_has_calls(calls) diff --git a/neutron/tests/unit/test_l3_plugin.py b/neutron/tests/unit/test_l3_plugin.py index 23ea42d50a4..e4d28513cf1 100644 --- a/neutron/tests/unit/test_l3_plugin.py +++ b/neutron/tests/unit/test_l3_plugin.py @@ -35,7 +35,7 @@ from neutron.db import l3_rpc_base from neutron.db import model_base from neutron.extensions import external_net from neutron.extensions import l3 -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import importutils from neutron.openstack.common import log as logging from neutron.openstack.common.notifier import test_notifier @@ -244,7 +244,7 @@ class TestL3NatBasePlugin(db_base_plugin_v2.NeutronDbPluginV2, super(TestL3NatBasePlugin, self).delete_network(context, id) def delete_port(self, context, id, l3_port_check=True): - plugin = NeutronManager.get_service_plugins().get( + plugin = manager.NeutronManager.get_service_plugins().get( service_constants.L3_ROUTER_NAT) if plugin: if l3_port_check: @@ -1808,7 +1808,7 @@ class L3AgentDbTestCaseBase(L3NatTestCaseMixin): def _test_notify_op_agent(self, target_func, *args): l3_rpc_agent_api_str = ( 'neutron.api.rpc.agentnotifiers.l3_rpc_agent_api.L3AgentNotifyAPI') - plugin = NeutronManager.get_service_plugins()[ + plugin = manager.NeutronManager.get_service_plugins()[ service_constants.L3_ROUTER_NAT] oldNotify = plugin.l3_rpc_notifier try: @@ -1927,7 +1927,7 @@ class L3NatDBIntAgentSchedulingTestCase(L3BaseForIntTests, self.adminContext = context.get_admin_context() def _assert_router_on_agent(self, router_id, agent_host): - plugin = NeutronManager.get_service_plugins().get( + plugin = manager.NeutronManager.get_service_plugins().get( service_constants.L3_ROUTER_NAT) agents = plugin.list_l3_agents_hosting_router( self.adminContext, router_id)['agents'] diff --git a/neutron/tests/unit/test_linux_interface.py b/neutron/tests/unit/test_linux_interface.py index 22351ed3f65..010409731ab 100644 --- a/neutron/tests/unit/test_linux_interface.py +++ b/neutron/tests/unit/test_linux_interface.py @@ -22,7 +22,7 @@ from neutron.agent.linux import dhcp from neutron.agent.linux import interface from neutron.agent.linux import ip_lib from neutron.agent.linux import utils -from neutron.extensions.flavor import (FLAVOR_NETWORK) +from neutron.extensions import flavor from neutron.openstack.common import uuidutils from neutron.tests import base @@ -417,7 +417,7 @@ class TestMetaInterfaceDriver(TestBase): self.client_inst = mock.Mock() client_cls.return_value = self.client_inst - fake_network = {'network': {FLAVOR_NETWORK: 'fake1'}} + fake_network = {'network': {flavor.FLAVOR_NETWORK: 'fake1'}} fake_port = {'ports': [{'mac_address': 'aa:bb:cc:dd:ee:ffa', 'network_id': 'test'}]} diff --git a/neutron/tests/unit/test_neutron_manager.py b/neutron/tests/unit/test_neutron_manager.py index 4a9b7e50ded..4a8eb0e6dcc 100644 --- a/neutron/tests/unit/test_neutron_manager.py +++ b/neutron/tests/unit/test_neutron_manager.py @@ -21,9 +21,7 @@ import fixtures from oslo.config import cfg -from neutron.manager import NeutronManager -from neutron.manager import validate_post_plugin_load -from neutron.manager import validate_pre_plugin_load +from neutron import manager from neutron.openstack.common import log as logging from neutron.plugins.common import constants from neutron.tests import base @@ -57,7 +55,7 @@ class NeutronManagerTestCase(base.BaseTestCase): cfg.CONF.set_override("service_plugins", ["neutron.tests.unit.dummy_plugin." "DummyServicePlugin"]) - mgr = NeutronManager.get_instance() + mgr = manager.NeutronManager.get_instance() plugin = mgr.get_service_plugins()[constants.DUMMY] self.assertTrue( @@ -68,7 +66,7 @@ class NeutronManagerTestCase(base.BaseTestCase): def test_service_plugin_by_name_is_loaded(self): cfg.CONF.set_override("core_plugin", DB_PLUGIN_KLASS) cfg.CONF.set_override("service_plugins", ["dummy"]) - mgr = NeutronManager.get_instance() + mgr = manager.NeutronManager.get_instance() plugin = mgr.get_service_plugins()[constants.DUMMY] self.assertTrue( @@ -83,19 +81,19 @@ class NeutronManagerTestCase(base.BaseTestCase): "neutron.tests.unit.dummy_plugin." "DummyServicePlugin"]) cfg.CONF.set_override("core_plugin", DB_PLUGIN_KLASS) - self.assertRaises(ValueError, NeutronManager.get_instance) + self.assertRaises(ValueError, manager.NeutronManager.get_instance) def test_multiple_plugins_by_name_specified_for_service_type(self): cfg.CONF.set_override("service_plugins", ["dummy", "dummy"]) cfg.CONF.set_override("core_plugin", DB_PLUGIN_KLASS) - self.assertRaises(ValueError, NeutronManager.get_instance) + self.assertRaises(ValueError, manager.NeutronManager.get_instance) def test_multiple_plugins_mixed_specified_for_service_type(self): cfg.CONF.set_override("service_plugins", ["neutron.tests.unit.dummy_plugin." "DummyServicePlugin", "dummy"]) cfg.CONF.set_override("core_plugin", DB_PLUGIN_KLASS) - self.assertRaises(ValueError, NeutronManager.get_instance) + self.assertRaises(ValueError, manager.NeutronManager.get_instance) def test_service_plugin_conflicts_with_core_plugin(self): cfg.CONF.set_override("service_plugins", @@ -104,13 +102,13 @@ class NeutronManagerTestCase(base.BaseTestCase): cfg.CONF.set_override("core_plugin", "neutron.tests.unit.test_neutron_manager." "MultiServiceCorePlugin") - self.assertRaises(ValueError, NeutronManager.get_instance) + self.assertRaises(ValueError, manager.NeutronManager.get_instance) def test_core_plugin_supports_services(self): cfg.CONF.set_override("core_plugin", "neutron.tests.unit.test_neutron_manager." "MultiServiceCorePlugin") - mgr = NeutronManager.get_instance() + mgr = manager.NeutronManager.get_instance() svc_plugins = mgr.get_service_plugins() self.assertEqual(3, len(svc_plugins)) self.assertIn(constants.CORE, svc_plugins.keys()) @@ -121,18 +119,18 @@ class NeutronManagerTestCase(base.BaseTestCase): cfg.CONF.import_opt('dhcp_agents_per_network', 'neutron.db.agentschedulers_db') - self.assertIsNone(validate_post_plugin_load()) + self.assertIsNone(manager.validate_post_plugin_load()) cfg.CONF.set_override('dhcp_agents_per_network', 2) - self.assertIsNone(validate_post_plugin_load()) + self.assertIsNone(manager.validate_post_plugin_load()) cfg.CONF.set_override('dhcp_agents_per_network', 0) - self.assertIsNotNone(validate_post_plugin_load()) + self.assertIsNotNone(manager.validate_post_plugin_load()) cfg.CONF.set_override('dhcp_agents_per_network', -1) - self.assertIsNotNone(validate_post_plugin_load()) + self.assertIsNotNone(manager.validate_post_plugin_load()) def test_pre_plugin_validation(self): - self.assertIsNotNone(validate_pre_plugin_load()) + self.assertIsNotNone(manager.validate_pre_plugin_load()) cfg.CONF.set_override('core_plugin', 'dummy.plugin') - self.assertIsNone(validate_pre_plugin_load()) + self.assertIsNone(manager.validate_pre_plugin_load()) def test_manager_gathers_agent_notifiers_from_service_plugins(self): cfg.CONF.set_override("service_plugins", @@ -144,5 +142,5 @@ class NeutronManagerTestCase(base.BaseTestCase): expected = {'l3': 'l3_agent_notifier', 'dhcp': 'dhcp_agent_notifier', 'dummy': 'dummy_agent_notifier'} - core_plugin = NeutronManager.get_plugin() + core_plugin = manager.NeutronManager.get_plugin() self.assertEqual(expected, core_plugin.agent_notifiers) diff --git a/neutron/tests/unit/test_post_mortem_debug.py b/neutron/tests/unit/test_post_mortem_debug.py index 0379342423e..582c99756e5 100644 --- a/neutron/tests/unit/test_post_mortem_debug.py +++ b/neutron/tests/unit/test_post_mortem_debug.py @@ -18,7 +18,7 @@ import sys import mock -from six.moves import xrange +from six import moves from neutron.tests import base from neutron.tests import post_mortem_debug @@ -66,7 +66,7 @@ class TestGetIgnoredTraceback(base.BaseTestCase): tb = root_tb tracebacks = [tb] - for x in xrange(len(ignored_bit_array) - 1): + for x in moves.xrange(len(ignored_bit_array) - 1): tb.tb_next = mock.Mock() tb = tb.tb_next tracebacks.append(tb) diff --git a/neutron/tests/unit/test_security_groups_rpc.py b/neutron/tests/unit/test_security_groups_rpc.py index 60646c23cd7..1a32051e490 100644 --- a/neutron/tests/unit/test_security_groups_rpc.py +++ b/neutron/tests/unit/test_security_groups_rpc.py @@ -15,11 +15,9 @@ # License for the specific language governing permissions and limitations # under the License. -from contextlib import contextmanager -from contextlib import nested +import contextlib import mock -from mock import call from oslo.config import cfg from testtools import matchers import webob.exc @@ -35,7 +33,7 @@ from neutron import context from neutron.db import securitygroups_rpc_base as sg_db_rpc from neutron.extensions import allowedaddresspairs as addr_pair from neutron.extensions import securitygroup as ext_sg -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common.rpc import proxy from neutron.tests import base from neutron.tests.unit import test_extension_security_group as test_sg @@ -71,9 +69,9 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): def test_security_group_rules_for_devices_ipv4_ingress(self): fake_prefix = FAKE_PREFIX[const.IPv4] with self.network() as n: - with nested(self.subnet(n), - self.security_group()) as (subnet_v4, - sg1): + with contextlib.nested(self.subnet(n), + self.security_group()) as (subnet_v4, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -123,15 +121,15 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): self._delete('ports', port_id1) def test_security_group_rules_for_devices_ipv4_ingress_addr_pair(self): - plugin_obj = NeutronManager.get_plugin() + plugin_obj = manager.NeutronManager.get_plugin() if ('allowed-address-pairs' not in plugin_obj.supported_extension_aliases): self.skipTest("Test depeneds on allowed-address-pairs extension") fake_prefix = FAKE_PREFIX['IPv4'] with self.network() as n: - with nested(self.subnet(n), - self.security_group()) as (subnet_v4, - sg1): + with contextlib.nested(self.subnet(n), + self.security_group()) as (subnet_v4, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -188,9 +186,9 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): def test_security_group_rules_for_devices_ipv4_egress(self): fake_prefix = FAKE_PREFIX[const.IPv4] with self.network() as n: - with nested(self.subnet(n), - self.security_group()) as (subnet_v4, - sg1): + with contextlib.nested(self.subnet(n), + self.security_group()) as (subnet_v4, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -242,11 +240,11 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): def test_security_group_rules_for_devices_ipv4_source_group(self): with self.network() as n: - with nested(self.subnet(n), - self.security_group(), - self.security_group()) as (subnet_v4, - sg1, - sg2): + with contextlib.nested(self.subnet(n), + self.security_group(), + self.security_group()) as (subnet_v4, + sg1, + sg2): sg1_id = sg1['security_group']['id'] sg2_id = sg2['security_group']['id'] rule1 = self._build_security_group_rule( @@ -302,12 +300,12 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP[const.IPv6] with self.network() as n: - with nested(self.subnet(n, - gateway_ip=fake_gateway, - cidr=fake_prefix, - ip_version=6), - self.security_group()) as (subnet_v6, - sg1): + with contextlib.nested(self.subnet(n, + gateway_ip=fake_gateway, + cidr=fake_prefix, + ip_version=6), + self.security_group()) as (subnet_v6, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -369,13 +367,13 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP['IPv6_GLOBAL'] with self.network() as n: - with nested(self.subnet(n, - gateway_ip=fake_gateway, - cidr=fake_prefix, - ip_version=6, - ipv6_ra_mode=const.IPV6_SLAAC), - self.security_group()) as (subnet_v6, - sg1): + with contextlib.nested(self.subnet(n, + gateway_ip=fake_gateway, + cidr=fake_prefix, + ip_version=6, + ipv6_ra_mode=const.IPV6_SLAAC), + self.security_group()) as (subnet_v6, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -439,13 +437,13 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP['IPv6_GLOBAL'] with self.network() as n: - with nested(self.subnet(n, - gateway_ip=fake_gateway, - cidr=fake_prefix, - ip_version=6, - ipv6_ra_mode=const.IPV6_SLAAC), - self.security_group()) as (subnet_v6, - sg1): + with contextlib.nested(self.subnet(n, + gateway_ip=fake_gateway, + cidr=fake_prefix, + ip_version=6, + ipv6_ra_mode=const.IPV6_SLAAC), + self.security_group()) as (subnet_v6, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -516,13 +514,13 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP['IPv6_LLA'] with self.network() as n: - with nested(self.subnet(n, - gateway_ip=fake_gateway, - cidr=fake_prefix, - ip_version=6, - ipv6_ra_mode=const.IPV6_SLAAC), - self.security_group()) as (subnet_v6, - sg1): + with contextlib.nested(self.subnet(n, + gateway_ip=fake_gateway, + cidr=fake_prefix, + ip_version=6, + ipv6_ra_mode=const.IPV6_SLAAC), + self.security_group()) as (subnet_v6, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -567,13 +565,13 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): def test_security_group_ra_rules_for_devices_ipv6_no_gateway_port(self): fake_prefix = FAKE_PREFIX[const.IPv6] with self.network() as n: - with nested(self.subnet(n, - gateway_ip=None, - cidr=fake_prefix, - ip_version=6, - ipv6_ra_mode=const.IPV6_SLAAC), - self.security_group()) as (subnet_v6, - sg1): + with contextlib.nested(self.subnet(n, + gateway_ip=None, + cidr=fake_prefix, + ip_version=6, + ipv6_ra_mode=const.IPV6_SLAAC), + self.security_group()) as (subnet_v6, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -614,12 +612,12 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP[const.IPv6] with self.network() as n: - with nested(self.subnet(n, - gateway_ip=fake_gateway, - cidr=fake_prefix, - ip_version=6), - self.security_group()) as (subnet_v6, - sg1): + with contextlib.nested(self.subnet(n, + gateway_ip=fake_gateway, + cidr=fake_prefix, + ip_version=6), + self.security_group()) as (subnet_v6, + sg1): sg1_id = sg1['security_group']['id'] rule1 = self._build_security_group_rule( sg1_id, @@ -679,14 +677,14 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP[const.IPv6] with self.network() as n: - with nested(self.subnet(n, - gateway_ip=fake_gateway, - cidr=fake_prefix, - ip_version=6), - self.security_group(), - self.security_group()) as (subnet_v6, - sg1, - sg2): + with contextlib.nested(self.subnet(n, + gateway_ip=fake_gateway, + cidr=fake_prefix, + ip_version=6), + self.security_group(), + self.security_group()) as (subnet_v6, + sg1, + sg2): sg1_id = sg1['security_group']['id'] sg2_id = sg2['security_group']['id'] rule1 = self._build_security_group_rule( @@ -759,18 +757,18 @@ class SGAgentRpcCallBackMixinTestCase(base.BaseTestCase): self.rpc.security_groups_rule_updated(None, security_groups=['fake_sgid']) self.rpc.sg_agent.assert_has_calls( - [call.security_groups_rule_updated(['fake_sgid'])]) + [mock.call.security_groups_rule_updated(['fake_sgid'])]) def test_security_groups_member_updated(self): self.rpc.security_groups_member_updated(None, security_groups=['fake_sgid']) self.rpc.sg_agent.assert_has_calls( - [call.security_groups_member_updated(['fake_sgid'])]) + [mock.call.security_groups_member_updated(['fake_sgid'])]) def test_security_groups_provider_updated(self): self.rpc.security_groups_provider_updated(None) self.rpc.sg_agent.assert_has_calls( - [call.security_groups_provider_updated()]) + [mock.call.security_groups_provider_updated()]) class SecurityGroupAgentRpcTestCaseForNoneDriver(base.BaseTestCase): @@ -816,11 +814,11 @@ class SecurityGroupAgentRpcTestCase(base.BaseTestCase): self.agent.prepare_devices_filter(['fake_device']) self.agent.remove_devices_filter(['fake_device']) # ignore device which is not filtered - self.firewall.assert_has_calls([call.defer_apply(), - call.prepare_port_filter( + self.firewall.assert_has_calls([mock.call.defer_apply(), + mock.call.prepare_port_filter( self.fake_device), - call.defer_apply(), - call.remove_port_filter( + mock.call.defer_apply(), + mock.call.remove_port_filter( self.fake_device), ]) @@ -829,7 +827,7 @@ class SecurityGroupAgentRpcTestCase(base.BaseTestCase): self.agent.prepare_devices_filter(['fake_port_id']) self.agent.security_groups_rule_updated(['fake_sgid1', 'fake_sgid3']) self.agent.refresh_firewall.assert_has_calls( - [call.refresh_firewall([self.fake_device['device']])]) + [mock.call.refresh_firewall([self.fake_device['device']])]) def test_security_groups_rule_not_updated(self): self.agent.refresh_firewall = mock.Mock() @@ -842,7 +840,7 @@ class SecurityGroupAgentRpcTestCase(base.BaseTestCase): self.agent.prepare_devices_filter(['fake_port_id']) self.agent.security_groups_member_updated(['fake_sgid2', 'fake_sgid3']) self.agent.refresh_firewall.assert_has_calls( - [call.refresh_firewall([self.fake_device['device']])]) + [mock.call.refresh_firewall([self.fake_device['device']])]) def test_security_groups_member_not_updated(self): self.agent.refresh_firewall = mock.Mock() @@ -854,24 +852,24 @@ class SecurityGroupAgentRpcTestCase(base.BaseTestCase): self.agent.refresh_firewall = mock.Mock() self.agent.security_groups_provider_updated() self.agent.refresh_firewall.assert_has_calls( - [call.refresh_firewall()]) + [mock.call.refresh_firewall()]) def test_refresh_firewall(self): self.agent.prepare_devices_filter(['fake_port_id']) self.agent.refresh_firewall() - calls = [call.defer_apply(), - call.prepare_port_filter(self.fake_device), - call.defer_apply(), - call.update_port_filter(self.fake_device)] + calls = [mock.call.defer_apply(), + mock.call.prepare_port_filter(self.fake_device), + mock.call.defer_apply(), + mock.call.update_port_filter(self.fake_device)] self.firewall.assert_has_calls(calls) def test_refresh_firewall_devices(self): self.agent.prepare_devices_filter(['fake_port_id']) self.agent.refresh_firewall([self.fake_device]) - calls = [call.defer_apply(), - call.prepare_port_filter(self.fake_device), - call.defer_apply(), - call.update_port_filter(self.fake_device)] + calls = [mock.call.defer_apply(), + mock.call.prepare_port_filter(self.fake_device), + mock.call.defer_apply(), + mock.call.update_port_filter(self.fake_device)] self.firewall.assert_has_calls(calls) def test_refresh_firewall_none(self): @@ -886,7 +884,7 @@ class SecurityGroupAgentRpcWithDeferredRefreshTestCase( super(SecurityGroupAgentRpcWithDeferredRefreshTestCase, self).setUp( defer_refresh_firewall=True) - @contextmanager + @contextlib.contextmanager def add_fake_device(self, device, sec_groups, source_sec_groups=None): fake_device = {'device': device, 'security_groups': sec_groups, @@ -1095,7 +1093,7 @@ class SecurityGroupServerRpcApiTestCase(base.BaseTestCase): def test_security_group_rules_for_devices(self): self.rpc.security_group_rules_for_devices(None, ['fake_device']) self.rpc.call.assert_has_calls( - [call(None, + [mock.call(None, {'args': {'devices': ['fake_device']}, 'method': 'security_group_rules_for_devices', @@ -1120,25 +1118,25 @@ class SecurityGroupAgentRpcApiTestCase(base.BaseTestCase): self.notifier.security_groups_rule_updated( None, security_groups=['fake_sgid']) self.notifier.fanout_cast.assert_has_calls( - [call(None, - {'args': - {'security_groups': ['fake_sgid']}, - 'method': 'security_groups_rule_updated', - 'namespace': None}, - version=sg_rpc.SG_RPC_VERSION, - topic='fake-security_group-update')]) + [mock.call(None, + {'args': + {'security_groups': ['fake_sgid']}, + 'method': 'security_groups_rule_updated', + 'namespace': None}, + version=sg_rpc.SG_RPC_VERSION, + topic='fake-security_group-update')]) def test_security_groups_member_updated(self): self.notifier.security_groups_member_updated( None, security_groups=['fake_sgid']) self.notifier.fanout_cast.assert_has_calls( - [call(None, - {'args': - {'security_groups': ['fake_sgid']}, - 'method': 'security_groups_member_updated', - 'namespace': None}, - version=sg_rpc.SG_RPC_VERSION, - topic='fake-security_group-update')]) + [mock.call(None, + {'args': + {'security_groups': ['fake_sgid']}, + 'method': 'security_groups_member_updated', + 'namespace': None}, + version=sg_rpc.SG_RPC_VERSION, + topic='fake-security_group-update')]) def test_security_groups_rule_not_updated(self): self.notifier.security_groups_rule_updated( @@ -1822,7 +1820,7 @@ class TestSecurityGroupAgentWithIptables(base.BaseTestCase): if has_process_input: kwargs['process_input'] = mock.ANY - self.expected_calls.append(call(*args, **kwargs)) + self.expected_calls.append(mock.call(*args, **kwargs)) self.expected_call_count += 1 def _verify_mock_calls(self): @@ -1921,10 +1919,10 @@ class SGNotificationTestMixin(): ): pass self.notifier.assert_has_calls( - [call.security_groups_rule_updated(mock.ANY, - [security_group_id]), - call.security_groups_rule_updated(mock.ANY, - [security_group_id])]) + [mock.call.security_groups_rule_updated(mock.ANY, + [security_group_id]), + mock.call.security_groups_rule_updated(mock.ANY, + [security_group_id])]) def test_security_group_member_updated(self): with self.network() as n: @@ -1947,7 +1945,7 @@ class SGNotificationTestMixin(): security_group_id) self._delete('ports', port['port']['id']) self.notifier.assert_has_calls( - [call.security_groups_member_updated( + [mock.call.security_groups_member_updated( mock.ANY, [mock.ANY])]) diff --git a/neutron/tests/unit/vmware/apiclient/test_api_common.py b/neutron/tests/unit/vmware/apiclient/test_api_common.py index c3e418be843..5ea40d0d8e1 100644 --- a/neutron/tests/unit/vmware/apiclient/test_api_common.py +++ b/neutron/tests/unit/vmware/apiclient/test_api_common.py @@ -16,7 +16,7 @@ import httplib -from neutron.plugins.vmware.api_client import ctrl_conn_to_str +from neutron.plugins.vmware import api_client from neutron.tests import base @@ -25,11 +25,11 @@ class ApiCommonTest(base.BaseTestCase): def test_ctrl_conn_to_str(self): conn = httplib.HTTPSConnection('localhost', 4242, timeout=0) self.assertTrue( - ctrl_conn_to_str(conn) == 'https://localhost:4242') + api_client.ctrl_conn_to_str(conn) == 'https://localhost:4242') conn = httplib.HTTPConnection('localhost', 4242, timeout=0) self.assertTrue( - ctrl_conn_to_str(conn) == 'http://localhost:4242') + api_client.ctrl_conn_to_str(conn) == 'http://localhost:4242') - self.assertRaises(TypeError, ctrl_conn_to_str, + self.assertRaises(TypeError, api_client.ctrl_conn_to_str, ('not an httplib.HTTPSConnection')) diff --git a/neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py b/neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py index c70043116d9..b3e0369093b 100644 --- a/neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py +++ b/neutron/tests/unit/vmware/apiclient/test_api_eventlet_request.py @@ -19,13 +19,12 @@ import random import eventlet from eventlet.green import urllib2 -from mock import Mock -from mock import patch +import mock from neutron.plugins.vmware.api_client import eventlet_client as client from neutron.plugins.vmware.api_client import eventlet_request as request from neutron.tests import base -from neutron.tests.unit.vmware import CLIENT_NAME +from neutron.tests.unit import vmware logging.basicConfig(level=logging.DEBUG) @@ -70,7 +69,7 @@ class ApiRequestEventletTest(base.BaseTestCase): for i in range(10): a = request.EventletApiRequest( self.client, self.url, request_timeout=0.1) - a._handle_request = Mock() + a._handle_request = mock.Mock() a.start() eventlet.greenthread.sleep(0.1) logging.info('_handle_request called: %s' % @@ -78,13 +77,13 @@ class ApiRequestEventletTest(base.BaseTestCase): request.EventletApiRequest.joinall() def test_join_with_handle_request(self): - self.req._handle_request = Mock() + self.req._handle_request = mock.Mock() self.req.start() self.req.join() self.assertTrue(self.req._handle_request.called) def test_join_without_handle_request(self): - self.req._handle_request = Mock() + self.req._handle_request = mock.Mock() self.req.join() self.assertFalse(self.req._handle_request.called) @@ -101,7 +100,7 @@ class ApiRequestEventletTest(base.BaseTestCase): def test_run_and_handle_request(self): self.req._request_timeout = None - self.req._handle_request = Mock() + self.req._handle_request = mock.Mock() self.req.start() self.req.join() self.assertTrue(self.req._handle_request.called) @@ -119,34 +118,34 @@ class ApiRequestEventletTest(base.BaseTestCase): self.assertIsNone(self.req.join()) def prep_issue_request(self): - mysock = Mock() + mysock = mock.Mock() mysock.gettimeout.return_value = 4242 - myresponse = Mock() + myresponse = mock.Mock() myresponse.read.return_value = 'body' myresponse.getheaders.return_value = 'headers' myresponse.status = httplib.MOVED_PERMANENTLY - myconn = Mock() + myconn = mock.Mock() myconn.request.return_value = None myconn.sock = mysock myconn.getresponse.return_value = myresponse - myconn.__str__ = Mock() + myconn.__str__ = mock.Mock() myconn.__str__.return_value = 'myconn string' req = self.req - req._redirect_params = Mock() + req._redirect_params = mock.Mock() req._redirect_params.return_value = (myconn, 'url') - req._request_str = Mock() + req._request_str = mock.Mock() req._request_str.return_value = 'http://cool/cool' client = self.client client.need_login = False client._auto_login = False client._auth_cookie = False - client.acquire_connection = Mock() + client.acquire_connection = mock.Mock() client.acquire_connection.return_value = myconn - client.release_connection = Mock() + client.release_connection = mock.Mock() return (mysock, myresponse, myconn) @@ -186,34 +185,34 @@ class ApiRequestEventletTest(base.BaseTestCase): self.assertTrue(self.client.acquire_connection.called) def test_redirect_params_break_on_location(self): - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params( myconn, [('location', None)]) self.assertIsNone(retval) def test_redirect_params_parse_a_url(self): - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params( myconn, [('location', '/path/a/b/c')]) self.assertIsNotNone(retval) def test_redirect_params_invalid_redirect_location(self): - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params( myconn, [('location', '+path/a/b/c')]) self.assertIsNone(retval) def test_redirect_params_invalid_scheme(self): - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params( myconn, [('location', 'invalidscheme://hostname:1/path')]) self.assertIsNone(retval) def test_redirect_params_setup_https_with_cooki(self): - with patch(CLIENT_NAME) as mock: - api_client = mock.return_value + with mock.patch(vmware.CLIENT_NAME) as mock_client: + api_client = mock_client.return_value self.req._api_client = api_client - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params( myconn, [('location', 'https://host:1/path')]) @@ -221,10 +220,10 @@ class ApiRequestEventletTest(base.BaseTestCase): self.assertTrue(api_client.acquire_redirect_connection.called) def test_redirect_params_setup_htttps_and_query(self): - with patch(CLIENT_NAME) as mock: - api_client = mock.return_value + with mock.patch(vmware.CLIENT_NAME) as mock_client: + api_client = mock_client.return_value self.req._api_client = api_client - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params(myconn, [ ('location', 'https://host:1/path?q=1')]) @@ -232,10 +231,10 @@ class ApiRequestEventletTest(base.BaseTestCase): self.assertTrue(api_client.acquire_redirect_connection.called) def test_redirect_params_setup_https_connection_no_cookie(self): - with patch(CLIENT_NAME) as mock: - api_client = mock.return_value + with mock.patch(vmware.CLIENT_NAME) as mock_client: + api_client = mock_client.return_value self.req._api_client = api_client - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params(myconn, [ ('location', 'https://host:1/path')]) @@ -243,49 +242,49 @@ class ApiRequestEventletTest(base.BaseTestCase): self.assertTrue(api_client.acquire_redirect_connection.called) def test_redirect_params_setup_https_and_query_no_cookie(self): - with patch(CLIENT_NAME) as mock: - api_client = mock.return_value + with mock.patch(vmware.CLIENT_NAME) as mock_client: + api_client = mock_client.return_value self.req._api_client = api_client - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params( myconn, [('location', 'https://host:1/path?q=1')]) self.assertIsNotNone(retval) self.assertTrue(api_client.acquire_redirect_connection.called) def test_redirect_params_path_only_with_query(self): - with patch(CLIENT_NAME) as mock: - api_client = mock.return_value + with mock.patch(vmware.CLIENT_NAME) as mock_client: + api_client = mock_client.return_value api_client.wait_for_login.return_value = None api_client.auth_cookie = None api_client.acquire_connection.return_value = True - myconn = Mock() + myconn = mock.Mock() (conn, retval) = self.req._redirect_params(myconn, [ ('location', '/path?q=1')]) self.assertIsNotNone(retval) def test_handle_request_auto_login(self): self.req._auto_login = True - self.req._api_client = Mock() + self.req._api_client = mock.Mock() self.req._api_client.need_login = True - self.req._request_str = Mock() + self.req._request_str = mock.Mock() self.req._request_str.return_value = 'http://cool/cool' - self.req.spawn = Mock() + self.req.spawn = mock.Mock() self.req._handle_request() def test_handle_request_auto_login_unauth(self): self.req._auto_login = True - self.req._api_client = Mock() + self.req._api_client = mock.Mock() self.req._api_client.need_login = True - self.req._request_str = Mock() + self.req._request_str = mock.Mock() self.req._request_str.return_value = 'http://cool/cool' import socket resp = httplib.HTTPResponse(socket.socket()) resp.status = httplib.UNAUTHORIZED - mywaiter = Mock() - mywaiter.wait = Mock() + mywaiter = mock.Mock() + mywaiter.wait = mock.Mock() mywaiter.wait.return_value = resp - self.req.spawn = Mock(return_value=mywaiter) + self.req.spawn = mock.Mock(return_value=mywaiter) self.req._handle_request() def test_construct_eventlet_login_request(self): @@ -294,19 +293,19 @@ class ApiRequestEventletTest(base.BaseTestCase): def test_session_cookie_session_cookie_retrieval(self): r = request.LoginRequestEventlet(self.client, 'user', 'password') - r.successful = Mock() + r.successful = mock.Mock() r.successful.return_value = True - r.value = Mock() - r.value.get_header = Mock() + r.value = mock.Mock() + r.value.get_header = mock.Mock() r.value.get_header.return_value = 'cool' self.assertIsNotNone(r.session_cookie()) def test_session_cookie_not_retrieved(self): r = request.LoginRequestEventlet(self.client, 'user', 'password') - r.successful = Mock() + r.successful = mock.Mock() r.successful.return_value = False - r.value = Mock() - r.value.get_header = Mock() + r.value = mock.Mock() + r.value.get_header = mock.Mock() r.value.get_header.return_value = 'cool' self.assertIsNone(r.session_cookie()) @@ -316,17 +315,17 @@ class ApiRequestEventletTest(base.BaseTestCase): def test_api_providers_none_api_providers(self): r = request.GetApiProvidersRequestEventlet(self.client) - r.successful = Mock(return_value=False) + r.successful = mock.Mock(return_value=False) self.assertIsNone(r.api_providers()) def test_api_providers_non_none_api_providers(self): r = request.GetApiProvidersRequestEventlet(self.client) - r.value = Mock() + r.value = mock.Mock() r.value.body = """{ "results": [ { "roles": [ { "role": "api_provider", "listen_addr": "pssl:1.1.1.1:1" }]}]}""" - r.successful = Mock(return_value=True) + r.successful = mock.Mock(return_value=True) LOG.info('%s' % r.api_providers()) self.assertIsNotNone(r.api_providers()) diff --git a/neutron/tests/unit/vmware/extensions/test_maclearning.py b/neutron/tests/unit/vmware/extensions/test_maclearning.py index af7125c6893..70d65731a86 100644 --- a/neutron/tests/unit/vmware/extensions/test_maclearning.py +++ b/neutron/tests/unit/vmware/extensions/test_maclearning.py @@ -19,18 +19,14 @@ import mock from oslo.config import cfg from neutron.api.v2 import attributes -from neutron.common.test_lib import test_config +from neutron.common import test_lib from neutron import context from neutron.extensions import agent -from neutron.plugins.vmware.api_client.version import Version +from neutron.plugins.vmware.api_client import version from neutron.plugins.vmware.common import sync from neutron.tests.unit import test_db_plugin +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.apiclient import fake -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import NSXAPI_NAME -from neutron.tests.unit.vmware import NSXEXT_PATH -from neutron.tests.unit.vmware import PLUGIN_NAME -from neutron.tests.unit.vmware import STUBS_PATH class MacLearningExtensionManager(object): @@ -56,28 +52,29 @@ class MacLearningDBTestCase(test_db_plugin.NeutronDbPluginV2TestCase): def setUp(self): self.adminContext = context.get_admin_context() - test_config['config_files'] = [get_fake_conf('nsx.ini.full.test')] - cfg.CONF.set_override('api_extensions_path', NSXEXT_PATH) + test_lib.test_config['config_files'] = [ + vmware.get_fake_conf('nsx.ini.full.test')] + cfg.CONF.set_override('api_extensions_path', vmware.NSXEXT_PATH) # Save the original RESOURCE_ATTRIBUTE_MAP self.saved_attr_map = {} for resource, attrs in attributes.RESOURCE_ATTRIBUTE_MAP.iteritems(): self.saved_attr_map[resource] = attrs.copy() ext_mgr = MacLearningExtensionManager() # mock api client - self.fc = fake.FakeClient(STUBS_PATH) - self.mock_nsx = mock.patch(NSXAPI_NAME, autospec=True) + self.fc = fake.FakeClient(vmware.STUBS_PATH) + self.mock_nsx = mock.patch(vmware.NSXAPI_NAME, autospec=True) instance = self.mock_nsx.start() # Avoid runs of the synchronizer looping call patch_sync = mock.patch.object(sync, '_start_loopingcall') patch_sync.start() # Emulate tests against NSX 2.x - instance.return_value.get_version.return_value = Version("3.0") + instance.return_value.get_version.return_value = version.Version("3.0") instance.return_value.request.side_effect = self.fc.fake_request cfg.CONF.set_override('metadata_mode', None, 'NSX') self.addCleanup(self.fc.reset_all) self.addCleanup(self.restore_resource_attribute_map) - super(MacLearningDBTestCase, self).setUp(plugin=PLUGIN_NAME, + super(MacLearningDBTestCase, self).setUp(plugin=vmware.PLUGIN_NAME, ext_mgr=ext_mgr) def restore_resource_attribute_map(self): diff --git a/neutron/tests/unit/vmware/extensions/test_networkgw.py b/neutron/tests/unit/vmware/extensions/test_networkgw.py index dcca5c4927a..a7371dada5d 100644 --- a/neutron/tests/unit/vmware/extensions/test_networkgw.py +++ b/neutron/tests/unit/vmware/extensions/test_networkgw.py @@ -20,7 +20,6 @@ from webob import exc import webtest from neutron.api import extensions -from neutron.api.extensions import PluginAwareExtensionManager from neutron.api.v2 import attributes from neutron import context from neutron.db import api as db_api @@ -37,9 +36,8 @@ from neutron.tests import base from neutron.tests.unit import test_api_v2 from neutron.tests.unit import test_db_plugin from neutron.tests.unit import test_extensions -from neutron.tests.unit.vmware import NSXEXT_PATH -from neutron.tests.unit.vmware import PLUGIN_NAME -from neutron.tests.unit.vmware.test_nsx_plugin import NsxPluginV2TestCase +from neutron.tests.unit import vmware +from neutron.tests.unit.vmware import test_nsx_plugin _uuid = test_api_v2._uuid _get_path = test_api_v2._get_path @@ -88,7 +86,7 @@ class NetworkGatewayExtensionTestCase(base.BaseTestCase): manager.NeutronManager.get_plugin().supported_extension_aliases = ( [networkgw.EXT_ALIAS]) ext_mgr = TestExtensionManager() - PluginAwareExtensionManager._instance = ext_mgr + extensions.PluginAwareExtensionManager._instance = ext_mgr self.ext_mdw = test_extensions.setup_extensions_middleware(ext_mgr) self.api = webtest.TestApp(self.ext_mdw) @@ -863,11 +861,11 @@ class NetworkGatewayDbTestCase(test_db_plugin.NeutronDbPluginV2TestCase): self.assertIsNone(dev_query.first()) -class TestNetworkGateway(NsxPluginV2TestCase, +class TestNetworkGateway(test_nsx_plugin.NsxPluginV2TestCase, NetworkGatewayDbTestCase): - def setUp(self, plugin=PLUGIN_NAME, ext_mgr=None): - cfg.CONF.set_override('api_extensions_path', NSXEXT_PATH) + def setUp(self, plugin=vmware.PLUGIN_NAME, ext_mgr=None): + cfg.CONF.set_override('api_extensions_path', vmware.NSXEXT_PATH) # Mock l2gwlib calls for gateway devices since this resource is not # mocked through the fake NVP API client create_gw_dev_patcher = mock.patch.object( @@ -1046,7 +1044,7 @@ class TestNetworkGatewayPlugin(db_base_plugin_v2.NeutronDbPluginV2, def __init__(self, **args): super(TestNetworkGatewayPlugin, self).__init__(**args) - extensions.append_api_extensions_path([NSXEXT_PATH]) + extensions.append_api_extensions_path([vmware.NSXEXT_PATH]) def delete_port(self, context, id, nw_gw_port_check=True): if nw_gw_port_check: diff --git a/neutron/tests/unit/vmware/extensions/test_portsecurity.py b/neutron/tests/unit/vmware/extensions/test_portsecurity.py index 6d451a2396c..6b07b39c646 100644 --- a/neutron/tests/unit/vmware/extensions/test_portsecurity.py +++ b/neutron/tests/unit/vmware/extensions/test_portsecurity.py @@ -18,20 +18,18 @@ import mock from neutron.common import test_lib from neutron.plugins.vmware.common import sync from neutron.tests.unit import test_extension_portsecurity as psec +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.apiclient import fake -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import NSXAPI_NAME -from neutron.tests.unit.vmware import PLUGIN_NAME -from neutron.tests.unit.vmware import STUBS_PATH class PortSecurityTestCase(psec.PortSecurityDBTestCase): def setUp(self): - test_lib.test_config['config_files'] = [get_fake_conf('nsx.ini.test')] + test_lib.test_config['config_files'] = [ + vmware.get_fake_conf('nsx.ini.test')] # mock api client - self.fc = fake.FakeClient(STUBS_PATH) - self.mock_nsx = mock.patch(NSXAPI_NAME, autospec=True) + self.fc = fake.FakeClient(vmware.STUBS_PATH) + self.mock_nsx = mock.patch(vmware.NSXAPI_NAME, autospec=True) instance = self.mock_nsx.start() instance.return_value.login.return_value = "the_cookie" # Avoid runs of the synchronizer looping call @@ -39,7 +37,7 @@ class PortSecurityTestCase(psec.PortSecurityDBTestCase): patch_sync.start() instance.return_value.request.side_effect = self.fc.fake_request - super(PortSecurityTestCase, self).setUp(PLUGIN_NAME) + super(PortSecurityTestCase, self).setUp(vmware.PLUGIN_NAME) self.addCleanup(self.fc.reset_all) self.addCleanup(self.mock_nsx.stop) self.addCleanup(patch_sync.stop) diff --git a/neutron/tests/unit/vmware/extensions/test_providernet.py b/neutron/tests/unit/vmware/extensions/test_providernet.py index 96f27303831..7b187133707 100644 --- a/neutron/tests/unit/vmware/extensions/test_providernet.py +++ b/neutron/tests/unit/vmware/extensions/test_providernet.py @@ -17,11 +17,11 @@ from oslo.config import cfg from neutron.extensions import multiprovidernet as mpnet from neutron.extensions import providernet as pnet -from neutron.tests.unit.vmware import NSXEXT_PATH -from neutron.tests.unit.vmware.test_nsx_plugin import NsxPluginV2TestCase +from neutron.tests.unit import vmware +from neutron.tests.unit.vmware import test_nsx_plugin -class TestProvidernet(NsxPluginV2TestCase): +class TestProvidernet(test_nsx_plugin.NsxPluginV2TestCase): def test_create_provider_network_default_physical_net(self): data = {'network': {'name': 'net1', @@ -48,10 +48,10 @@ class TestProvidernet(NsxPluginV2TestCase): self.assertEqual(net['network'][pnet.PHYSICAL_NETWORK], 'physnet1') -class TestMultiProviderNetworks(NsxPluginV2TestCase): +class TestMultiProviderNetworks(test_nsx_plugin.NsxPluginV2TestCase): def setUp(self, plugin=None): - cfg.CONF.set_override('api_extensions_path', NSXEXT_PATH) + cfg.CONF.set_override('api_extensions_path', vmware.NSXEXT_PATH) super(TestMultiProviderNetworks, self).setUp() def test_create_network_provider(self): diff --git a/neutron/tests/unit/vmware/extensions/test_qosqueues.py b/neutron/tests/unit/vmware/extensions/test_qosqueues.py index 0556a96e22f..417c4a1d667 100644 --- a/neutron/tests/unit/vmware/extensions/test_qosqueues.py +++ b/neutron/tests/unit/vmware/extensions/test_qosqueues.py @@ -24,8 +24,8 @@ from neutron.plugins.vmware.dbexts import qos_db from neutron.plugins.vmware.extensions import qos as ext_qos from neutron.plugins.vmware import nsxlib from neutron.tests.unit import test_extensions -from neutron.tests.unit.vmware import NSXEXT_PATH -from neutron.tests.unit.vmware.test_nsx_plugin import NsxPluginV2TestCase +from neutron.tests.unit import vmware +from neutron.tests.unit.vmware import test_nsx_plugin class QoSTestExtensionManager(object): @@ -40,10 +40,10 @@ class QoSTestExtensionManager(object): return [] -class TestQoSQueue(NsxPluginV2TestCase): +class TestQoSQueue(test_nsx_plugin.NsxPluginV2TestCase): def setUp(self, plugin=None): - cfg.CONF.set_override('api_extensions_path', NSXEXT_PATH) + cfg.CONF.set_override('api_extensions_path', vmware.NSXEXT_PATH) super(TestQoSQueue, self).setUp() ext_mgr = QoSTestExtensionManager() self.ext_api = test_extensions.setup_extensions_middleware(ext_mgr) diff --git a/neutron/tests/unit/vmware/nsxlib/base.py b/neutron/tests/unit/vmware/nsxlib/base.py index 16281b5ee96..8856c00c376 100644 --- a/neutron/tests/unit/vmware/nsxlib/base.py +++ b/neutron/tests/unit/vmware/nsxlib/base.py @@ -23,9 +23,8 @@ from neutron.plugins.vmware.common import config # noqa from neutron.plugins.vmware import nsx_cluster as cluster from neutron.tests import base from neutron.tests.unit import test_api_v2 +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.apiclient import fake -from neutron.tests.unit.vmware import NSXAPI_NAME -from neutron.tests.unit.vmware import STUBS_PATH _uuid = test_api_v2._uuid @@ -33,8 +32,8 @@ _uuid = test_api_v2._uuid class NsxlibTestCase(base.BaseTestCase): def setUp(self): - self.fc = fake.FakeClient(STUBS_PATH) - self.mock_nsxapi = mock.patch(NSXAPI_NAME, autospec=True) + self.fc = fake.FakeClient(vmware.STUBS_PATH) + self.mock_nsxapi = mock.patch(vmware.NSXAPI_NAME, autospec=True) instance = self.mock_nsxapi.start() instance.return_value.login.return_value = "the_cookie" fake_version = getattr(self, 'fake_version', "3.0") @@ -62,8 +61,8 @@ class NsxlibTestCase(base.BaseTestCase): class NsxlibNegativeBaseTestCase(base.BaseTestCase): def setUp(self): - self.fc = fake.FakeClient(STUBS_PATH) - self.mock_nsxapi = mock.patch(NSXAPI_NAME, autospec=True) + self.fc = fake.FakeClient(vmware.STUBS_PATH) + self.mock_nsxapi = mock.patch(vmware.NSXAPI_NAME, autospec=True) instance = self.mock_nsxapi.start() instance.return_value.login.return_value = "the_cookie" # Choose 3.0, but the version is irrelevant for the aim of diff --git a/neutron/tests/unit/vmware/nsxlib/test_router.py b/neutron/tests/unit/vmware/nsxlib/test_router.py index 8250efd52bc..5575f415825 100644 --- a/neutron/tests/unit/vmware/nsxlib/test_router.py +++ b/neutron/tests/unit/vmware/nsxlib/test_router.py @@ -21,7 +21,7 @@ from oslo.config import cfg from neutron.common import exceptions from neutron.openstack.common import uuidutils from neutron.plugins.vmware.api_client import exception as api_exc -from neutron.plugins.vmware.api_client.version import Version +from neutron.plugins.vmware.api_client import version as version_module from neutron.plugins.vmware.common import exceptions as nsx_exc from neutron.plugins.vmware.common import utils from neutron.plugins.vmware import nsxlib @@ -38,7 +38,7 @@ class TestNatRules(base.NsxlibTestCase): def _test_create_lrouter_dnat_rule(self, version): with mock.patch.object(self.fake_cluster.api_client, 'get_version', - new=lambda: Version(version)): + new=lambda: version_module.Version(version)): tenant_id = 'pippo' lrouter = routerlib.create_lrouter(self.fake_cluster, uuidutils.generate_uuid(), @@ -319,7 +319,7 @@ class TestLogicalRouters(base.NsxlibTestCase): def _create_lrouter(self, version, neutron_id=None, distributed=None): with mock.patch.object( self.fake_cluster.api_client, 'get_version', - return_value=Version(version)): + return_value=version_module.Version(version)): if not neutron_id: neutron_id = uuidutils.generate_uuid() lrouter = routerlib.create_lrouter( @@ -380,7 +380,7 @@ class TestLogicalRouters(base.NsxlibTestCase): with mock.patch.object(self.fake_cluster.api_client, 'get_version', - return_value=Version(version)): + return_value=version_module.Version(version)): with mock.patch.dict(routerlib.ROUTER_FUNC_DICT, foo_func_dict, clear=True): return routerlib.update_lrouter( @@ -769,7 +769,7 @@ class TestLogicalRouters(base.NsxlibTestCase): '10.0.0.1') with mock.patch.object(self.fake_cluster.api_client, 'get_version', - new=lambda: Version(version)): + new=lambda: version_module.Version(version)): routerlib.create_lrouter_snat_rule( self.fake_cluster, lrouter['uuid'], '10.0.0.2', '10.0.0.2', order=200, @@ -792,7 +792,7 @@ class TestLogicalRouters(base.NsxlibTestCase): '10.0.0.1') with mock.patch.object(self.fake_cluster.api_client, 'get_version', - return_value=Version(version)): + return_value=version_module.Version(version)): routerlib.create_lrouter_dnat_rule( self.fake_cluster, lrouter['uuid'], '192.168.0.2', order=200, dest_port=dest_port, @@ -838,7 +838,7 @@ class TestLogicalRouters(base.NsxlibTestCase): '10.0.0.1') with mock.patch.object(self.fake_cluster.api_client, 'get_version', - new=lambda: Version(version)): + new=lambda: version_module.Version(version)): routerlib.create_lrouter_nosnat_rule( self.fake_cluster, lrouter['uuid'], order=100, @@ -863,7 +863,7 @@ class TestLogicalRouters(base.NsxlibTestCase): # v2 or v3 makes no difference for this test with mock.patch.object(self.fake_cluster.api_client, 'get_version', - new=lambda: Version('2.0')): + new=lambda: version_module.Version('2.0')): routerlib.create_lrouter_snat_rule( self.fake_cluster, lrouter['uuid'], '10.0.0.2', '10.0.0.2', order=220, diff --git a/neutron/tests/unit/vmware/nsxlib/test_versioning.py b/neutron/tests/unit/vmware/nsxlib/test_versioning.py index 8a006a5f21b..a50f94283b2 100644 --- a/neutron/tests/unit/vmware/nsxlib/test_versioning.py +++ b/neutron/tests/unit/vmware/nsxlib/test_versioning.py @@ -15,7 +15,7 @@ # from neutron.plugins.vmware.api_client import exception -from neutron.plugins.vmware.api_client.version import Version +from neutron.plugins.vmware.api_client import version as version_module from neutron.plugins.vmware.nsxlib import router as routerlib from neutron.plugins.vmware.nsxlib import versioning from neutron.tests import base @@ -24,28 +24,28 @@ from neutron.tests import base class TestVersioning(base.BaseTestCase): def test_function_handling_missing_minor(self): - version = Version('2.0') + version = version_module.Version('2.0') function = versioning.get_function_by_version( routerlib.ROUTER_FUNC_DICT, 'create_lrouter', version) self.assertEqual(routerlib.create_implicit_routing_lrouter, function) def test_function_handling_with_both_major_and_minor(self): - version = Version('3.2') + version = version_module.Version('3.2') function = versioning.get_function_by_version( routerlib.ROUTER_FUNC_DICT, 'create_lrouter', version) self.assertEqual(routerlib.create_explicit_routing_lrouter, function) def test_function_handling_with_newer_major(self): - version = Version('5.2') + version = version_module.Version('5.2') function = versioning.get_function_by_version( routerlib.ROUTER_FUNC_DICT, 'create_lrouter', version) self.assertEqual(routerlib.create_explicit_routing_lrouter, function) def test_function_handling_with_obsolete_major(self): - version = Version('1.2') + version = version_module.Version('1.2') self.assertRaises(NotImplementedError, versioning.get_function_by_version, routerlib.ROUTER_FUNC_DICT, diff --git a/neutron/tests/unit/vmware/test_agent_scheduler.py b/neutron/tests/unit/vmware/test_agent_scheduler.py index a33dfd99696..25665aaeef9 100644 --- a/neutron/tests/unit/vmware/test_agent_scheduler.py +++ b/neutron/tests/unit/vmware/test_agent_scheduler.py @@ -17,26 +17,24 @@ import mock from oslo.config import cfg from neutron.common import constants -from neutron.common.test_lib import test_config +from neutron.common import test_lib from neutron.plugins.vmware.common import sync from neutron.plugins.vmware.dhcp_meta import rpc from neutron.tests.unit.openvswitch import test_agent_scheduler as test_base +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.apiclient import fake -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import NSXAPI_NAME -from neutron.tests.unit.vmware import PLUGIN_NAME -from neutron.tests.unit.vmware import STUBS_PATH class DhcpAgentNotifierTestCase(test_base.OvsDhcpAgentNotifierTestCase): - plugin_str = PLUGIN_NAME + plugin_str = vmware.PLUGIN_NAME def setUp(self): - test_config['config_files'] = [get_fake_conf('nsx.ini.full.test')] + test_lib.test_config['config_files'] = [ + vmware.get_fake_conf('nsx.ini.full.test')] # mock api client - self.fc = fake.FakeClient(STUBS_PATH) - self.mock_nsx_api = mock.patch(NSXAPI_NAME, autospec=True) + self.fc = fake.FakeClient(vmware.STUBS_PATH) + self.mock_nsx_api = mock.patch(vmware.NSXAPI_NAME, autospec=True) instance = self.mock_nsx_api.start() # Avoid runs of the synchronizer looping call patch_sync = mock.patch.object(sync, '_start_loopingcall') diff --git a/neutron/tests/unit/vmware/test_dhcpmeta.py b/neutron/tests/unit/vmware/test_dhcpmeta.py index 31cb01da825..a2a43347a95 100644 --- a/neutron/tests/unit/vmware/test_dhcpmeta.py +++ b/neutron/tests/unit/vmware/test_dhcpmeta.py @@ -21,7 +21,7 @@ from neutron.common import constants as n_consts from neutron.common import exceptions as n_exc from neutron import context from neutron.db import api as db -from neutron.plugins.vmware.api_client.exception import NsxApiException +from neutron.plugins.vmware.api_client import exception from neutron.plugins.vmware.common import exceptions as p_exc from neutron.plugins.vmware.dbexts import lsn_db from neutron.plugins.vmware.dhcp_meta import constants @@ -290,7 +290,7 @@ class LsnManagerTestCase(base.BaseTestCase): self._test_lsn_get_raise_not_found_with_exc(n_exc.NotFound) def test_lsn_get_raise_not_found_with_api_error(self): - self._test_lsn_get_raise_not_found_with_exc(NsxApiException) + self._test_lsn_get_raise_not_found_with_exc(exception.NsxApiException) def _test_lsn_get_silent_raise_with_exc(self, exc): self.mock_lsn_api.lsn_for_network_get.side_effect = exc @@ -304,7 +304,7 @@ class LsnManagerTestCase(base.BaseTestCase): self._test_lsn_get_silent_raise_with_exc(n_exc.NotFound) def test_lsn_get_silent_raise_with_api_error(self): - self._test_lsn_get_silent_raise_with_exc(NsxApiException) + self._test_lsn_get_silent_raise_with_exc(exception.NsxApiException) def test_lsn_create(self): self.mock_lsn_api.lsn_for_network_create.return_value = self.lsn_id @@ -313,7 +313,8 @@ class LsnManagerTestCase(base.BaseTestCase): mock.ANY, self.net_id) def test_lsn_create_raise_api_error(self): - self.mock_lsn_api.lsn_for_network_create.side_effect = NsxApiException + self.mock_lsn_api.lsn_for_network_create.side_effect = ( + exception.NsxApiException) self.assertRaises(p_exc.NsxPluginException, self.manager.lsn_create, mock.ANY, self.net_id) @@ -335,7 +336,7 @@ class LsnManagerTestCase(base.BaseTestCase): self._test_lsn_delete_with_exc(n_exc.NotFound) def test_lsn_delete_api_exception(self): - self._test_lsn_delete_with_exc(NsxApiException) + self._test_lsn_delete_with_exc(exception.NsxApiException) def test_lsn_delete_by_network(self): self.mock_lsn_api.lsn_for_network_get.return_value = self.lsn_id @@ -355,7 +356,7 @@ class LsnManagerTestCase(base.BaseTestCase): self._test_lsn_delete_by_network_with_exc(n_exc.NotFound) def test_lsn_delete_by_network_with_not_api_error(self): - self._test_lsn_delete_by_network_with_exc(NsxApiException) + self._test_lsn_delete_by_network_with_exc(exception.NsxApiException) def test_lsn_port_get(self): self.mock_lsn_api.lsn_port_by_subnet_get.return_value = ( @@ -412,7 +413,7 @@ class LsnManagerTestCase(base.BaseTestCase): self._test_lsn_port_create_with_exc(n_exc.NotFound, p_exc.LsnNotFound) def test_lsn_port_create_api_exception(self): - self._test_lsn_port_create_with_exc(NsxApiException, + self._test_lsn_port_create_with_exc(exception.NsxApiException, p_exc.NsxPluginException) def test_lsn_port_delete(self): @@ -430,7 +431,7 @@ class LsnManagerTestCase(base.BaseTestCase): self._test_lsn_port_delete_with_exc(n_exc.NotFound) def test_lsn_port_delete_api_exception(self): - self._test_lsn_port_delete_with_exc(NsxApiException) + self._test_lsn_port_delete_with_exc(exception.NsxApiException) def _test_lsn_port_dhcp_setup(self, ret_val, sub): self.mock_nsx_utils.get_nsx_switch_ids.return_value = [self.switch_id] @@ -639,7 +640,8 @@ class LsnManagerTestCase(base.BaseTestCase): self._test_lsn_port_dispose_with_values(self.lsn_id, None, 0) def test_lsn_port_dispose_api_error(self): - self.mock_lsn_api.lsn_port_delete.side_effect = NsxApiException + self.mock_lsn_api.lsn_port_delete.side_effect = ( + exception.NsxApiException) with mock.patch.object(lsn_man.LOG, 'warn') as l: self.manager.lsn_port_dispose(mock.ANY, self.net_id, self.mac) self.assertEqual(1, l.call_count) @@ -686,7 +688,7 @@ class LsnManagerTestCase(base.BaseTestCase): def test_lsn_port_update_raise_error(self): self.mock_lsn_api.lsn_port_host_entries_update.side_effect = ( - NsxApiException) + exception.NsxApiException) self.assertRaises(p_exc.PortConfigurationError, self.manager.lsn_port_update, mock.ANY, mock.ANY, mock.ANY, mock.ANY) diff --git a/neutron/tests/unit/vmware/test_nsx_opts.py b/neutron/tests/unit/vmware/test_nsx_opts.py index 6897ab95eed..5dd105e0577 100644 --- a/neutron/tests/unit/vmware/test_nsx_opts.py +++ b/neutron/tests/unit/vmware/test_nsx_opts.py @@ -18,7 +18,7 @@ import fixtures import mock from oslo.config import cfg -from neutron.manager import NeutronManager +from neutron import manager from neutron.openstack.common import uuidutils from neutron.plugins.vmware.api_client import client from neutron.plugins.vmware.api_client import version @@ -28,14 +28,13 @@ from neutron.plugins.vmware.common import sync from neutron.plugins.vmware import nsx_cluster from neutron.plugins.vmware.nsxlib import lsn as lsnlib from neutron.tests import base -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import PLUGIN_NAME +from neutron.tests.unit import vmware -BASE_CONF_PATH = get_fake_conf('neutron.conf.test') -NSX_INI_PATH = get_fake_conf('nsx.ini.basic.test') -NSX_INI_FULL_PATH = get_fake_conf('nsx.ini.full.test') -NSX_INI_AGENTLESS_PATH = get_fake_conf('nsx.ini.agentless.test') -NVP_INI_DEPR_PATH = get_fake_conf('nvp.ini.full.test') +BASE_CONF_PATH = vmware.get_fake_conf('neutron.conf.test') +NSX_INI_PATH = vmware.get_fake_conf('nsx.ini.basic.test') +NSX_INI_FULL_PATH = vmware.get_fake_conf('nsx.ini.full.test') +NSX_INI_AGENTLESS_PATH = vmware.get_fake_conf('nsx.ini.agentless.test') +NVP_INI_DEPR_PATH = vmware.get_fake_conf('nvp.ini.full.test') class NSXClusterTest(base.BaseTestCase): @@ -100,8 +99,8 @@ class ConfigurationTest(base.BaseTestCase): def test_load_plugin_with_full_options(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, '--config-file', NSX_INI_FULL_PATH]) - cfg.CONF.set_override('core_plugin', PLUGIN_NAME) - plugin = NeutronManager().get_plugin() + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) + plugin = manager.NeutronManager().get_plugin() cluster = plugin.cluster self._assert_required_options(cluster) self._assert_extra_options(cluster) @@ -109,8 +108,8 @@ class ConfigurationTest(base.BaseTestCase): def test_load_plugin_with_required_options_only(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, '--config-file', NSX_INI_PATH]) - cfg.CONF.set_override('core_plugin', PLUGIN_NAME) - plugin = NeutronManager().get_plugin() + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) + plugin = manager.NeutronManager().get_plugin() self._assert_required_options(plugin.cluster) def test_defaults(self): @@ -136,15 +135,15 @@ class ConfigurationTest(base.BaseTestCase): def test_load_api_extensions(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, '--config-file', NSX_INI_FULL_PATH]) - cfg.CONF.set_override('core_plugin', PLUGIN_NAME) + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) # Load the configuration, and initialize the plugin - NeutronManager().get_plugin() + manager.NeutronManager().get_plugin() self.assertIn('extensions', cfg.CONF.api_extensions_path) def test_agentless_extensions(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, '--config-file', NSX_INI_AGENTLESS_PATH]) - cfg.CONF.set_override('core_plugin', PLUGIN_NAME) + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) self.assertEqual(config.AgentModes.AGENTLESS, cfg.CONF.NSX.agent_mode) # The version returned from NSX does not really matter here @@ -154,7 +153,7 @@ class ConfigurationTest(base.BaseTestCase): with mock.patch.object(lsnlib, 'service_cluster_exists', return_value=True): - plugin = NeutronManager().get_plugin() + plugin = manager.NeutronManager().get_plugin() self.assertNotIn('agent', plugin.supported_extension_aliases) self.assertNotIn('dhcp_agent_scheduler', @@ -163,18 +162,19 @@ class ConfigurationTest(base.BaseTestCase): def test_agentless_extensions_version_fail(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, '--config-file', NSX_INI_AGENTLESS_PATH]) - cfg.CONF.set_override('core_plugin', PLUGIN_NAME) + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) self.assertEqual(config.AgentModes.AGENTLESS, cfg.CONF.NSX.agent_mode) with mock.patch.object(client.NsxApiClient, 'get_version', return_value=version.Version("3.2")): - self.assertRaises(exceptions.NsxPluginException, NeutronManager) + self.assertRaises(exceptions.NsxPluginException, + manager.NeutronManager) def test_agentless_extensions_unmet_deps_fail(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, '--config-file', NSX_INI_AGENTLESS_PATH]) - cfg.CONF.set_override('core_plugin', PLUGIN_NAME) + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) self.assertEqual(config.AgentModes.AGENTLESS, cfg.CONF.NSX.agent_mode) with mock.patch.object(client.NsxApiClient, @@ -184,15 +184,15 @@ class ConfigurationTest(base.BaseTestCase): 'service_cluster_exists', return_value=False): self.assertRaises(exceptions.NsxPluginException, - NeutronManager) + manager.NeutronManager) def test_agent_extensions(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, '--config-file', NSX_INI_FULL_PATH]) - cfg.CONF.set_override('core_plugin', PLUGIN_NAME) + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) self.assertEqual(config.AgentModes.AGENT, cfg.CONF.NSX.agent_mode) - plugin = NeutronManager().get_plugin() + plugin = manager.NeutronManager().get_plugin() self.assertIn('agent', plugin.supported_extension_aliases) self.assertIn('dhcp_agent_scheduler', @@ -219,8 +219,8 @@ class OldNVPConfigurationTest(base.BaseTestCase): def test_load_plugin_with_deprecated_options(self): self.config_parse(args=['--config-file', BASE_CONF_PATH, '--config-file', NVP_INI_DEPR_PATH]) - cfg.CONF.set_override('core_plugin', PLUGIN_NAME) - plugin = NeutronManager().get_plugin() + cfg.CONF.set_override('core_plugin', vmware.PLUGIN_NAME) + plugin = manager.NeutronManager().get_plugin() cluster = plugin.cluster # Verify old nvp_* params have been fully parsed self._assert_required_options(cluster) diff --git a/neutron/tests/unit/vmware/test_nsx_plugin.py b/neutron/tests/unit/vmware/test_nsx_plugin.py index 380c75ef219..f80c1cffb1e 100644 --- a/neutron/tests/unit/vmware/test_nsx_plugin.py +++ b/neutron/tests/unit/vmware/test_nsx_plugin.py @@ -33,30 +33,25 @@ from neutron.extensions import portbindings from neutron.extensions import providernet as pnet from neutron.extensions import securitygroup as secgrp from neutron import manager -from neutron.manager import NeutronManager from neutron.openstack.common.db import exception as db_exc from neutron.openstack.common import log from neutron.openstack.common import uuidutils from neutron.plugins.vmware.api_client import exception as api_exc -from neutron.plugins.vmware.api_client.version import Version +from neutron.plugins.vmware.api_client import version as version_module from neutron.plugins.vmware.common import exceptions as nsx_exc from neutron.plugins.vmware.common import sync from neutron.plugins.vmware.dbexts import db as nsx_db from neutron.plugins.vmware.extensions import distributedrouter as dist_router from neutron.plugins.vmware import nsxlib -from neutron.plugins.vmware.plugins.base import NetworkTypes +from neutron.plugins.vmware.plugins import base from neutron.tests.unit import _test_extension_portbindings as test_bindings import neutron.tests.unit.test_db_plugin as test_plugin import neutron.tests.unit.test_extension_ext_gw_mode as test_ext_gw_mode import neutron.tests.unit.test_extension_security_group as ext_sg import neutron.tests.unit.test_l3_plugin as test_l3_plugin from neutron.tests.unit import testlib_api +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.apiclient import fake -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import NSXAPI_NAME -from neutron.tests.unit.vmware import NSXEXT_PATH -from neutron.tests.unit.vmware import PLUGIN_NAME -from neutron.tests.unit.vmware import STUBS_PATH LOG = log.getLogger(__name__) @@ -91,13 +86,14 @@ class NsxPluginV2TestCase(test_plugin.NeutronDbPluginV2TestCase): return network_req.get_response(self.api) def setUp(self, - plugin=PLUGIN_NAME, + plugin=vmware.PLUGIN_NAME, ext_mgr=None, service_plugins=None): - test_lib.test_config['config_files'] = [get_fake_conf('nsx.ini.test')] + test_lib.test_config['config_files'] = [ + vmware.get_fake_conf('nsx.ini.test')] # mock api client - self.fc = fake.FakeClient(STUBS_PATH) - self.mock_nsx = mock.patch(NSXAPI_NAME, autospec=True) + self.fc = fake.FakeClient(vmware.STUBS_PATH) + self.mock_nsx = mock.patch(vmware.NSXAPI_NAME, autospec=True) self.mock_instance = self.mock_nsx.start() # Avoid runs of the synchronizer looping call patch_sync = mock.patch.object(sync, '_start_loopingcall') @@ -105,7 +101,7 @@ class NsxPluginV2TestCase(test_plugin.NeutronDbPluginV2TestCase): # Emulate tests against NSX 2.x self.mock_instance.return_value.get_version.return_value = ( - Version("2.9")) + version_module.Version("2.9")) self.mock_instance.return_value.request.side_effect = ( self.fc.fake_request) super(NsxPluginV2TestCase, self).setUp(plugin=plugin, @@ -346,10 +342,11 @@ class TestNetworksV2(test_plugin.TestNetworksV2, NsxPluginV2TestCase): class SecurityGroupsTestCase(ext_sg.SecurityGroupDBTestCase): def setUp(self): - test_lib.test_config['config_files'] = [get_fake_conf('nsx.ini.test')] + test_lib.test_config['config_files'] = [ + vmware.get_fake_conf('nsx.ini.test')] # mock nsx api client - self.fc = fake.FakeClient(STUBS_PATH) - self.mock_nsx = mock.patch(NSXAPI_NAME, autospec=True) + self.fc = fake.FakeClient(vmware.STUBS_PATH) + self.mock_nsx = mock.patch(vmware.NSXAPI_NAME, autospec=True) instance = self.mock_nsx.start() instance.return_value.login.return_value = "the_cookie" # Avoid runs of the synchronizer looping call @@ -357,7 +354,7 @@ class SecurityGroupsTestCase(ext_sg.SecurityGroupDBTestCase): patch_sync.start() instance.return_value.request.side_effect = self.fc.fake_request - super(SecurityGroupsTestCase, self).setUp(PLUGIN_NAME) + super(SecurityGroupsTestCase, self).setUp(vmware.PLUGIN_NAME) class TestSecurityGroup(ext_sg.TestSecurityGroups, SecurityGroupsTestCase): @@ -442,18 +439,19 @@ class L3NatTest(test_l3_plugin.L3BaseForIntTests, NsxPluginV2TestCase): def _restore_l3_attribute_map(self): l3.RESOURCE_ATTRIBUTE_MAP = self._l3_attribute_map_bk - def setUp(self, plugin=PLUGIN_NAME, ext_mgr=None, service_plugins=None): + def setUp(self, plugin=vmware.PLUGIN_NAME, ext_mgr=None, + service_plugins=None): self._l3_attribute_map_bk = {} for item in l3.RESOURCE_ATTRIBUTE_MAP: self._l3_attribute_map_bk[item] = ( l3.RESOURCE_ATTRIBUTE_MAP[item].copy()) - cfg.CONF.set_override('api_extensions_path', NSXEXT_PATH) + cfg.CONF.set_override('api_extensions_path', vmware.NSXEXT_PATH) l3_attribute_map_bk = backup_l3_attribute_map() self.addCleanup(restore_l3_attribute_map, l3_attribute_map_bk) ext_mgr = ext_mgr or TestL3ExtensionManager() super(L3NatTest, self).setUp( plugin=plugin, ext_mgr=ext_mgr, service_plugins=service_plugins) - plugin_instance = NeutronManager.get_plugin() + plugin_instance = manager.NeutronManager.get_plugin() self._plugin_name = "%s.%s" % ( plugin_instance.__module__, plugin_instance.__class__.__name__) @@ -461,7 +459,7 @@ class L3NatTest(test_l3_plugin.L3BaseForIntTests, NsxPluginV2TestCase): def _create_l3_ext_network(self, vlan_id=None): name = 'l3_ext_net' - net_type = NetworkTypes.L3_EXT + net_type = base.NetworkTypes.L3_EXT providernet_args = {pnet.NETWORK_TYPE: net_type, pnet.PHYSICAL_NETWORK: 'l3_gw_uuid'} if vlan_id: @@ -480,7 +478,7 @@ class TestL3NatTestCase(L3NatTest, def _test_create_l3_ext_network(self, vlan_id=None): name = 'l3_ext_net' - net_type = NetworkTypes.L3_EXT + net_type = base.NetworkTypes.L3_EXT expected = [('subnets', []), ('name', name), ('admin_state_up', True), ('status', 'ACTIVE'), ('shared', False), (external_net.EXTERNAL, True), @@ -540,7 +538,7 @@ class TestL3NatTestCase(L3NatTest, def _test_router_create_with_distributed(self, dist_input, dist_expected, version='3.1', return_code=201): self.mock_instance.return_value.get_version.return_value = ( - Version(version)) + version_module.Version(version)) data = {'tenant_id': 'whatever'} data['name'] = 'router1' diff --git a/neutron/tests/unit/vmware/test_nsx_sync.py b/neutron/tests/unit/vmware/test_nsx_sync.py index 1b847ffd3f4..67c2fdd440b 100644 --- a/neutron/tests/unit/vmware/test_nsx_sync.py +++ b/neutron/tests/unit/vmware/test_nsx_sync.py @@ -37,10 +37,8 @@ from neutron.plugins.vmware import nsxlib from neutron.plugins.vmware import plugin from neutron.tests import base from neutron.tests.unit import test_api_v2 +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.apiclient import fake -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import NSXAPI_NAME -from neutron.tests.unit.vmware import STUBS_PATH LOG = log.getLogger(__name__) @@ -259,8 +257,8 @@ class SyncTestCase(base.BaseTestCase): def setUp(self): # mock api client - self.fc = fake.FakeClient(STUBS_PATH) - mock_api = mock.patch(NSXAPI_NAME, autospec=True) + self.fc = fake.FakeClient(vmware.STUBS_PATH) + mock_api = mock.patch(vmware.NSXAPI_NAME, autospec=True) # Avoid runs of the synchronizer looping call # These unit tests will excplicitly invoke synchronization patch_sync = mock.patch.object(sync, '_start_loopingcall') @@ -284,8 +282,8 @@ class SyncTestCase(base.BaseTestCase): redirects=self.fake_cluster.redirects) # Instantiate Neutron plugin # and setup needed config variables - args = ['--config-file', get_fake_conf('neutron.conf.test'), - '--config-file', get_fake_conf('nsx.ini.test')] + args = ['--config-file', vmware.get_fake_conf('neutron.conf.test'), + '--config-file', vmware.get_fake_conf('nsx.ini.test')] self.config_parse(args=args) cfg.CONF.set_override('allow_overlapping_ips', True) self._plugin = plugin.NsxPlugin() diff --git a/neutron/tests/unit/vmware/test_nsx_utils.py b/neutron/tests/unit/vmware/test_nsx_utils.py index d5c66cfc35a..2144154ab34 100644 --- a/neutron/tests/unit/vmware/test_nsx_utils.py +++ b/neutron/tests/unit/vmware/test_nsx_utils.py @@ -23,7 +23,7 @@ from neutron.plugins.vmware.common import nsx_utils from neutron.plugins.vmware.common import utils from neutron.plugins.vmware import nsxlib from neutron.tests import base -from neutron.tests.unit.vmware import nsx_method +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.nsxlib import base as nsx_base @@ -33,33 +33,33 @@ class NsxUtilsTestCase(base.BaseTestCase): # Mock relevant db calls # This will allow for avoiding setting up the plugin # for creating db entries - mock.patch(nsx_method('get_nsx_switch_and_port_id', - module_name='dbexts.db'), + mock.patch(vmware.nsx_method('get_nsx_switch_and_port_id', + module_name='dbexts.db'), return_value=ret_value).start() - mock.patch(nsx_method('add_neutron_nsx_port_mapping', - module_name='dbexts.db')).start() - mock.patch(nsx_method('delete_neutron_nsx_port_mapping', - module_name='dbexts.db')).start() + mock.patch(vmware.nsx_method('add_neutron_nsx_port_mapping', + module_name='dbexts.db')).start() + mock.patch(vmware.nsx_method('delete_neutron_nsx_port_mapping', + module_name='dbexts.db')).start() def _mock_network_mapping_db_calls(self, ret_value): # Mock relevant db calls # This will allow for avoiding setting up the plugin # for creating db entries - mock.patch(nsx_method('get_nsx_switch_ids', - module_name='dbexts.db'), + mock.patch(vmware.nsx_method('get_nsx_switch_ids', + module_name='dbexts.db'), return_value=ret_value).start() - mock.patch(nsx_method('add_neutron_nsx_network_mapping', - module_name='dbexts.db')).start() + mock.patch(vmware.nsx_method('add_neutron_nsx_network_mapping', + module_name='dbexts.db')).start() def _mock_router_mapping_db_calls(self, ret_value): # Mock relevant db calls # This will allow for avoiding setting up the plugin # for creating db entries - mock.patch(nsx_method('get_nsx_router_id', - module_name='dbexts.db'), + mock.patch(vmware.nsx_method('get_nsx_router_id', + module_name='dbexts.db'), return_value=ret_value).start() - mock.patch(nsx_method('add_neutron_nsx_router_mapping', - module_name='dbexts.db')).start() + mock.patch(vmware.nsx_method('add_neutron_nsx_router_mapping', + module_name='dbexts.db')).start() def _verify_get_nsx_switch_and_port_id(self, exp_ls_uuid, exp_lp_uuid): # The nsxlib and db calls are mocked, therefore the cluster @@ -101,8 +101,8 @@ class NsxUtilsTestCase(base.BaseTestCase): exp_lp_uuid = uuidutils.generate_uuid() ret_value = None, exp_lp_uuid self._mock_port_mapping_db_calls(ret_value) - with mock.patch(nsx_method('query_lswitch_lports', - module_name='nsxlib.switch'), + with mock.patch(vmware.nsx_method('query_lswitch_lports', + module_name='nsxlib.switch'), return_value=[{'uuid': exp_lp_uuid, '_relations': { 'LogicalSwitchConfig': { @@ -117,8 +117,8 @@ class NsxUtilsTestCase(base.BaseTestCase): exp_lp_uuid = uuidutils.generate_uuid() ret_value = None, None self._mock_port_mapping_db_calls(ret_value) - with mock.patch(nsx_method('query_lswitch_lports', - module_name='nsxlib.switch'), + with mock.patch(vmware.nsx_method('query_lswitch_lports', + module_name='nsxlib.switch'), return_value=[{'uuid': exp_lp_uuid, '_relations': { 'LogicalSwitchConfig': { @@ -131,8 +131,8 @@ class NsxUtilsTestCase(base.BaseTestCase): # mappings are not found both in the db and the backend ret_value = None, None self._mock_port_mapping_db_calls(ret_value) - with mock.patch(nsx_method('query_lswitch_lports', - module_name='nsxlib.switch'), + with mock.patch(vmware.nsx_method('query_lswitch_lports', + module_name='nsxlib.switch'), return_value=[]): self._verify_get_nsx_switch_and_port_id(None, None) @@ -148,8 +148,8 @@ class NsxUtilsTestCase(base.BaseTestCase): # found for a given network identifier exp_ls_uuids = [uuidutils.generate_uuid()] self._mock_network_mapping_db_calls(None) - with mock.patch(nsx_method('get_lswitches', - module_name='nsxlib.switch'), + with mock.patch(vmware.nsx_method('get_lswitches', + module_name='nsxlib.switch'), return_value=[{'uuid': uuid} for uuid in exp_ls_uuids]): self._verify_get_nsx_switch_ids(exp_ls_uuids) @@ -158,8 +158,8 @@ class NsxUtilsTestCase(base.BaseTestCase): # This test verifies that the function returns None if the mappings # are not found both in the db and in the backend self._mock_network_mapping_db_calls(None) - with mock.patch(nsx_method('get_lswitches', - module_name='nsxlib.switch'), + with mock.patch(vmware.nsx_method('get_lswitches', + module_name='nsxlib.switch'), return_value=[]): self._verify_get_nsx_switch_ids(None) @@ -175,8 +175,8 @@ class NsxUtilsTestCase(base.BaseTestCase): # found for a given port identifier exp_lr_uuid = uuidutils.generate_uuid() self._mock_router_mapping_db_calls(None) - with mock.patch(nsx_method('query_lrouters', - module_name='nsxlib.router'), + with mock.patch(vmware.nsx_method('query_lrouters', + module_name='nsxlib.router'), return_value=[{'uuid': exp_lr_uuid}]): self._verify_get_nsx_router_id(exp_lr_uuid) @@ -184,8 +184,8 @@ class NsxUtilsTestCase(base.BaseTestCase): # This test verifies that the function returns None if the mapping # are not found both in the db and in the backend self._mock_router_mapping_db_calls(None) - with mock.patch(nsx_method('query_lrouters', - module_name='nsxlib.router'), + with mock.patch(vmware.nsx_method('query_lrouters', + module_name='nsxlib.router'), return_value=[]): self._verify_get_nsx_router_id(None) @@ -267,11 +267,11 @@ class NsxUtilsTestCase(base.BaseTestCase): self.assertEqual(expected, result) def _mock_sec_group_mapping_db_calls(self, ret_value): - mock.patch(nsx_method('get_nsx_security_group_id', - module_name='dbexts.db'), + mock.patch(vmware.nsx_method('get_nsx_security_group_id', + module_name='dbexts.db'), return_value=ret_value).start() - mock.patch(nsx_method('add_neutron_nsx_security_group_mapping', - module_name='dbexts.db')).start() + mock.patch(vmware.nsx_method('add_neutron_nsx_security_group_mapping', + module_name='dbexts.db')).start() def _verify_get_nsx_sec_profile_id(self, exp_sec_prof_uuid): # The nsxlib and db calls are mocked, therefore the cluster @@ -292,8 +292,8 @@ class NsxUtilsTestCase(base.BaseTestCase): # found for a given security profile identifier exp_sec_prof_uuid = uuidutils.generate_uuid() self._mock_sec_group_mapping_db_calls(None) - with mock.patch(nsx_method('query_security_profiles', - module_name='nsxlib.secgroup'), + with mock.patch(vmware.nsx_method('query_security_profiles', + module_name='nsxlib.secgroup'), return_value=[{'uuid': exp_sec_prof_uuid}]): self._verify_get_nsx_sec_profile_id(exp_sec_prof_uuid) @@ -301,8 +301,8 @@ class NsxUtilsTestCase(base.BaseTestCase): # This test verifies that the function returns None if the mapping # are not found both in the db and in the backend self._mock_sec_group_mapping_db_calls(None) - with mock.patch(nsx_method('query_security_profiles', - module_name='nsxlib.secgroup'), + with mock.patch(vmware.nsx_method('query_security_profiles', + module_name='nsxlib.secgroup'), return_value=[]): self._verify_get_nsx_sec_profile_id(None) diff --git a/neutron/tests/unit/vmware/vshield/test_edge_router.py b/neutron/tests/unit/vmware/vshield/test_edge_router.py index fbda9f4599d..c43e9b34ba2 100644 --- a/neutron/tests/unit/vmware/vshield/test_edge_router.py +++ b/neutron/tests/unit/vmware/vshield/test_edge_router.py @@ -22,16 +22,14 @@ from oslo.config import cfg from neutron.api.v2 import attributes from neutron import context from neutron.extensions import l3 -from neutron.manager import NeutronManager +from neutron import manager as n_manager from neutron.openstack.common import uuidutils from neutron.plugins.vmware.common import utils from neutron.plugins.vmware.plugins import service as nsp from neutron.tests import base from neutron.tests.unit import test_l3_plugin -from neutron.tests.unit.vmware import NSXEXT_PATH -from neutron.tests.unit.vmware import SERVICE_PLUGIN_NAME +from neutron.tests.unit import vmware from neutron.tests.unit.vmware import test_nsx_plugin -from neutron.tests.unit.vmware import VCNS_NAME from neutron.tests.unit.vmware.vshield import fake_vcns _uuid = uuidutils.generate_uuid @@ -95,21 +93,22 @@ class ServiceRouterTest(test_nsx_plugin.L3NatTest, self.fc2.enable_service_loadbalancer) def setUp(self, ext_mgr=None, service_plugins=None): - cfg.CONF.set_override('api_extensions_path', NSXEXT_PATH) + cfg.CONF.set_override('api_extensions_path', vmware.NSXEXT_PATH) cfg.CONF.set_override('task_status_check_interval', 200, group="vcns") # vcns does not support duplicated router name, ignore router name # validation for unit-test cases self.fc2 = fake_vcns.FakeVcns(unique_router_name=False) - self.mock_vcns = mock.patch(VCNS_NAME, autospec=True) + self.mock_vcns = mock.patch(vmware.VCNS_NAME, autospec=True) self.vcns_patch() mock_proxy = mock.patch( - "%s.%s" % (SERVICE_PLUGIN_NAME, '_set_create_lswitch_proxy')) + "%s.%s" % (vmware.SERVICE_PLUGIN_NAME, + '_set_create_lswitch_proxy')) mock_proxy.start() ext_mgr = ext_mgr or ServiceRouterTestExtensionManager() super(ServiceRouterTest, self).setUp( - plugin=SERVICE_PLUGIN_NAME, + plugin=vmware.SERVICE_PLUGIN_NAME, service_plugins=service_plugins, ext_mgr=ext_mgr) @@ -117,7 +116,7 @@ class ServiceRouterTest(test_nsx_plugin.L3NatTest, self.addCleanup(self.fc2.reset_all) def tearDown(self): - plugin = NeutronManager.get_plugin() + plugin = n_manager.NeutronManager.get_plugin() manager = plugin.vcns_driver.task_manager # wait max ~10 seconds for all tasks to be finished for i in range(100): @@ -200,7 +199,7 @@ class ServiceRouterTestCase(ServiceRouterTest, with self.router(name=name, admin_state_up=True, tenant_id=tenant_id): # clear router type cache to mimic plugin restart - plugin = NeutronManager.get_plugin() + plugin = n_manager.NeutronManager.get_plugin() plugin._router_type = {} # check an integration lswitch is deleted diff --git a/neutron/tests/unit/vmware/vshield/test_firewall_driver.py b/neutron/tests/unit/vmware/vshield/test_firewall_driver.py index e27637b0789..0002ab97dc3 100644 --- a/neutron/tests/unit/vmware/vshield/test_firewall_driver.py +++ b/neutron/tests/unit/vmware/vshield/test_firewall_driver.py @@ -23,8 +23,7 @@ from neutron.openstack.common import uuidutils from neutron.plugins.vmware.vshield.common import exceptions as vcns_exc from neutron.plugins.vmware.vshield import vcns_driver from neutron.tests.unit.db.firewall import test_db_firewall -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import VCNS_NAME +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.vshield import fake_vcns @@ -33,7 +32,7 @@ _uuid = uuidutils.generate_uuid VSE_ID = 'edge-1' ROUTER_ID = '42f95450-5cc9-44e4-a744-1320e592a9d5' -VCNS_CONFIG_FILE = get_fake_conf("vcns.ini.test") +VCNS_CONFIG_FILE = vmware.get_fake_conf("vcns.ini.test") class VcnsDriverTestCase(test_db_firewall.FirewallPluginDbTestCase, @@ -63,7 +62,7 @@ class VcnsDriverTestCase(test_db_firewall.FirewallPluginDbTestCase, self.config_parse(args=['--config-file', VCNS_CONFIG_FILE]) # mock vcns self.fc2 = fake_vcns.FakeVcns(unique_router_name=False) - self.mock_vcns = mock.patch(VCNS_NAME, autospec=True) + self.mock_vcns = mock.patch(vmware.VCNS_NAME, autospec=True) self.vcns_firewall_patch() self.driver = vcns_driver.VcnsDriver(mock.Mock()) diff --git a/neutron/tests/unit/vmware/vshield/test_loadbalancer_driver.py b/neutron/tests/unit/vmware/vshield/test_loadbalancer_driver.py index 6afdf980ba8..27027f38cc5 100644 --- a/neutron/tests/unit/vmware/vshield/test_loadbalancer_driver.py +++ b/neutron/tests/unit/vmware/vshield/test_loadbalancer_driver.py @@ -23,8 +23,7 @@ from neutron.plugins.vmware.vshield.common import exceptions as vcns_exc from neutron.plugins.vmware.vshield import vcns_driver from neutron.services.loadbalancer import constants as lb_constants from neutron.tests.unit.db.loadbalancer import test_db_loadbalancer -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import VCNS_NAME +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.vshield import fake_vcns _uuid = uuidutils.generate_uuid @@ -35,7 +34,7 @@ POOL_MAP_INFO = { 'edge_id': VSE_ID, 'pool_vseid': 'pool-1'} -VCNS_CONFIG_FILE = get_fake_conf("vcns.ini.test") +VCNS_CONFIG_FILE = vmware.get_fake_conf("vcns.ini.test") class VcnsDriverTestCase(test_db_loadbalancer.LoadBalancerPluginDbTestCase): @@ -80,7 +79,7 @@ class VcnsDriverTestCase(test_db_loadbalancer.LoadBalancerPluginDbTestCase): self.config_parse(args=['--config-file', VCNS_CONFIG_FILE]) # mock vcns self.fc2 = fake_vcns.FakeVcns(unique_router_name=False) - self.mock_vcns = mock.patch(VCNS_NAME, autospec=True) + self.mock_vcns = mock.patch(vmware.VCNS_NAME, autospec=True) self.vcns_loadbalancer_patch() self.driver = vcns_driver.VcnsDriver(mock.Mock()) diff --git a/neutron/tests/unit/vmware/vshield/test_vcns_driver.py b/neutron/tests/unit/vmware/vshield/test_vcns_driver.py index 649ce121111..c0451715f7a 100644 --- a/neutron/tests/unit/vmware/vshield/test_vcns_driver.py +++ b/neutron/tests/unit/vmware/vshield/test_vcns_driver.py @@ -17,17 +17,14 @@ from eventlet import greenthread import mock from neutron.plugins.vmware.vshield.common import constants as vcns_const -from neutron.plugins.vmware.vshield.common.constants import RouterStatus -from neutron.plugins.vmware.vshield.tasks.constants import TaskState -from neutron.plugins.vmware.vshield.tasks.constants import TaskStatus +from neutron.plugins.vmware.vshield.tasks import constants as ts_const from neutron.plugins.vmware.vshield.tasks import tasks as ts from neutron.plugins.vmware.vshield import vcns_driver from neutron.tests import base -from neutron.tests.unit.vmware import get_fake_conf -from neutron.tests.unit.vmware import VCNS_NAME +from neutron.tests.unit import vmware from neutron.tests.unit.vmware.vshield import fake_vcns -VCNS_CONFIG_FILE = get_fake_conf("vcns.ini.test") +VCNS_CONFIG_FILE = vmware.get_fake_conf("vcns.ini.test") ts.TaskManager.set_default_interval(100) @@ -67,12 +64,12 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): def _exec(task): if not _check_state(task, 1): - return TaskStatus.ERROR + return ts_const.TaskStatus.ERROR if task.userdata['sync_exec']: - return TaskStatus.COMPLETED + return ts_const.TaskStatus.COMPLETED else: - return TaskStatus.PENDING + return ts_const.TaskStatus.PENDING def _status(task): if task.userdata['sync_exec']: @@ -81,10 +78,10 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): state = task.userdata['state'] if state == 3: _check_state(task, 3) - return TaskStatus.PENDING + return ts_const.TaskStatus.PENDING else: _check_state(task, 4) - return TaskStatus.COMPLETED + return ts_const.TaskStatus.COMPLETED def _result(task): if task.userdata['sync_exec']: @@ -122,7 +119,7 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): self.manager.add(task) - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) self.assertTrue(userdata['result']) @@ -139,10 +136,10 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): def _exec(task): task.userdata['executed'] = True - return TaskStatus.PENDING + return ts_const.TaskStatus.PENDING def _status(task): - return TaskStatus.COMPLETED + return ts_const.TaskStatus.COMPLETED def _result(task): next_task = task.userdata.get('next') @@ -167,7 +164,7 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): for task in tasks: self.manager.add(task) - last_task.wait(TaskState.RESULT) + last_task.wait(ts_const.TaskState.RESULT) for task in tasks: self.assertTrue(task.userdata['result']) @@ -177,17 +174,17 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): def _exec(task): task.userdata['executed'] = True - return TaskStatus.PENDING + return ts_const.TaskStatus.PENDING def _status(task): for t in tasks: if not t.userdata.get('executed'): t.userdata['resut'] = False - return TaskStatus.COMPLETED + return ts_const.TaskStatus.COMPLETED def _result(task): if (task.userdata.get('result') is None and - task.status == TaskStatus.COMPLETED): + task.status == ts_const.TaskStatus.COMPLETED): task.userdata['result'] = True else: task.userdata['result'] = False @@ -200,7 +197,7 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): self.manager.add(task) for task in tasks: - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) self.assertTrue(task.userdata['result']) def _test_task_manager_stop(self, exec_wait=False, result_wait=False, @@ -208,11 +205,11 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): def _exec(task): if exec_wait: greenthread.sleep(0.01) - return TaskStatus.PENDING + return ts_const.TaskStatus.PENDING def _status(task): greenthread.sleep(0.01) - return TaskStatus.PENDING + return ts_const.TaskStatus.PENDING def _result(task): if result_wait: @@ -244,7 +241,7 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): for res, tasks in alltasks.iteritems(): for task in tasks: - self.assertEqual(task.status, TaskStatus.ABORT) + self.assertEqual(task.status, ts_const.TaskStatus.ABORT) def test_task_manager_stop_1(self): self._test_task_manager_stop(True, True, 0) @@ -264,7 +261,7 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase): while not task.userdata['tested']: greenthread.sleep(0) task.userdata['executing'] = False - return TaskStatus.COMPLETED + return ts_const.TaskStatus.COMPLETED userdata = { 'executing': False, @@ -317,7 +314,7 @@ class VcnsDriverTestCase(base.BaseTestCase): self.config_parse(args=['--config-file', VCNS_CONFIG_FILE]) self.fc = fake_vcns.FakeVcns() - self.mock_vcns = mock.patch(VCNS_NAME, autospec=True) + self.mock_vcns = mock.patch(vmware.VCNS_NAME, autospec=True) self.vcns_patch() self.addCleanup(self.fc.reset_all) @@ -338,46 +335,46 @@ class VcnsDriverTestCase(base.BaseTestCase): task = self.vcns_driver.deploy_edge( 'router-id', 'myedge', 'internal-network', {}, wait_for_exec=True) self.assertEqual(self.edge_id, 'edge-1') - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) return task def edge_deploy_started(self, task): self.edge_id = task.userdata['edge_id'] def edge_deploy_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['edge_deploy_result'] = True def edge_delete_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['edge_delete_result'] = True def snat_create_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['snat_create_result'] = True def snat_delete_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['snat_delete_result'] = True def dnat_create_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['dnat_create_result'] = True def dnat_delete_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['dnat_delete_result'] = True def nat_update_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['nat_update_result'] = True def routes_update_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['routes_update_result'] = True def interface_update_result(self, task): - if task.status == TaskStatus.COMPLETED: + if task.status == ts_const.TaskStatus.COMPLETED: task.userdata['jobdata']['interface_update_result'] = True def test_deploy_edge(self): @@ -386,8 +383,8 @@ class VcnsDriverTestCase(base.BaseTestCase): 'router-id', 'myedge', 'internal-network', jobdata=jobdata, wait_for_exec=True) self.assertEqual(self.edge_id, 'edge-1') - task.wait(TaskState.RESULT) - self.assertEqual(task.status, TaskStatus.COMPLETED) + task.wait(ts_const.TaskState.RESULT) + self.assertEqual(task.status, ts_const.TaskStatus.COMPLETED) self.assertTrue(jobdata.get('edge_deploy_result')) def test_deploy_edge_fail(self): @@ -395,14 +392,14 @@ class VcnsDriverTestCase(base.BaseTestCase): 'router-1', 'myedge', 'internal-network', {}, wait_for_exec=True) task2 = self.vcns_driver.deploy_edge( 'router-2', 'myedge', 'internal-network', {}, wait_for_exec=True) - task1.wait(TaskState.RESULT) - task2.wait(TaskState.RESULT) - self.assertEqual(task2.status, TaskStatus.ERROR) + task1.wait(ts_const.TaskState.RESULT) + task2.wait(ts_const.TaskState.RESULT) + self.assertEqual(task2.status, ts_const.TaskStatus.ERROR) def test_get_edge_status(self): self._deploy_edge() status = self.vcns_driver.get_edge_status(self.edge_id) - self.assertEqual(status, RouterStatus.ROUTER_STATUS_ACTIVE) + self.assertEqual(status, vcns_const.RouterStatus.ROUTER_STATUS_ACTIVE) def test_get_edges(self): self._deploy_edge() @@ -424,7 +421,7 @@ class VcnsDriverTestCase(base.BaseTestCase): task = self.vcns_driver.create_dnat_rule( 'router-id', edge_id, org, translated, jobdata=jobdata) key = 'dnat_create_result' - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) self.assertTrue(jobdata.get(key)) def _delete_nat_rule(self, edge_id, action, addr): @@ -437,7 +434,7 @@ class VcnsDriverTestCase(base.BaseTestCase): task = self.vcns_driver.delete_dnat_rule( 'router-id', edge_id, addr, jobdata=jobdata) key = 'dnat_delete_result' - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) self.assertTrue(jobdata.get(key)) def _test_create_nat_rule(self, action): @@ -508,7 +505,7 @@ class VcnsDriverTestCase(base.BaseTestCase): ] task = self.vcns_driver.update_nat_rules( 'router-id', self.edge_id, snats, dnats, jobdata=jobdata) - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) self.assertTrue(jobdata.get('nat_update_result')) natcfg = self.vcns_driver.get_nat_config(self.edge_id) @@ -552,7 +549,7 @@ class VcnsDriverTestCase(base.BaseTestCase): ] task = self.vcns_driver.update_routes( 'router-id', self.edge_id, '10.0.0.1', routes, jobdata=jobdata) - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) self.assertTrue(jobdata.get('routes_update_result')) def test_update_interface(self): @@ -562,7 +559,7 @@ class VcnsDriverTestCase(base.BaseTestCase): 'router-id', self.edge_id, vcns_const.EXTERNAL_VNIC_INDEX, 'network-id', address='100.0.0.3', netmask='255.255.255.0', jobdata=jobdata) - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) self.assertTrue(jobdata.get('interface_update_result')) def test_delete_edge(self): @@ -570,7 +567,7 @@ class VcnsDriverTestCase(base.BaseTestCase): jobdata = {} task = self.vcns_driver.delete_edge( 'router-id', self.edge_id, jobdata=jobdata) - task.wait(TaskState.RESULT) + task.wait(ts_const.TaskState.RESULT) self.assertTrue(jobdata.get('edge_delete_result')) def test_create_lswitch(self):