diff options
author | Zuul <zuul@review.opendev.org> | 2020-12-03 19:51:28 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-12-03 19:51:28 +0000 |
commit | afebcf42c3e4ba33c553d5f35c4536b2e38d6abd (patch) | |
tree | 19305bdb5194b1c7d6ca38439a0790deddf26b34 | |
parent | eef7103cd08b9bfdac3a8589e2d2526c5d064d30 (diff) | |
parent | 69e688728c19093eebf3b514a663e714e715d632 (diff) | |
download | horizon-afebcf42c3e4ba33c553d5f35c4536b2e38d6abd.tar.gz |
Merge "Fix create/update_port with python3" into stable/victoria
-rw-r--r-- | openstack_dashboard/api/neutron.py | 3 | ||||
-rw-r--r-- | openstack_dashboard/test/unit/api/test_neutron.py | 24 |
2 files changed, 17 insertions, 10 deletions
diff --git a/openstack_dashboard/api/neutron.py b/openstack_dashboard/api/neutron.py index 7bd3e29fb..9d7496e87 100644 --- a/openstack_dashboard/api/neutron.py +++ b/openstack_dashboard/api/neutron.py @@ -1360,7 +1360,8 @@ def port_get(request, port_id, **params): def unescape_port_kwargs(**kwargs): - for key in kwargs: + keys = list(kwargs) + for key in keys: if '__' in key: kwargs[':'.join(key.split('__'))] = kwargs.pop(key) return kwargs diff --git a/openstack_dashboard/test/unit/api/test_neutron.py b/openstack_dashboard/test/unit/api/test_neutron.py index 4a42b8d45..59a229959 100644 --- a/openstack_dashboard/test/unit/api/test_neutron.py +++ b/openstack_dashboard/test/unit/api/test_neutron.py @@ -581,21 +581,24 @@ class NeutronApiTests(test.APIMockTestCase): @mock.patch.object(api.neutron, 'neutronclient') def test_port_create(self, mock_neutronclient): - port = {'port': self.api_ports.first()} - params = {'network_id': port['port']['network_id'], - 'tenant_id': port['port']['tenant_id'], - 'name': port['port']['name'], - 'device_id': port['port']['device_id']} + port = self.api_ports.first() + params = {'network_id': port['network_id'], + 'tenant_id': port['tenant_id'], + 'name': port['name'], + 'device_id': port['device_id']} + api_params = params.copy() + params['binding__vnic_type'] = port['binding:vnic_type'] + api_params['binding:vnic_type'] = port['binding:vnic_type'] neutronclient = mock_neutronclient.return_value - neutronclient.create_port.return_value = port + neutronclient.create_port.return_value = {'port': port} ret_val = api.neutron.port_create(self.request, **params) self.assertIsInstance(ret_val, api.neutron.Port) - self.assertEqual(api.neutron.Port(port['port']).id, ret_val.id) + self.assertEqual(api.neutron.Port(port).id, ret_val.id) neutronclient.create_port.assert_called_once_with( - body={'port': params}) + body={'port': api_params}) @mock.patch.object(api.neutron, 'neutronclient') def test_port_update(self, mock_neutronclient): @@ -603,6 +606,9 @@ class NeutronApiTests(test.APIMockTestCase): port_id = port_data['id'] params = {'name': port_data['name'], 'device_id': port_data['device_id']} + api_params = params.copy() + params['binding__vnic_type'] = port_data['binding:vnic_type'] + api_params['binding:vnic_type'] = port_data['binding:vnic_type'] neutronclient = mock_neutronclient.return_value neutronclient.update_port.return_value = {'port': port_data} @@ -612,7 +618,7 @@ class NeutronApiTests(test.APIMockTestCase): self.assertIsInstance(ret_val, api.neutron.Port) self.assertEqual(api.neutron.Port(port_data).id, ret_val.id) neutronclient.update_port.assert_called_once_with( - port_id, body={'port': params}) + port_id, body={'port': api_params}) @mock.patch.object(api.neutron, 'neutronclient') def test_port_delete(self, mock_neutronclient): |