Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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 db2a766
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
2 changes: 1 addition & 1 deletion docs/start.md
Expand Up @@ -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:
Expand Down
6 changes: 6 additions & 0 deletions googleapiclient/errors.py
Expand Up @@ -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."""
Expand Down
2 changes: 2 additions & 0 deletions tests/test_errors.py
Expand Up @@ -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">',
Expand Down

0 comments on commit db2a766

Please sign in to comment.