diff options
author | Gauvain Pocentek <gauvain.pocentek@objectif-libre.com> | 2016-01-30 18:09:41 +0100 |
---|---|---|
committer | Gauvain Pocentek <gauvain.pocentek@objectif-libre.com> | 2016-01-30 18:09:41 +0100 |
commit | fc8affd11c90d795a118f3def977a8dd37372ce0 (patch) | |
tree | 827b57cfde55a6f976d85edab753ca4e8f80f336 | |
parent | 141f21a9982e3de54e8c8d6a5138cc08a91e1492 (diff) | |
download | gitlab-fc8affd11c90d795a118f3def977a8dd37372ce0.tar.gz |
Fix Project.tree()
Add API tests for tree(), blob() and archive().
-rw-r--r-- | gitlab/objects.py | 12 | ||||
-rw-r--r-- | tools/python_test.py | 9 |
2 files changed, 18 insertions, 3 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py index ec66e17..d41b70e 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -1207,14 +1207,20 @@ class Project(GitlabObject): **kwargs) def tree(self, path='', ref_name='', **kwargs): - url = "%s/%s/repository/tree" % (self._url, self.id) - url += '?path=%s&ref_name=%s' % (path, ref_name) + url = "/projects/%s/repository/tree" % (self.id) + params = [] + if path: + params.append("path=%s" % path) + if ref_name: + params.append("ref_name=%s" % ref_name) + if params: + url += '?' + "&".join(params) r = self.gitlab._raw_get(url, **kwargs) raise_error_from_response(r, GitlabGetError) return r.json() def blob(self, sha, filepath, **kwargs): - url = "%s/%s/repository/blobs/%s" % (self._url, self.id, sha) + url = "/projects/%s/repository/blobs/%s" % (self.id, sha) url += '?filepath=%s' % (filepath) r = self.gitlab._raw_get(url, **kwargs) raise_error_from_response(r, GitlabGetError) diff --git a/tools/python_test.py b/tools/python_test.py index fd93f89..8791da2 100644 --- a/tools/python_test.py +++ b/tools/python_test.py @@ -121,6 +121,15 @@ admin_project.files.create({'file_path': 'README.rst', readme = admin_project.files.get(file_path='README.rst', ref='master') assert(readme.decode() == 'Initial content') +tree = admin_project.tree() +assert(len(tree) == 1) +assert(tree[0]['name'] == 'README.rst') +blob = admin_project.blob('master', 'README.rst') +assert(blob == 'Initial content') +archive1 = admin_project.archive() +archive2 = admin_project.archive('master') +assert(archive1 == archive2) + # labels label1 = admin_project.labels.create({'name': 'label1', 'color': '#778899'}) label1 = admin_project.labels.get('label1') |