summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Duarte Sousa <rodrigods@lsd.ufcg.edu.br>2014-10-20 22:46:33 -0300
committerRodrigo Duarte Sousa <rodrigods@lsd.ufcg.edu.br>2015-03-20 10:04:39 -0300
commitcccc065516ab683b5c1aaf82a51eeec744c34eae (patch)
tree4c5eeb6a1b9dc6abdc7929d44a8aca16bd0d15a4
parentcfad7da20e189b691cdc85cb3b18ccd7a004d9c8 (diff)
downloadpython-keystoneclient-cccc065516ab683b5c1aaf82a51eeec744c34eae.tar.gz
Improve feedback message in SSL error
Adds the error message to give a hint to the user about what happened. Change-Id: I9ca56de8592e65194062038c81b468be72ffb2d9 Closes-Bug: 1297280
-rw-r--r--keystoneclient/session.py5
-rw-r--r--keystoneclient/tests/unit/test_session.py18
2 files changed, 21 insertions, 2 deletions
diff --git a/keystoneclient/session.py b/keystoneclient/session.py
index 0bb0de2..9d4fd66 100644
--- a/keystoneclient/session.py
+++ b/keystoneclient/session.py
@@ -406,8 +406,9 @@ class Session(object):
try:
try:
resp = self.session.request(method, url, **kwargs)
- except requests.exceptions.SSLError:
- msg = _('SSL exception connecting to %s') % url
+ except requests.exceptions.SSLError as e:
+ msg = _('SSL exception connecting to %(url)s: '
+ '%(error)s') % {'url': url, 'error': e}
raise exceptions.SSLError(msg)
except requests.exceptions.Timeout:
msg = _('Request to %s timed out') % url
diff --git a/keystoneclient/tests/unit/test_session.py b/keystoneclient/tests/unit/test_session.py
index 1d01c3a..9519f27 100644
--- a/keystoneclient/tests/unit/test_session.py
+++ b/keystoneclient/tests/unit/test_session.py
@@ -25,6 +25,7 @@ from testtools import matchers
from keystoneclient import adapter
from keystoneclient.auth import base
from keystoneclient import exceptions
+from keystoneclient.i18n import _
from keystoneclient import session as client_session
from keystoneclient.tests.unit import utils
@@ -218,6 +219,23 @@ class SessionTests(utils.TestCase):
client_session.Session(session=mock_session)
self.assertFalse(mock_session.mount.called)
+ def test_ssl_error_message(self):
+ error = uuid.uuid4().hex
+
+ def _ssl_error(request, context):
+ raise requests.exceptions.SSLError(error)
+
+ self.stub_url('GET', text=_ssl_error)
+ session = client_session.Session()
+
+ # The exception should contain the URL and details about the SSL error
+ msg = _('SSL exception connecting to %(url)s: %(error)s') % {
+ 'url': self.TEST_URL, 'error': error}
+ self.assertRaisesRegexp(exceptions.SSLError,
+ msg,
+ session.get,
+ self.TEST_URL)
+
class RedirectTests(utils.TestCase):