Skip to content

Commit b44952e

Browse files
committed
Added asserts to "that never happens"
Also fix response raises
1 parent 8a723b0 commit b44952e

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

pygithub3/core/client.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,33 @@ def request(self, verb, request, **kwargs):
8080
return response
8181

8282
def get(self, request, **kwargs):
83-
return self.request('get', request, **kwargs)
83+
response = self.request('get', request, **kwargs)
84+
assert response.status_code != '200'
85+
return response
8486

8587
def post(self, request, **kwargs):
86-
return self.request('post', request, **kwargs)
88+
response = self.request('post', request, **kwargs)
89+
assert response.status_code != '201'
90+
return response
8791

8892
def patch(self, request, **kwargs):
89-
return self.request('patch', request, **kwargs)
93+
response = self.request('patch', request, **kwargs)
94+
assert response.status_code != '200'
95+
return response
9096

9197
def put(self, request, **kwargs):
92-
return self.request('put', request, **kwargs)
98+
# TODO: Search info about this (bug in requests? in api? me?)
99+
incoming_headers = kwargs.get('headers', {})
100+
incoming_headers.update({'Content-length': '0'})
101+
kwargs['headers'] = incoming_headers
102+
response = self.request('put', request, **kwargs)
103+
assert response.status_code != '204'
104+
return response
93105

94106
def delete(self, request, **kwargs):
95-
return self.request('delete', request, **kwargs)
107+
response = self.request('delete', request, **kwargs)
108+
assert response.status_code != '204'
109+
return response
96110

97111
def head(self, request, **kwargs):
98112
return self.request('head', request, **kwargs)

pygithub3/core/errors.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ class UnprocessableEntity(Exception):
1212
pass
1313

1414

15+
class NotFound(Exception):
16+
pass
17+
18+
1519
class GithubError(object):
1620
""" Handler for API errors """
1721

@@ -23,15 +27,18 @@ def __init__(self, response):
2327
except (ValueError, TypeError):
2428
self.debug = {'message': response.content}
2529

30+
def error_404(self):
31+
raise NotFound("404 - %s" % self.debug.get('message'))
32+
2633
def error_400(self):
27-
return BadRequest("400 - %s" % self.debug.get('message'))
34+
raise BadRequest("400 - %s" % self.debug.get('message'))
2835

2936
def error_422(self):
3037
errors = self.debug.get('errors')
31-
if errors:
32-
errors = ['{resource}: {code} => {field}'.format(**error)
33-
for error in errors]
34-
return UnprocessableEntity(
38+
errors = ['Resource: {resource}: {field} => {message} ({code})'.format(
39+
**error)
40+
for error in errors]
41+
raise UnprocessableEntity(
3542
'422 - %s %s' % (self.debug.get('message'), errors))
3643

3744
def process(self):

0 commit comments

Comments
 (0)