diff --git a/barbicanclient/client.py b/barbicanclient/client.py index 29ab60d5..e38276b4 100644 --- a/barbicanclient/client.py +++ b/barbicanclient/client.py @@ -113,6 +113,9 @@ class _HTTPClient(adapter.Adapter): try: response_data = resp.json() message = response_data['title'] + description = response_data.get('description') + if description: + message = '{0}: {1}'.format(message, description) except ValueError: message = resp.content return message diff --git a/barbicanclient/tests/test_client.py b/barbicanclient/tests/test_client.py index a27cbc60..e862c5a6 100644 --- a/barbicanclient/tests/test_client.py +++ b/barbicanclient/tests/test_client.py @@ -265,6 +265,13 @@ class WhenTestingGetErrorMessage(TestClient): msg = self.httpclient._get_error_message(resp) self.assertEqual(msg, content) + def test_gets_error_message_from_description_in_json(self): + resp = mock.MagicMock() + resp.json.return_value = {'title': 'test_text', + 'description': 'oopsie'} + msg = self.httpclient._get_error_message(resp) + self.assertEqual(msg, 'test_text: oopsie') + class BaseEntityResource(testtools.TestCase):