Merge "Fix exception message in case when bulk creation fails."

This commit is contained in:
Zuul 2020-10-30 11:46:37 +00:00 committed by Gerrit Code Review
commit a35821913e
2 changed files with 26 additions and 1 deletions

View File

@ -103,7 +103,7 @@ def _create_ports(self, payload):
response = self.post(os_port.Port.base_path, json=payload) response = self.post(os_port.Port.base_path, json=payload)
if not response.ok: if not response.ok:
raise os_exc.SDKException('Error when bulk creating ports: %s', raise os_exc.SDKException('Error when bulk creating ports: %s' %
response.text) response.text)
return (os_port.Port(**item) for item in response.json()['ports']) return (os_port.Port(**item) for item in response.json()['ports'])

View File

@ -15,6 +15,7 @@
from unittest import mock from unittest import mock
from openstack import exceptions as os_exc
from openstack.network.v2 import port as os_port from openstack.network.v2 import port as os_port
from kuryr_kubernetes import clients from kuryr_kubernetes import clients
@ -128,3 +129,27 @@ class TestOpenStackSDKHack(test_base.TestCase):
clients._create_ports(m_osdk, payload) clients._create_ports(m_osdk, payload)
m_post.assert_called_once_with(os_port.Port.base_path, json=expected) m_post.assert_called_once_with(os_port.Port.base_path, json=expected)
def test_create_ports_out_of_ports(self):
"""Simulate error response from OpenStack SDK"""
m_response = mock.Mock()
m_response.text = ('{"NeutronError": {"type": "OverQuota", "message": '
'"Quota exceeded for resources: [\'port\'].", '
'"detail": ""}}')
m_response.ok = False
m_post = mock.Mock()
m_post.return_value = m_response
m_osdk = mock.Mock()
m_osdk.post = m_post
payload = {'ports': []}
try:
clients._create_ports(m_osdk, payload)
except os_exc.SDKException as ex:
# no additional params passed to the exception class
self.assertIsNone(ex.extra_data)
# no formatting placeholders in message
self.assertNotIn('%s', ex.message)
m_post.assert_called_once_with(os_port.Port.base_path, json=payload)