1
# Copyright (C) 2005, 2006 Canonical Ltd
1
# Copyright (C) 2005-2010 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
36
37
self.build_tree(['branch/b'])
38
39
wt.commit('adding b', rev_id='r2')
40
self.revisions = wt.branch.revision_history()
43
42
def test_basic(self):
43
wt = self.create_tree()
46
45
txt = self.run_bzr('version-info branch')[0]
47
46
self.assertContainsRe(txt, 'date:')
48
47
self.assertContainsRe(txt, 'build-date:')
49
48
self.assertContainsRe(txt, 'revno: 2')
50
self.assertContainsRe(txt, 'revision-id: ' + self.revisions[-1])
49
self.assertContainsRe(txt, 'revision-id: ' + wt.branch.last_revision())
52
51
def test_all(self):
53
52
"""'--all' includes clean, revision history, and file revisions"""
53
wt = self.create_tree()
55
54
txt = self.run_bzr('version-info branch --all')[0]
56
55
self.assertContainsRe(txt, 'date:')
57
56
self.assertContainsRe(txt, 'revno: 2')
58
self.assertContainsRe(txt, 'revision-id: ' + self.revisions[-1])
57
self.assertContainsRe(txt, 'revision-id: ' + wt.branch.last_revision())
59
58
self.assertContainsRe(txt, 'clean: True')
60
59
self.assertContainsRe(txt, 'revisions:')
61
for rev_id in self.revisions:
60
for rev_id in wt.branch.repository.all_revision_ids():
62
61
self.assertContainsRe(txt, 'id: ' + rev_id)
63
62
self.assertContainsRe(txt, 'message: adding a')
64
63
self.assertContainsRe(txt, 'message: adding b')
151
150
'"{revno} {branch_nick} {clean}\n" branch')
152
151
self.assertEqual("2 branch 0\n", out)
153
152
self.assertEqual("", err)
154
def test_custom_no_clean_in_template(self):
155
def should_not_be_called(self):
156
raise AssertionError("Method on %r should not have been used" % (self,))
157
self.overrideAttr(VersionInfoBuilder, "_extract_file_revisions",
158
should_not_be_called)
160
out, err = self.run_bzr('version-info --custom --template=r{revno} branch')
161
self.assertEqual("r2", out)
162
self.assertEqual("", err)
164
def test_non_ascii(self):
165
"""Test that we can output non-ascii data"""
167
commit_message = u'Non-ascii message with character not in latin-1: \u1234'
169
tree = self.make_branch_and_tree('.')
170
self.build_tree(['a_file'])
172
tree.commit(commit_message)
173
out, err = self.run_bzr(
174
['version-info', '--include-history'], encoding='latin-1')
176
self.assertContainsString(out, commit_message.encode('utf-8'))
178
def test_revision(self):
179
tree = self.create_tree()
180
branch = self.make_branch('just_branch')
181
branch.pull(tree.branch)
183
txt = self.run_bzr('version-info -r1 just_branch')[0]
184
self.assertStartsWith(txt, 'revision-id: r1\n')