api: implemented missing get_repo_refs api backend. Fixes #4677

This commit is contained in:
Marcin Kuzminski 2016-12-16 16:15:18 +01:00
parent 501b590618
commit f3c3db2bf5
3 changed files with 70 additions and 4 deletions

View file

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2010-2016 RhodeCode GmbH
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
import pytest
from rhodecode.model.meta import Session
from rhodecode.model.repo import RepoModel
from rhodecode.model.user import UserModel
from rhodecode.tests import TEST_USER_ADMIN_LOGIN
from rhodecode.api.tests.utils import (
build_data, api_call, assert_ok, assert_error, expected_permissions)
@pytest.mark.usefixtures("testuser_api", "app")
class TestGetRepo(object):
def test_api_get_repo_refs(self, backend, user_util):
repo = backend.create_repo()
id_, params = build_data(self.apikey, 'get_repo_refs',
**{'repoid': repo.repo_name,})
response = api_call(self.app, params)
expected = repo.scm_instance().refs()
assert_ok(id_, expected, given=response.body)

View file

@ -512,9 +512,23 @@ def get_repo_refs(request, apiuser, repoid):
.. code-block:: bash
id : <id_given_in_input>
result: [
TODO...
]
"result": {
"bookmarks": {
"dev": "5611d30200f4040ba2ab4f3d64e5b06408a02188",
"master": "367f590445081d8ec8c2ea0456e73ae1f1c3d6cf"
},
"branches": {
"default": "5611d30200f4040ba2ab4f3d64e5b06408a02188",
"stable": "367f590445081d8ec8c2ea0456e73ae1f1c3d6cf"
},
"branches_closed": {},
"tags": {
"tip": "5611d30200f4040ba2ab4f3d64e5b06408a02188",
"v4.4.0": "1232313f9e6adac5ce5399c2a891dc1e72b79022",
"v4.4.1": "cbb9f1d329ae5768379cdec55a62ebdd546c4e27",
"v4.4.2": "24ffe44a27fcd1c5b6936144e176b9f6dd2f3a17",
}
}
error: null
"""

View file

@ -226,7 +226,12 @@ class BaseRepository(object):
returns a `dict` with branches, bookmarks, tags, and closed_branches
for this repository
"""
raise NotImplementedError
return dict(
branches=self.branches,
branches_closed=self.branches_closed,
tags=self.tags,
bookmarks=self.bookmarks
)
@LazyProperty
def branches(self):
@ -235,6 +240,13 @@ class BaseRepository(object):
"""
raise NotImplementedError
@LazyProperty
def tags(self):
"""
A `dict` which maps tags names to commit ids.
"""
raise NotImplementedError
@LazyProperty
def size(self):
"""