Skip to content

Commit

Permalink
Add unit tests to verify exception mappings for http client errors
Browse files Browse the repository at this point in the history
  • Loading branch information
joguSD committed Aug 20, 2018
1 parent 0258c16 commit 133f810
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion botocore/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class EndpointConnectionError(HTTPClientError):
fmt = 'Could not connect to the endpoint URL: "{endpoint_url}"'


class SSLError(ConnectionError):
class SSLError(ConnectionError, requests.exceptions.SSLError):
fmt = 'SSL validation failed for {endpoint_url} {error}'


Expand Down
27 changes: 27 additions & 0 deletions tests/unit/test_http_client_exception_mapping.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from nose.tools import assert_raises

from botocore import exceptions as botocore_exceptions
from botocore.vendored.requests import exceptions as requests_exceptions
from botocore.vendored.requests.packages.urllib3 import exceptions as urllib3_exceptions

EXCEPTION_MAPPING = [
(botocore_exceptions.ReadTimeoutError, requests_exceptions.ReadTimeout),
(botocore_exceptions.ReadTimeoutError, urllib3_exceptions.ReadTimeoutError),
(botocore_exceptions.ConnectTimeoutError, requests_exceptions.ConnectTimeout),
(botocore_exceptions.ProxyConnectionError, requests_exceptions.ProxyError),
(botocore_exceptions.SSLError, requests_exceptions.SSLError),
]


def _raise_exception(exception):
raise exception(endpoint_url=None, proxy_url=None, error=None)


def _test_exception_mapping(new_exception, old_exception):
# assert that the new exception can still be caught by the old vendored one
assert_raises(old_exception, _raise_exception, new_exception)


def test_http_client_exception_mapping():
for new_exception, old_exception in EXCEPTION_MAPPING:
yield _test_exception_mapping, new_exception, old_exception

0 comments on commit 133f810

Please sign in to comment.