Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
fix: replace deprecated socket.error with OSError (#1161)
- Loading branch information
Showing
with
8 additions
and
9 deletions.
-
+3
−4
googleapiclient/http.py
-
+5
−5
tests/test_http.py
|
@@ -178,14 +178,13 @@ def _retry_request( |
|
|
except _ssl_SSLError as ssl_error: |
|
|
exception = ssl_error |
|
|
except socket.timeout as socket_timeout: |
|
|
# It's important that this be before socket.error as it's a subclass |
|
|
# Needs to be before socket.error as it's a subclass of OSError |
|
|
# socket.timeout has no errorcode |
|
|
exception = socket_timeout |
|
|
except ConnectionError as connection_error: |
|
|
# Needs to be before socket.error as it's a subclass of |
|
|
# OSError (socket.error) |
|
|
# Needs to be before socket.error as it's a subclass of OSError |
|
|
exception = connection_error |
|
|
except socket.error as socket_error: |
|
|
except OSError as socket_error: |
|
|
# errno's contents differ by platform, so we have to match by name. |
|
|
# Some of these same errors may have been caught above, e.g. ECONNRESET *should* be |
|
|
# raised as a ConnectionError, but some libraries will raise it as a socket.error |
|
|
|
@@ -137,22 +137,22 @@ def request(self, *args, **kwargs): |
|
|
elif self.num_errors == 4: |
|
|
ex = httplib2.ServerNotFoundError() |
|
|
elif self.num_errors == 3: |
|
|
ex = socket.error() |
|
|
ex = OSError() |
|
|
ex.errno = socket.errno.EPIPE |
|
|
elif self.num_errors == 2: |
|
|
ex = ssl.SSLError() |
|
|
else: |
|
|
# Initialize the timeout error code to the platform's error code. |
|
|
try: |
|
|
# For Windows: |
|
|
ex = socket.error() |
|
|
ex = OSError() |
|
|
ex.errno = socket.errno.WSAETIMEDOUT |
|
|
except AttributeError: |
|
|
# For Linux/Mac: |
|
|
if PY3: |
|
|
ex = socket.timeout() |
|
|
else: |
|
|
ex = socket.error() |
|
|
ex = OSError() |
|
|
ex.errno = socket.errno.ETIMEDOUT |
|
|
|
|
|
self.num_errors -= 1 |
|
@@ -170,7 +170,7 @@ def request(self, *args, **kwargs): |
|
|
return httplib2.Response(self.success_json), self.success_data |
|
|
else: |
|
|
self.num_errors -= 1 |
|
|
ex = socket.error() |
|
|
ex = OSError() |
|
|
# set errno to a non-retriable value |
|
|
try: |
|
|
# For Windows: |
|
@@ -943,7 +943,7 @@ def test_no_retry_connection_errors(self): |
|
|
) |
|
|
request._sleep = lambda _x: 0 # do nothing |
|
|
request._rand = lambda: 10 |
|
|
with self.assertRaises(socket.error): |
|
|
with self.assertRaises(OSError): |
|
|
response = request.execute(num_retries=3) |
|
|
|
|
|
def test_retry_connection_errors_non_resumable(self): |
|
|