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
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
17
"""Test testaments for gpg signing."""
19
19
# TODO: Testaments with x-bits
24
from bzrlib.tests import SymlinkFeature, TestCaseWithTransport
25
from bzrlib.testament import Testament, StrictTestament, StrictTestament3
23
from bzrlib import osutils
24
from bzrlib.tests import TestCaseWithTransport
25
from bzrlib.testament import (
26
30
from bzrlib.transform import TreeTransform
31
from bzrlib.tests.features import (
29
36
class TestamentSetup(TestCaseWithTransport):
32
39
super(TestamentSetup, self).setUp()
33
self.wt = self.make_branch_and_tree('.', format='dirstate-with-subtree')
40
self.wt = self.make_branch_and_tree('.', format='development-subtree')
34
41
self.wt.set_root_id('TREE_ROT')
35
42
b = self.b = self.wt.branch
36
43
b.nick = "test branch"
129
136
timestamp=1129025493,
131
138
rev_id='test@user-3',
132
committer='Erik B\xe5gfors <test@user>',
139
committer=u'Erik B\xe5gfors <test@user>',
133
140
revprops={'uni':u'\xb5'}
135
142
t = self.from_revision(self.b.repository, 'test@user-3')
136
143
self.assertEqualDiff(
137
144
self.expected('sample_unicode').encode('utf-8'), t.as_text())
146
def test_from_tree(self):
147
tree = self.b.repository.revision_tree('test@user-2')
148
testament = self.testament_class().from_revision_tree(tree)
149
text_1 = testament.as_short_text()
150
text_2 = self.from_revision(self.b.repository,
151
'test@user-2').as_short_text()
152
self.assertEqual(text_1, text_2)
139
154
def test___init__(self):
140
155
revision = self.b.repository.get_revision('test@user-2')
141
inventory = self.b.repository.get_inventory('test@user-2')
142
testament_1 = self.testament_class()(revision, inventory)
156
tree = self.b.repository.revision_tree('test@user-2')
157
testament_1 = self.testament_class()(revision, tree)
143
158
text_1 = testament_1.as_short_text()
144
text_2 = self.from_revision(self.b.repository,
159
text_2 = self.from_revision(self.b.repository,
145
160
'test@user-2').as_short_text()
146
161
self.assertEqual(text_1, text_2)
149
164
class TestamentTestsStrict(TestamentTests):
151
166
def testament_class(self):
152
167
return StrictTestament
155
170
class TestamentTestsStrict2(TestamentTests):
157
172
def testament_class(self):
158
173
return StrictTestament3
211
226
bazaar-ng testament short form 1
212
227
revision-id: test@user-1
214
""" % sha(REV_1_TESTAMENT).hexdigest()
229
""" % osutils.sha_string(REV_1_TESTAMENT)
217
232
REV_1_SHORT_STRICT = """\
218
233
bazaar-ng testament short form 2.1
219
234
revision-id: test@user-1
221
""" % sha(REV_1_STRICT_TESTAMENT).hexdigest()
236
""" % osutils.sha_string(REV_1_STRICT_TESTAMENT)
224
239
REV_1_SHORT_STRICT3 = """\
225
240
bazaar testament short form 3 strict
226
241
revision-id: test@user-1
228
""" % sha(REV_1_STRICT_TESTAMENT3).hexdigest()
243
""" % osutils.sha_string(REV_1_STRICT_TESTAMENT3)
231
246
REV_2_TESTAMENT = """\
293
308
bazaar-ng testament short form 1
294
309
revision-id: test@user-2
296
""" % sha(REV_2_TESTAMENT).hexdigest()
311
""" % osutils.sha_string(REV_2_TESTAMENT)
299
314
REV_2_SHORT_STRICT = """\
300
315
bazaar-ng testament short form 2.1
301
316
revision-id: test@user-2
303
""" % sha(REV_2_STRICT_TESTAMENT).hexdigest()
318
""" % osutils.sha_string(REV_2_STRICT_TESTAMENT)
306
321
REV_2_SHORT_STRICT3 = """\
307
322
bazaar testament short form 3 strict
308
323
revision-id: test@user-2
310
""" % sha(REV_2_STRICT_TESTAMENT3).hexdigest()
325
""" % osutils.sha_string(REV_2_STRICT_TESTAMENT3)
313
328
REV_PROPS_TESTAMENT = """\