Skip to content

Commit 1b1ccd6

Browse files
committed
Litle fixs
1 parent 8430f64 commit 1b1ccd6

File tree

10 files changed

+101
-85
lines changed

10 files changed

+101
-85
lines changed

pygithub3/requests/git_data/commits.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- encoding: utf-8 -*-
22

33
from pygithub3.requests.base import Request
4-
from pygithub3.resources.git_data import Commit
4+
from pygithub3.resources.repos import Commit
55

66

77
class Get(Request):

pygithub3/requests/git_data/references.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class Get(Request):
88

99

1010
class List(Request):
11-
uri = 'repos/{user}/{repo}/git/refs'
11+
uri = 'repos/{user}/{repo}/git/refs/{namespace}'
1212
resource = Reference
1313

1414

pygithub3/requests/git_data/trees.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,11 @@ class Get(Request):
66
uri = 'repos/{user}/{repo}/git/trees/{sha}'
77
resource = Tree
88

9-
def clean_uri(self):
10-
if self.recursive:
11-
return self.uri + '?recursive=1'
12-
139

1410
class Create(Request):
1511
uri = 'repos/{user}/{repo}/git/trees'
1612
resource = Tree
1713
body_schema = {
18-
'schema': ('tree',),
14+
'schema': ('tree', 'base_tree'),
1915
'required': ('tree',),
2016
}

pygithub3/services/base.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ def set_token(self, token):
8080
"""
8181
self._client.set_token(token)
8282

83+
#TODO: Refact as decorator::
84+
"""
85+
Reason: make_request and request_builder ... are confusing names
86+
@precedence('user')
87+
def list(self, sha, user=None):
88+
"""
8389
def make_request(self, request, **kwargs):
8490
if 'user' in kwargs:
8591
kwargs['user'] = kwargs['user'] or self.get_user()
@@ -146,6 +152,7 @@ def _get_normal_result(self, request, **kwargs):
146152
return normal.Result(method)
147153

148154

155+
# XXX: Refact to set_<type> method
149156
class MimeTypeMixin(object):
150157
"""
151158
Mimetype support to Services
Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#!/usr/bin/env python
22
# -*- encoding: utf-8 -*-
33

4-
from pygithub3.services.base import Service
4+
from pygithub3.services.base import Service, MimeTypeMixin
55

66

7-
class Blobs(Service):
7+
class Blobs(Service, MimeTypeMixin):
88
"""Consume `Blobs API <http://developer.github.com/v3/git/blobs/>`_"""
99

1010
def get(self, sha, user=None, repo=None):
@@ -14,10 +14,12 @@ def get(self, sha, user=None, repo=None):
1414
:param str user: Username
1515
:param str repo: Repository
1616
17+
.. note::
18+
Remember :ref:`config precedence`
1719
"""
1820
request = self.make_request('git_data.blobs.get', sha=sha,
19-
user=user, repo=repo)
20-
return self._get(request)
21+
user=user, repo=repo)
22+
return self._get(request, **self._get_mimetype_as_header())
2123

2224
def create(self, data, user=None, repo=None):
2325
"""Create a blob
@@ -26,7 +28,9 @@ def create(self, data, user=None, repo=None):
2628
:param str user: Username
2729
:param str repo: Repository
2830
31+
.. note::
32+
Remember :ref:`config precedence`
2933
"""
3034
request = self.make_request('git_data.blobs.create', body=data,
31-
user=user, repo=repo)
35+
user=user, repo=repo)
3236
return self._post(request)

pygithub3/services/git_data/commits.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,27 @@ class Commits(Service):
1010
def get(self, sha, user=None, repo=None):
1111
"""get a commit from the current repo
1212
13-
:param str sha: SHA of the Commit that you want.
13+
:param str sha: SHA of the Commit that you want
1414
:param str user: Username
1515
:param str repo: Repository
1616
17+
.. note::
18+
Remember :ref:`config precedence`
1719
"""
1820
request = self.make_request('git_data.commits.get', sha=sha,
19-
user=user, repo=repo)
21+
user=user, repo=repo)
2022
return self._get(request)
2123

2224
def create(self, data, user=None, repo=None):
2325
"""create a commit on a repo
2426
2527
:param dict data: Input. See `github commits doc`_
26-
:param str user: username
27-
:param str repo: repository name
28+
:param str user: Username
29+
:param str repo: Repository
2830
31+
.. note::
32+
Remember :ref:`config precedence`
2933
"""
30-
return self._post(
31-
self.make_request('git_data.commits.create', user=user, repo=repo,
32-
body=data)
33-
)
34+
request = self.make_request('git_data.commits.create', user=user,
35+
repo=repo, body=data)
36+
return self._post(request)

pygithub3/services/git_data/references.py

Lines changed: 38 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,60 +8,66 @@ class References(Service):
88
"""Consume `References API <http://developer.github.com/v3/git/refs/>`_"""
99

1010
def get(self, ref, user=None, repo=None):
11-
"""Get a reference.
11+
""" Get a reference
1212
13-
.. note::
14-
Remember that branch references look like "heads/<branch_name>"
15-
16-
:param str ref: the name of the reference to get
13+
:param str ref: The name of the reference to get
1714
:param str user: Username
1815
:param str repo: Repository
1916
17+
.. note::
18+
Remember :ref:`config precedence`
19+
20+
.. note::
21+
Remember that branch references look like "heads/<branch_name>"
2022
"""
21-
return self._get(
22-
self.make_request('git_data.references.get', ref=ref, user=user,
23-
repo=repo)
24-
)
23+
request = self.make_request('git_data.references.get', ref=ref,
24+
user=user, repo=repo)
25+
return self._get(request)
2526

2627
def list(self, namespace='', user=None, repo=None):
27-
"""List all the references
28+
""" List all the references
2829
2930
:param str namespace: Limit the request to a particular type of
3031
reference. For example, ``heads`` or ``tags``.
3132
:param str user: Username
3233
:param str repo: Repository
34+
:returns: A :doc:`result`
3335
36+
.. note::
37+
Remember :ref:`config precedence`
3438
"""
35-
return self._get(
36-
self.make_request('git_data.references.list', user=user, repo=repo)
37-
)
39+
request = self.make_request('git_data.references.list', user=user,
40+
repo=repo, namespace=namespace)
41+
return self._get_result(request)
3842

39-
def create(self, body, user=None, repo=None):
40-
"""Create a reference
43+
def create(self, data, user=None, repo=None):
44+
""" Create a reference
4145
42-
:param dict body: Data describing the reference to create
46+
:param dict data: Input. See `github refs doc`_
4347
:param str user: Username
4448
:param str repo: Repository
4549
50+
.. note::
51+
Remember :ref:`config precedence`
4652
"""
47-
return self._post(
48-
self.make_request('git_data.references.create', body=body,
49-
user=user, repo=repo)
50-
)
53+
request = self.make_request('git_data.references.create', body=data,
54+
user=user, repo=repo)
55+
return self._post(request)
5156

52-
def update(self, ref, body, user=None, repo=None):
53-
"""Update an existing reference
57+
def update(self, ref, data, user=None, repo=None):
58+
""" Update an existing reference
5459
5560
:param str ref: The SHA of the reference to update
56-
:param dict body: Data to update the reference with
61+
:param dict data: Input. See `github refs doc`_
5762
:param str user: Username
5863
:param str repo: Repository
5964
65+
.. note::
66+
Remember :ref:`config precedence`
6067
"""
61-
return self._patch(
62-
self.make_request('git_data.references.update', ref=ref, body=body,
63-
user=user, repo=repo)
64-
)
68+
request = self.make_request('git_data.references.update', ref=ref,
69+
body=data, user=user, repo=repo)
70+
return self._patch(request)
6571

6672
def delete(self, ref, user=None, repo=None):
6773
"""Delete a reference
@@ -70,8 +76,9 @@ def delete(self, ref, user=None, repo=None):
7076
:param str user: Username
7177
:param str repo: Repository
7278
79+
.. note::
80+
Remember :ref:`config precedence`
7381
"""
74-
return self._delete(
75-
self.make_request('git_data.references.delete', ref=ref, user=user,
76-
repo=repo)
77-
)
82+
request = self.make_request('git_data.references.delete', ref=ref,
83+
user=user, repo=repo)
84+
return self._delete(request)

pygithub3/services/git_data/tags.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,29 @@ class Tags(Service):
88
"""Consume `Tags API <http://developer.github.com/v3/git/tags/>`_"""
99

1010
def get(self, sha, user=None, repo=None):
11-
"""Get a tag
11+
""" Get a tag
1212
1313
:param str sha: The sha of the tag to get.
1414
:param str user: Username
1515
:param str repo: Repository
1616
17+
.. note::
18+
Remember :ref:`config precedence`
1719
"""
18-
return self._get(
19-
self.make_request('git_data.tags.get', sha=sha, user=user,
20-
repo=repo)
21-
)
20+
request = self.make_request('git_data.tags.get', sha=sha, user=user,
21+
repo=repo)
22+
return self._get(request)
2223

23-
def create(self, body, user=None, repo=None):
24-
"""Create a tag
24+
def create(self, data, user=None, repo=None):
25+
""" Create a tag
2526
26-
:param dict body: Data describing the tag to create
27+
:param dict data: Input. See `github tags doc`_
2728
:param str user: Username
2829
:param str repo: Repository
2930
31+
.. note::
32+
Remember :ref:`config precedence`
3033
"""
31-
return self._post(
32-
self.make_request('git_data.tags.create', body=body, user=user,
33-
repo=repo)
34-
)
34+
request = self.make_request('git_data.tags.create', body=data,
35+
user=user, repo=repo)
36+
return self._post(request)

pygithub3/services/git_data/trees.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,31 @@ class Trees(Service):
88
"""Consume `Trees API <http://developer.github.com/v3/git/trees/>`_"""
99

1010
def get(self, sha, recursive=False, user=None, repo=None):
11-
"""Get a tree object
11+
""" Get a tree object
1212
1313
:param str sha: The SHA of the tree you want.
1414
:param bool recursive: Whether to resolve each sub-tree belonging to
1515
this tree
1616
:param str user: Username
1717
:param str repo: Repository
1818
19+
.. note::
20+
Remember :ref:`config precedence`
1921
"""
20-
return self._get(
21-
self.make_request('git_data.trees.get', sha=sha,
22-
recursive=recursive, user=user, repo=repo)
23-
)
22+
request = self.make_request('git_data.trees.get', sha=sha, user=user,
23+
repo=repo)
24+
return self._get(request, recursive=recursive)
2425

25-
def create(self, body, user=None, repo=None):
26-
"""Create a tree object
26+
def create(self, data, user=None, repo=None):
27+
""" Create a tree object
2728
28-
:param dict body: Data describing the tree to create
29+
:param dict data: Input. See `github trees doc`_
30+
:param str user: Username
31+
:param str repo: Repository
2932
33+
.. note::
34+
Remember :ref:`config precedence`
3035
"""
31-
return self._post(
32-
self.make_request('git_data.trees.create', body=body, user=user,
33-
repo=repo)
34-
)
36+
request = self.make_request('git_data.trees.create', body=data,
37+
user=user, repo=repo)
38+
return self._post(request)

pygithub3/tests/services/test_git_data.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def test_CREATE(self, reqm):
6161
('post', _('repos/octocat/repo/git/commits'))
6262
)
6363

64+
6465
@patch.object(requests.sessions.Session, 'request')
6566
class TestReferencesService(TestCase):
6667
def setUp(self):
@@ -75,8 +76,8 @@ def test_GET(self, reqm):
7576
)
7677

7778
def test_LIST(self, reqm):
78-
reqm.return_value = mock_response()
79-
self.service.list()
79+
reqm.return_value = mock_response_result()
80+
self.service.list().all()
8081
self.assertEqual(
8182
reqm.call_args[0],
8283
('get', _('repos/user/repo/git/refs'))
@@ -142,14 +143,6 @@ def test_GET(self, reqm):
142143
('get', _('repos/user/repo/git/trees/abc123'))
143144
)
144145

145-
def test_GET_recursive(self, reqm):
146-
reqm.return_value = mock_response()
147-
self.service.get('abc123', recursive=True)
148-
self.assertEqual(
149-
reqm.call_args[0],
150-
('get', _('repos/user/repo/git/trees/abc123?recursive=1'))
151-
)
152-
153146
def test_CREATE(self, reqm):
154147
reqm.return_value = mock_response('post')
155148
self.service.create({

0 commit comments

Comments
 (0)