Skip to content
Permalink
Browse files
feat: add status_code property on http error handling (#1185)
Fixes #1183 馃
Fixes #1255 馃
- Add status code property in http error handler class.
- Resolve issue where error_details is not populated.
  • Loading branch information
wmarquardt committed Mar 17, 2021
1 parent c518472 commit db2a766bbd976742f6ef10d721d8423c8ac9246d
Showing with 9 additions and 1 deletion.
  1. +1 鈭1 docs/start.md
  2. +6 鈭0 googleapiclient/errors.py
  3. +2 鈭0 tests/test_errors.py
@@ -99,7 +99,7 @@ Creating a request does not actually call the API. To execute the request and ge
try:
response = request.execute()
except HttpError as e:
print('Error response status code : {0}, reason : {1}'.format(e.resp.status, e.error_details))
print('Error response status code : {0}, reason : {1}'.format(e.status_code, e.error_details))
```

Alternatively, you can combine previous steps on a single line:
@@ -43,6 +43,12 @@ def __init__(self, resp, content, uri=None):
self.content = content
self.uri = uri
self.error_details = ""
self._get_reason()

@property
def status_code(self):
"""Return the HTTP status code from the response content."""
return self.resp.status

def _get_reason(self):
"""Calculate the reason for the error from the response content."""
@@ -83,6 +83,8 @@ def test_json_body(self):
reason="Failed",
)
error = HttpError(resp, content, uri="http://example.org")
self.assertEqual(error.error_details, "error details")
self.assertEqual(error.status_code, 400)
self.assertEqual(
str(error),
'<HttpError 400 when requesting http://example.org returned "country is required". Details: "error details">',

0 comments on commit db2a766

Please sign in to comment.