aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/03_test_dch_guess_version.py
diff options
context:
space:
mode:
authorDaniel Gollub <dgollub@brocade.com>2015-03-17 08:12:53 +0100
committerGuido Günther <agx@sigxcpu.org>2015-04-25 09:19:56 +0200
commitaa8548d526397a3c4353b7212f3f848ab1f1e283 (patch)
tree1a5d0ee3741167bbf471b1fb04ba1797aa01a935 /tests/03_test_dch_guess_version.py
parent4a53c0f5c5819fb26cd02d746f08d6d4f4ba18f0 (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.py35
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)