Merge "Remove mox in unit/network/test_neutronv2.py (12)"

This commit is contained in:
Zuul 2019-05-30 18:33:40 +00:00 committed by Gerrit Code Review
commit 9913569ac8
1 changed files with 112 additions and 102 deletions

View File

@ -822,108 +822,6 @@ class TestNeutronv2(TestNeutronv2Base):
self.addCleanup(self.mox.UnsetStubs)
self.addCleanup(self.stubs.UnsetAll)
def test_validate_networks_port_no_subnet_id(self):
port_a = self.port_data3[0]
port_a['device_id'] = None
port_a['device_owner'] = None
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(port_id=port_a['id'])])
neutronapi.get_client(mox.IgnoreArg()).AndReturn(self.moxed_client)
self.moxed_client.show_port(port_a['id']).AndReturn({'port': port_a})
self.mox.ReplayAll()
api = neutronapi.API()
self.assertRaises(exception.PortRequiresFixedIP,
api.validate_networks,
self.context, requested_networks, 1)
def test_validate_networks_no_subnet_id(self):
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(network_id='his_netid4')])
ids = ['his_netid4']
neutronapi.get_client(mox.IgnoreArg()).AndReturn(self.moxed_client)
self.moxed_client.list_networks(
id=mox.SameElementsAs(ids)).AndReturn(
{'networks': self.nets4})
self.mox.ReplayAll()
api = neutronapi.API()
self.assertRaises(exception.NetworkRequiresSubnet,
api.validate_networks,
self.context, requested_networks, 1)
def test_validate_networks_ports_in_same_network_enable(self):
# Verify that duplicateNetworks exception is not thrown when ports
# on same duplicate network are passed to validate_networks.
port_a = self.port_data3[0]
port_a['fixed_ips'] = {'ip_address': '10.0.0.2',
'subnet_id': 'subnet_id'}
port_b = self.port_data1[0]
self.assertEqual(port_a['network_id'], port_b['network_id'])
for port in [port_a, port_b]:
port['device_id'] = None
port['device_owner'] = None
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(port_id=port_a['id']),
objects.NetworkRequest(port_id=port_b['id'])])
neutronapi.get_client(mox.IgnoreArg()).AndReturn(self.moxed_client)
self.moxed_client.show_port(port_a['id']).AndReturn(
{'port': port_a})
self.moxed_client.show_port(port_b['id']).AndReturn(
{'port': port_b})
self.mox.ReplayAll()
api = neutronapi.API()
api.validate_networks(self.context, requested_networks, 1)
def test_validate_networks_ports_not_in_same_network(self):
port_a = self.port_data3[0]
port_a['fixed_ips'] = {'ip_address': '10.0.0.2',
'subnet_id': 'subnet_id'}
port_b = self.port_data2[1]
self.assertNotEqual(port_a['network_id'], port_b['network_id'])
for port in [port_a, port_b]:
port['device_id'] = None
port['device_owner'] = None
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(port_id=port_a['id']),
objects.NetworkRequest(port_id=port_b['id'])])
neutronapi.get_client(mox.IgnoreArg()).AndReturn(self.moxed_client)
self.moxed_client.show_port(port_a['id']).AndReturn({'port': port_a})
self.moxed_client.show_port(port_b['id']).AndReturn({'port': port_b})
self.mox.ReplayAll()
api = neutronapi.API()
api.validate_networks(self.context, requested_networks, 1)
def test_validate_networks_no_quota(self):
# Test validation for a request for one instance needing
# two ports, where the quota is 2 and 2 ports are in use
# => instances which can be created = 0
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(network_id=uuids.my_netid1),
objects.NetworkRequest(network_id=uuids.my_netid2)])
ids = [uuids.my_netid1, uuids.my_netid2]
neutronapi.get_client(mox.IgnoreArg()).AndReturn(self.moxed_client)
self.moxed_client.list_networks(
id=mox.SameElementsAs(ids)).AndReturn(
{'networks': self.nets2})
self.moxed_client.show_quota(
uuids.my_tenant).AndReturn(
{'quota': {'port': 2}})
self.moxed_client.list_ports(
tenant_id=uuids.my_tenant, fields=['id']).AndReturn(
{'ports': self.port_data2})
self.mox.ReplayAll()
api = neutronapi.API()
max_count = api.validate_networks(self.context,
requested_networks, 1)
self.assertEqual(0, max_count)
def test_validate_networks_with_ports_and_networks(self):
# Test validation for a request for one instance needing
# one port allocated via nova with another port being passed in.
@ -3449,6 +3347,118 @@ class TestNeutronv2WithMock(TestNeutronv2Base):
mocked_client.show_port.assert_called_once_with(
self.port_data3[0]['id'])
@mock.patch.object(neutronapi, 'get_client')
def test_validate_networks_port_no_subnet_id(self, mock_get_client):
mocked_client = mock.create_autospec(client.Client)
mock_get_client.return_value = mocked_client
port_a = self.port_data3[0]
port_a['device_id'] = None
port_a['device_owner'] = None
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(port_id=port_a['id'])])
mocked_client.show_port.return_value = {'port': port_a}
self.assertRaises(exception.PortRequiresFixedIP,
self.api.validate_networks,
self.context, requested_networks, 1)
mock_get_client.assert_called_once_with(self.context)
mocked_client.show_port.assert_called_once_with(port_a['id'])
@mock.patch.object(neutronapi, 'get_client')
def test_validate_networks_no_subnet_id(self, mock_get_client):
mocked_client = mock.create_autospec(client.Client)
mock_get_client.return_value = mocked_client
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(network_id='his_netid4')])
ids = ['his_netid4']
mocked_client.list_networks.return_value = {'networks': self.nets4}
self.assertRaises(exception.NetworkRequiresSubnet,
self.api.validate_networks,
self.context, requested_networks, 1)
mock_get_client.assert_called_once_with(self.context)
mocked_client.list_networks.assert_called_once_with(id=ids)
@mock.patch.object(neutronapi, 'get_client')
def test_validate_networks_ports_in_same_network_enable(self,
mock_get_client):
# Verify that duplicateNetworks exception is not thrown when ports
# on same duplicate network are passed to validate_networks.
mocked_client = mock.create_autospec(client.Client)
mock_get_client.return_value = mocked_client
port_a = self.port_data3[0]
port_a['fixed_ips'] = {'ip_address': '10.0.0.2',
'subnet_id': 'subnet_id'}
port_b = self.port_data1[0]
self.assertEqual(port_a['network_id'], port_b['network_id'])
for port in [port_a, port_b]:
port['device_id'] = None
port['device_owner'] = None
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(port_id=port_a['id']),
objects.NetworkRequest(port_id=port_b['id'])])
mocked_client.show_port.side_effect = [{'port': port_a},
{'port': port_b}]
self.api.validate_networks(self.context, requested_networks, 1)
mock_get_client.assert_called_once_with(self.context)
mocked_client.show_port.assert_has_calls([mock.call(port_a['id']),
mock.call(port_b['id'])])
self.assertEqual(2, mocked_client.show_port.call_count)
@mock.patch.object(neutronapi, 'get_client')
def test_validate_networks_ports_not_in_same_network(self,
mock_get_client):
mocked_client = mock.create_autospec(client.Client)
mock_get_client.return_value = mocked_client
port_a = self.port_data3[0]
port_a['fixed_ips'] = {'ip_address': '10.0.0.2',
'subnet_id': 'subnet_id'}
port_b = self.port_data2[1]
self.assertNotEqual(port_a['network_id'], port_b['network_id'])
for port in [port_a, port_b]:
port['device_id'] = None
port['device_owner'] = None
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(port_id=port_a['id']),
objects.NetworkRequest(port_id=port_b['id'])])
mocked_client.show_port.side_effect = [{'port': port_a},
{'port': port_b}]
self.api.validate_networks(self.context, requested_networks, 1)
mock_get_client.assert_called_once_with(self.context)
mocked_client.show_port.assert_has_calls([mock.call(port_a['id']),
mock.call(port_b['id'])])
self.assertEqual(2, mocked_client.show_port.call_count)
@mock.patch.object(neutronapi, 'get_client')
def test_validate_networks_no_quota(self, mock_get_client):
# Test validation for a request for one instance needing
# two ports, where the quota is 2 and 2 ports are in use
# => instances which can be created = 0
mocked_client = mock.create_autospec(client.Client)
mock_get_client.return_value = mocked_client
requested_networks = objects.NetworkRequestList(
objects=[objects.NetworkRequest(network_id=uuids.my_netid1),
objects.NetworkRequest(network_id=uuids.my_netid2)])
ids = [uuids.my_netid1, uuids.my_netid2]
mocked_client.list_networks.return_value = {'networks': self.nets2}
mocked_client.show_quota.return_value = {'quota': {'port': 2}}
mocked_client.list_ports.return_value = {'ports': self.port_data2}
max_count = self.api.validate_networks(self.context,
requested_networks, 1)
self.assertEqual(0, max_count)
mock_get_client.assert_called_once_with(self.context)
mocked_client.list_networks.assert_called_once_with(id=ids)
mocked_client.show_quota.assert_called_once_with(uuids.my_tenant)
mocked_client.list_ports.assert_called_once_with(
tenant_id=uuids.my_tenant, fields=['id'])
@mock.patch.object(neutronapi, 'get_client', return_value=mock.Mock())
def test_get_port_vnic_info_trusted(self, mock_get_client):
test_port = {