diff options
author | Rodrigo Duarte Sousa <rodrigods@lsd.ufcg.edu.br> | 2014-10-20 22:46:33 -0300 |
---|---|---|
committer | Rodrigo Duarte Sousa <rodrigods@lsd.ufcg.edu.br> | 2015-03-20 10:04:39 -0300 |
commit | cccc065516ab683b5c1aaf82a51eeec744c34eae (patch) | |
tree | 4c5eeb6a1b9dc6abdc7929d44a8aca16bd0d15a4 | |
parent | cfad7da20e189b691cdc85cb3b18ccd7a004d9c8 (diff) | |
download | python-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.py | 5 | ||||
-rw-r--r-- | keystoneclient/tests/unit/test_session.py | 18 |
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): |