diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2013-01-17 10:41:18 +0200 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2018-01-29 10:40:20 +0100 |
commit | 393edba385ba101ff6c8cba222a9da5fb7fe5c65 (patch) | |
tree | fa7289f0092a5af7fd64004acd32cafe55edd310 /tests/component/rpm/test_buildpackage_rpm.py | |
parent | a0f6f11c87cb164b245a89332eece5d0af92f7ed (diff) |
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 <markus.lehtonen@linux.intel.com>
Diffstat (limited to 'tests/component/rpm/test_buildpackage_rpm.py')
-rw-r--r-- | tests/component/rpm/test_buildpackage_rpm.py | 18 |
1 files changed, 18 insertions, 0 deletions
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") |