1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
# vim: set fileencoding=utf-8 :
"""Test L{Changelog}'s guess_version_from_upstream"""
from . import context # noqa: F401
from . import testutils
from gbp.scripts import dch
class TestGuessVersionFromUpstream(testutils.DebianGitTestRepo):
"""Test guess_version_from_upstream"""
def test_guess_no_epoch(self):
"""Guess the new version from the upstream tag"""
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)
def test_guess_epoch(self):
"""Check if we picked up the epoch correctly (#652366)"""
cp = testutils.MockedChangeLog('1: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-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)
def test_guess_upstream_tag_zero_release(self):
"""Guess with existing -0... releases"""
cp = testutils.MockedChangeLog('0.9-0vyatta2')
tagformat = 'upstream/%(version)s'
uversion = '0.9'
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('doesnot2', 'matter')
guessed = dch.guess_version_from_upstream(self.repo,
tagformat,
upstream_branch,
cp)
self.assertEqual(None, guessed)
def test_guess_mangled_upstream_tag(self):
"""Guess the new version from the upstream tag using a mangled tag format"""
cp = testutils.MockedChangeLog('1.0-1')
tagformat = 'upstream/%(version%~%-)s'
uversion = '1.1~rc1'
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~rc1-1', guessed)
def test_no_changelog(self):
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,
None)
self.assertEqual('1.1-1', guessed)
|