From 393edba385ba101ff6c8cba222a9da5fb7fe5c65 Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Thu, 17 Jan 2013 10:41:18 +0200 Subject: buildpackage-rpm: support setting the 'VCS:' tag in spec Now gbp buildpackage-rpm is able to update the 'VCS:' tag in the exported spec file. A new config option 'spec-vcs-tag' controls the format: - if empty, no 'VCS' tag is inserted and possible old 'VCS' tag is removed - otherwise, a 'VCS' tag is inserted or the old 'VCS' tag is updated The spec-vcs-tag is a format string which supports the following keywords: - '%(commit)' expands to the full commit sha1 - '%(commitish)' expands to the sha1 of the exported object (commit or tag) - '%(tagname)s' expands to the long tag name (from git-describe) Signed-off-by: Markus Lehtonen --- tests/component/rpm/test_buildpackage_rpm.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/component/rpm/test_buildpackage_rpm.py b/tests/component/rpm/test_buildpackage_rpm.py index 0f50ad14..78e9ff37 100644 --- a/tests/component/rpm/test_buildpackage_rpm.py +++ b/tests/component/rpm/test_buildpackage_rpm.py @@ -605,3 +605,21 @@ class TestGbpRpm(RpmRepoTestBase): # Packaging dir should be taken from spec file if it is defined eq_(mock_gbp(['--git-packaging-dir=foo', '--git-spec-file=packaging/gbp-test-native.spec']), 0) + + def test_option_spec_vcs_tag(self): + """Test the --git-spec-vcs-tag cmdline option""" + repo = self.init_test_repo('gbp-test-native') + + eq_(mock_gbp(['--git-spec-vcs-tag=foobar-%(commit)s']), 0) + sha1 = repo.rev_parse('HEAD') + num_tags = 0 + with open('../rpmbuild/SPECS/gbp-test-native.spec') as fobj: + for line in fobj.readlines(): + if line.startswith('VCS: '): + ok_(re.match(r'VCS:\s+foobar-%s\n$' % sha1, line)) + num_tags += 1 + eq_(num_tags, 1) + + # Test invalid key + eq_(mock_gbp(['--git-spec-vcs-tag=%(invalid-key)s']), 1) + self._check_log(-1, r".*Failed to format %\(invalid-key\)s") -- cgit v1.2.3