From: Markus Lehtonen Date: Tue, 1 Apr 2014 09:15:48 +0000 (+0300) Subject: MirrorGitRepository: add list_tags() method X-Git-Tag: submit/devel/20190730.075437~34 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=03510294f4c1e02a14996a589bfe7928bc25eb62;p=services%2Fobs-service-git-buildpackage.git MirrorGitRepository: add list_tags() method For getting tags pointing at a certain object. Change-Id: I5e952d912c79e0ed8ba22061e484a88866d0fc27 Signed-off-by: Markus Lehtonen --- diff --git a/gbp_repocache/__init__.py b/gbp_repocache/__init__.py index d3772ef..981b6cc 100644 --- a/gbp_repocache/__init__.py +++ b/gbp_repocache/__init__.py @@ -109,6 +109,10 @@ class MirrorGitRepository(GitRepository): # pylint: disable=R0904 repo.force_fetch() return repo + def list_tags(self, obj): + """List tags pointing at certain object""" + return self._git_inout('tag', ['--points-at', obj])[0].splitlines() + def get_tag_info(self, tag): """Look up data of a tag""" stdout, _stderr, ret = self._git_inout('cat-file', ['tag', tag]) diff --git a/tests/test_gbp_repocache.py b/tests/test_gbp_repocache.py index 3205696..636e505 100644 --- a/tests/test_gbp_repocache.py +++ b/tests/test_gbp_repocache.py @@ -79,6 +79,18 @@ class TestMirrorGitRepository(UnitTestsBase): # Restore orig repo HEAD self.orig_repo.set_branch(orig_branch) + def test_list_tags(self): + """Test list_tags() method""" + repo = MirrorGitRepository.clone('testrepo', self.orig_repo.path) + + # No tags pointing to HEAD + repo.create_tag('tag1', msg='Tag 1', commit='HEAD^') + eq_(repo.list_tags('HEAD'), []) + + # One tag pointing to HEAD + repo.create_tag('tag2', msg='Tag 2') + eq_(repo.list_tags('HEAD'), ['tag2']) + def test_get_tag_info(self): """Test get_tag_info() method""" repo = MirrorGitRepository.clone('testrepo', self.orig_repo.path)