From db43eb4cb9fcd1ad5565cc2bff5b8cdfec549648 Mon Sep 17 00:00:00 2001 From: Josh Imhoff Date: Wed, 9 May 2012 15:13:12 -0400 Subject: [PATCH] Now, safe_mode will catch socket.timeout too. --- requests/safe_mode.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/requests/safe_mode.py b/requests/safe_mode.py index 7a0f218b..619d368c 100644 --- a/requests/safe_mode.py +++ b/requests/safe_mode.py @@ -12,8 +12,9 @@ This module contains a decorator that implements safe_mode. """ from .models import Response -from .exceptions import RequestException, ConnectionError, HTTPError from .packages.urllib3.response import HTTPResponse +from .exceptions import RequestException, ConnectionError, HTTPError +import socket def catch_exceptions_if_in_safe_mode(function): """New implementation of safe_mode. We catch all exceptions at the API level @@ -27,7 +28,7 @@ def catch_exceptions_if_in_safe_mode(function): and kwargs.get('session').config.get('safe_mode')): try: return function(method, url, **kwargs) - except (RequestException, ConnectionError, HTTPError) as e: + except (RequestException, ConnectionError, HTTPError, socket.timeout) as e: r = Response() r.error = e r.raw = HTTPResponse() # otherwise, tests fail