~jelmer/bzr-builddeb/mu-unicode-tarfile-version

« back to all changes in this revision

Viewing changes to tests/test_revspec.py

  • Committer: Jelmer Vernooij
  • Date: 2011-12-17 16:58:12 UTC
  • Revision ID: jelmer@samba.org-20111217165812-j7ap0xf2jta0u34a
Add some more tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
19
#
20
20
 
 
21
import os
 
22
 
 
23
from bzrlib.errors import InvalidRevisionSpec
 
24
from bzrlib.revisionspec import RevisionSpec
 
25
 
21
26
from bzrlib.tests.test_revisionspec import TestRevisionSpec
22
27
 
23
 
from bzrlib.revisionspec import RevisionSpec
24
 
 
 
28
from bzrlib.plugins.builddeb.tests import Version, Changelog
25
29
from bzrlib.plugins.builddeb.errors import (
26
 
        UnknownVersion,
27
 
        VersionNotSpecified,
28
 
        )
29
 
from bzrlib.plugins.builddeb.revspec import RevisionSpec_package
 
30
    UnknownVersion,
 
31
    VersionNotSpecified,
 
32
    )
 
33
from bzrlib.plugins.builddeb.revspec import (
 
34
    RevisionSpec_package,
 
35
    RevisionSpec_upstream,
 
36
    )
30
37
 
31
38
 
32
39
class TestRevisionSpec_package(TestRevisionSpec):
48
55
        self.assertRaises(VersionNotSpecified,
49
56
                self.get_in_history, 'package:')
50
57
 
 
58
 
 
59
class TestRevisionSpec_upstream(TestRevisionSpec):
 
60
 
 
61
    package_name = 'test'
 
62
    package_version = Version('0.1-1')
 
63
    upstream_version = property(lambda self: \
 
64
                                self.package_version.upstream_version)
 
65
 
 
66
    def make_changelog(self, version=None):
 
67
        if version is None:
 
68
            version = self.package_version
 
69
        c = Changelog()
 
70
        c.new_block()
 
71
        c.version = Version(version)
 
72
        c.package = self.package_name
 
73
        c.distributions = 'unstable'
 
74
        c.urgency = 'low'
 
75
        c.author = 'James Westby <jw+debian@jameswestby.net>'
 
76
        c.date = 'Thu,  3 Aug 2006 19:16:22 +0100'
 
77
        c.add_change('')
 
78
        c.add_change('  *  test build')
 
79
        c.add_change('')
 
80
        return c
 
81
 
 
82
    def write_changelog(self, changelog, filename):
 
83
        f = open(filename, 'w')
 
84
        changelog.write_to_open_file(f)
 
85
        f.close()
 
86
 
 
87
    def add_changelog(self, tree, version):
 
88
        cl = self.make_changelog("1.2-1")
 
89
        tree.mkdir('debian')
 
90
        self.write_changelog(cl, os.path.join(tree.basedir, 'debian/changelog'))
 
91
        tree.add(['debian', 'debian/changelog'])
 
92
 
 
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, '')
 
98
 
 
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)
 
103
 
 
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))
 
114
 
 
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))