18
18
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23
from bzrlib.errors import InvalidRevisionSpec
24
from bzrlib.revisionspec import RevisionSpec
21
26
from bzrlib.tests.test_revisionspec import TestRevisionSpec
23
from bzrlib.revisionspec import RevisionSpec
28
from bzrlib.plugins.builddeb.tests import Version, Changelog
25
29
from bzrlib.plugins.builddeb.errors import (
29
from bzrlib.plugins.builddeb.revspec import RevisionSpec_package
33
from bzrlib.plugins.builddeb.revspec import (
35
RevisionSpec_upstream,
32
39
class TestRevisionSpec_package(TestRevisionSpec):
48
55
self.assertRaises(VersionNotSpecified,
49
56
self.get_in_history, 'package:')
59
class TestRevisionSpec_upstream(TestRevisionSpec):
62
package_version = Version('0.1-1')
63
upstream_version = property(lambda self: \
64
self.package_version.upstream_version)
66
def make_changelog(self, version=None):
68
version = self.package_version
71
c.version = Version(version)
72
c.package = self.package_name
73
c.distributions = 'unstable'
75
c.author = 'James Westby <jw+debian@jameswestby.net>'
76
c.date = 'Thu, 3 Aug 2006 19:16:22 +0100'
78
c.add_change(' * test build')
82
def write_changelog(self, changelog, filename):
83
f = open(filename, 'w')
84
changelog.write_to_open_file(f)
87
def add_changelog(self, tree, version):
88
cl = self.make_changelog("1.2-1")
90
self.write_changelog(cl, os.path.join(tree.basedir, 'debian/changelog'))
91
tree.add(['debian', 'debian/changelog'])
93
def test_from_string_package(self):
94
self.make_branch_and_tree('.')
95
spec = RevisionSpec.from_string('upstream:')
96
self.assertIsInstance(spec, RevisionSpec_upstream)
97
self.assertEqual(spec.spec, '')
99
def test_no_changelog(self):
100
t = self.make_branch_and_tree('.')
101
spec = RevisionSpec.from_string('upstream:')
102
self.assertRaises(InvalidRevisionSpec, spec.as_revision_id, t.branch)
104
def test_version_specified(self):
105
t = self.make_branch_and_tree('.')
106
upstream_revid = t.commit('The upstream revision')
107
t.branch.tags.set_tag("upstream-1.2", upstream_revid)
108
t.commit('Mention upstream.')
109
self.add_changelog(t, "1.2-1")
110
spec = RevisionSpec.from_string('upstream:1.2')
111
self.assertEquals(upstream_revid, spec.as_revision_id(t.branch))
112
spec = RevisionSpec.from_string('upstream:1.2-1')
113
self.assertEquals(upstream_revid, spec.as_revision_id(t.branch))
115
def test_version_from_changelog(self):
116
t = self.make_branch_and_tree('.')
117
upstream_revid = t.commit('The upstream revision')
118
t.branch.tags.set_tag("upstream-1.2", upstream_revid)
119
t.commit('Mention upstream.')
120
self.add_changelog(t, "1.2-1")
121
spec = RevisionSpec.from_string('upstream:')
122
self.assertEquals(upstream_revid, spec.as_revision_id(t.branch))