diff options
author | Daniel Gollub <dgollub@brocade.com> | 2015-03-17 08:12:53 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2015-04-25 09:19:56 +0200 |
commit | aa8548d526397a3c4353b7212f3f848ab1f1e283 (patch) | |
tree | 1a5d0ee3741167bbf471b1fb04ba1797aa01a935 /tests/03_test_dch_guess_version.py | |
parent | 4a53c0f5c5819fb26cd02d746f08d6d4f4ba18f0 (diff) |
Guess upstream-tag based on merge-base
In some unfortunate cases you might have something like this:
$ git tag
v1.0
vyatta/1.0-0something1
... where later tag is closer to describe current HEAD.
With upstream-tag set to v%(version)s find_tag() is going to propose
something based on vyatta/1.0-0something1 which is not expected.
The problem is that find_tag() returns tags, which match the
upstream-tag format, but which are not on the upstream-branch at all.
To fix this find_tag()/git-describe should not be used to determine
the closest upstream-tag.
Closes: gh#7
Diffstat (limited to 'tests/03_test_dch_guess_version.py')
-rw-r--r-- | tests/03_test_dch_guess_version.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/tests/03_test_dch_guess_version.py b/tests/03_test_dch_guess_version.py index 38d097c2..d7035018 100644 --- a/tests/03_test_dch_guess_version.py +++ b/tests/03_test_dch_guess_version.py @@ -15,14 +15,18 @@ class TestGuessVersionFromUpstream(testutils.DebianGitTestRepo): cp = testutils.MockedChangeLog('1.0-1') tagformat = 'upstream/%(version)s' uversion = '1.1' + upstream_branch = 'upstream' + self.add_file('doesnot', 'matter') + self.repo.create_branch('upstream') tag = self.repo.version_to_tag(tagformat, uversion) self.repo.create_tag(name=tag, msg="Upstream release %s" % uversion, sign=False) - + self.repo.set_branch("master") guessed = dch.guess_version_from_upstream(self.repo, tagformat, + upstream_branch, cp) self.assertEqual('1.1-1', guessed) @@ -32,14 +36,43 @@ class TestGuessVersionFromUpstream(testutils.DebianGitTestRepo): tagformat = 'upstream/%(version)s' uversion = '1.1' + upstream_branch = 'upstream' self.add_file('doesnot', 'matter') + self.repo.create_branch('upstream') tag = self.repo.version_to_tag(tagformat, uversion) self.repo.create_tag(name=tag, msg="Upstream release %s" % uversion, sign=False) + self.repo.set_branch("master") guessed = dch.guess_version_from_upstream(self.repo, tagformat, + upstream_branch, cp) self.assertEqual('1:1.1-1', guessed) + + def test_guess_upstream_tag_clash_with_non_upstream_tag(self): + """Guess with clashing upstream- and non-upstream-tag""" + cp = testutils.MockedChangeLog('0.9-1') + + tagformat = 'v%(version)s' + uversion = '1.0' + upstream_branch = 'upstream' + + self.add_file('doesnot', 'matter') + self.repo.create_branch('upstream') + tag = self.repo.version_to_tag(tagformat, uversion) + self.repo.create_tag(name=tag, msg="Upstream release %s" % uversion, + sign=False) + self.repo.set_branch("master") + self.add_file("clash", "bar") + self.repo.create_tag("vyatta/something", msg="some non-upstream tag but not package release tag either") + self.add_file("clash2", "bar") + + guessed = dch.guess_version_from_upstream(self.repo, + tagformat, + upstream_branch, + cp) + + self.assertEqual('1.0-1', guessed) |