Skip to content

Commit 5604cff

Browse files
committed
Fix bugs
1 parent ed34830 commit 5604cff

File tree

6 files changed

+33
-29
lines changed

6 files changed

+33
-29
lines changed

github3/api.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def get(self, request, paginate=False, **kwargs):
4343

4444
def head(self, request, **kwargs):
4545
""" HEAD request """
46-
return self._request('HEAD', request, **kwargs).headers
46+
return self._request('HEAD', request, **kwargs)
4747

4848
def post(self, request, data=None, **kwargs):
4949
"""
@@ -71,11 +71,17 @@ def put(self, request, **kwargs):
7171
""" PUT request """
7272
response = self._request('PUT', request, **kwargs)
7373
assert response.status_code == 204
74+
return response
7475

7576
def delete(self, request, **kwargs):
7677
""" DELETE request """
78+
79+
data = kwargs.get('data')
80+
if data:
81+
kwargs['data'] = self._parser.dumps(data)
7782
response = self._request('DELETE', request, **kwargs)
7883
assert response.status_code == 204
84+
return response
7985

8086
def _parse_args(self, request_args):
8187
"""

github3/errors.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ class GithubError(object):
1212
def __init__(self, response):
1313
self._parser = json
1414
self.status_code = response.status_code
15-
if response.content:
15+
try:
1616
self.debug = self._parser.loads(response.content)
17-
else:
18-
self.debug = {}
17+
except ValueError:
18+
self.debug = {'message': response.content}
1919

2020
def error_400(self):
2121
return exceptions.BadRequest("400 - %s" % self.debug.get('message'))

github3/handlers/base.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ def __init__(self, gh):
1515

1616
def _prefix_resource(self, resource):
1717
prefix = getattr(self, 'prefix', '')
18-
return '/'.join((prefix, resource))
18+
return '/'.join((prefix, resource)).rstrip('/')
1919

20-
def _get_converter(self, kwargs):
20+
def _get_converter(self, **kwargs):
2121
converter = kwargs.get(
2222
'converter', # 1. in kwargs
2323
getattr(self, 'converter', # 2. in handler
@@ -28,13 +28,11 @@ def _get_converter(self, kwargs):
2828
def _put(self, resource, **kwargs):
2929
""" Put proxy request"""
3030

31-
resource = self._prefix_resource(resource)
3231
return self._bool(resource, method='put', **kwargs)
3332

3433
def _delete(self, resource, **kwargs):
3534
""" Delete proxy request"""
3635

37-
resource = self._prefix_resource(resource)
3836
return self._bool(resource, method='delete', **kwargs)
3937

4038
def _bool(self, resource, **kwargs):
@@ -43,7 +41,7 @@ def _bool(self, resource, **kwargs):
4341
from github3.exceptions import NotFound
4442
resource = self._prefix_resource(resource)
4543
try:
46-
callback = getattr(self._gh, kwargs.get(method,''), self._gh.head)
44+
callback = getattr(self._gh, kwargs.get('method',''), self._gh.head)
4745
response = callback(resource, **kwargs)
4846
except NotFound:
4947
return False
@@ -55,13 +53,13 @@ def _get_resources(self, resource, model=None, limit=None, **kwargs):
5553
""" Hander request to multiple resources """
5654

5755
resource = self._prefix_resource(resource)
58-
page_resources = Paginate(resource, self._gh.get, kwargs)
56+
page_resources = Paginate(resource, self._gh.get, **kwargs)
5957
counter = 1
6058
for page in page_resources:
6159
for raw_resource in page:
6260
if limit and counter > limit: break
6361
counter += 1
64-
converter = self._get_converter(kwargs)
62+
converter = self._get_converter(**kwargs)
6563
converter.inject(model)
6664
yield converter.loads(raw_resource)
6765
else:
@@ -73,7 +71,7 @@ def _get_resource(self, resource, model=None, **kwargs):
7371

7472
resource = self._prefix_resource(resource)
7573
raw_resource = self._gh.get(resource)
76-
converter = self._get_converter(kwargs)
74+
converter = self._get_converter(**kwargs)
7775
converter.inject(model)
7876
return converter.loads(raw_resource)
7977

@@ -82,6 +80,6 @@ def _post_resource(self, resource, data, model=None, **kwargs):
8280

8381
resource = self._prefix_resource(resource)
8482
raw_resource = self._gh.post(resource, data=data)
85-
converter = self._get_converter(kwargs)
83+
converter = self._get_converter(**kwargs)
8684
converter.inject(model)
8785
return converter.loads(raw_resource)

github3/handlers/user.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,37 +29,37 @@ def set_username(self, user):
2929
def get(self):
3030
""" Return user """
3131

32-
self._get_resource('', model=models.User)
32+
return self._get_resource('', model=models.User)
3333

3434
def get_followers(self):
3535
""" Return user's followers """
3636

37-
self._get_resources('followers', model=models.User)
37+
return self._get_resources('followers', model=models.User)
3838

3939
def get_following(self):
4040
""" Return users that follow """
4141

42-
self._get_resources('following', model=models.User)
42+
return self._get_resources('following', model=models.User)
4343

4444
def get_repos(self):
4545
""" Return user's public repositories """
4646

47-
self._get_resources('repos', model=models.Repo)
47+
return self._get_resources('repos', model=models.Repo)
4848

4949
def get_watched(self):
5050
""" Return repositories that user whatch """
5151

52-
self._get_resources('watched', model=models.Repo)
52+
return self._get_resources('watched', model=models.Repo)
5353

5454
def get_orgs(self):
5555
""" Return user's public organizations """
5656

57-
self._get_resources('orgs', model=models.Org)
57+
return self._get_resources('orgs', model=models.Org)
5858

5959
def get_gists(self):
6060
""" Return user's gists """
6161

62-
self._get_resources('gists', model=models.Gist)
62+
return self._get_resources('gists', model=models.Gist)
6363

6464
class AuthUser(User):
6565
""" User handler with public and private access """
@@ -70,7 +70,7 @@ def __repr__(self):
7070
return '<AuthUser handler> %s>' % self._gh.session.auth[0]
7171

7272
def get(self):
73-
self._get_resource('', model=models.AuthUser)
73+
return self._get_resource('', model=models.AuthUser)
7474

7575
def get_emails(self):
7676
""" Return list of emails """
@@ -119,24 +119,24 @@ def follow(self, user):
119119
"""
120120

121121
parse_user = str(getattr(user, 'login', user))
122-
return self._put('following/%s', % parse_user)
122+
return self._put('following/%s' % parse_user)
123123

124-
def unfollow(self, user)
124+
def unfollow(self, user):
125125
"""
126126
Unfollow user
127127
128128
:param `user`: User model or username string
129129
"""
130130

131131
parse_user = str(getattr(user, 'login', user))
132-
return self._delete('following/%s', % parse_user)
132+
return self._delete('following/%s' % parse_user)
133133

134134
def get_keys(self):
135135
""" Get public keys """
136136

137137
return self._get_resources('keys', model=models.Key)
138138

139-
def get_key(self, key_id)
139+
def get_key(self, key_id):
140140
""" Get public key by id """
141141

142142
return self._get_resource('keys/%s' % key_id, model=models.Key)
@@ -151,7 +151,7 @@ def create_key(self, **kwargs):
151151

152152
#TODO: render key.pub file
153153
key = {
154-
'title': kwargs.get('title','')
154+
'title': kwargs.get('title',''),
155155
'key': kwargs.get('key','')
156156
}
157157
return self._post_resource('keys', data=key, model=models.Key)

github3/models/orgs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def idl(self):
1818
'following', 'total_private_repos', 'owned_private_repos',
1919
'private_gists', 'disk_usage', 'collaborators'],
2020
'dates': ['created_at'],
21-
'maps': {'plan': plan}
21+
'maps': {'plan': Plan}
2222
}
2323

2424
def __repr__(self):

github3/models/repos.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ def idl(self):
2222
'maps': {
2323
'owner': User,
2424
'organization': Org,
25-
'parent': 'self',
26-
'source': 'self',
25+
'parent': self.__class__,
26+
'source': self.__class__,
2727
}
2828
}
2929

0 commit comments

Comments
 (0)