1
# Copyright (C) 2005-2010 Canonical Ltd
1
# Copyright (C) 2005, 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
17
"""Test testaments for gpg signing."""
19
19
# TODO: Testaments with x-bits
23
from bzrlib import osutils
24
24
from bzrlib.tests import TestCaseWithTransport
25
from bzrlib.testament import (
25
from bzrlib.testament import Testament, StrictTestament, StrictTestament3
30
26
from bzrlib.transform import TreeTransform
31
from bzrlib.tests.features import (
27
from bzrlib.osutils import has_symlinks
36
30
class TestamentSetup(TestCaseWithTransport):
105
99
def test_testament_symlinks(self):
106
100
"""Testament containing symlink (where possible)"""
107
self.requireFeature(SymlinkFeature)
101
if not has_symlinks():
108
103
os.symlink('wibble/linktarget', 'link')
109
104
self.wt.add(['link'], ['link-id'])
110
105
self.wt.commit(message='add symlink',
136
131
timestamp=1129025493,
138
133
rev_id='test@user-3',
139
committer=u'Erik B\xe5gfors <test@user>',
134
committer='Erik B\xe5gfors <test@user>',
140
135
revprops={'uni':u'\xb5'}
142
137
t = self.from_revision(self.b.repository, 'test@user-3')
143
138
self.assertEqualDiff(
144
139
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)
154
141
def test___init__(self):
155
142
revision = self.b.repository.get_revision('test@user-2')
156
tree = self.b.repository.revision_tree('test@user-2')
157
testament_1 = self.testament_class()(revision, tree)
143
inventory = self.b.repository.get_inventory('test@user-2')
144
testament_1 = self.testament_class()(revision, inventory)
158
145
text_1 = testament_1.as_short_text()
159
text_2 = self.from_revision(self.b.repository,
146
text_2 = self.from_revision(self.b.repository,
160
147
'test@user-2').as_short_text()
161
148
self.assertEqual(text_1, text_2)
164
151
class TestamentTestsStrict(TestamentTests):
166
153
def testament_class(self):
167
154
return StrictTestament
170
157
class TestamentTestsStrict2(TestamentTests):
172
159
def testament_class(self):
173
160
return StrictTestament3
226
213
bazaar-ng testament short form 1
227
214
revision-id: test@user-1
229
""" % osutils.sha_string(REV_1_TESTAMENT)
216
""" % sha(REV_1_TESTAMENT).hexdigest()
232
219
REV_1_SHORT_STRICT = """\
233
220
bazaar-ng testament short form 2.1
234
221
revision-id: test@user-1
236
""" % osutils.sha_string(REV_1_STRICT_TESTAMENT)
223
""" % sha(REV_1_STRICT_TESTAMENT).hexdigest()
239
226
REV_1_SHORT_STRICT3 = """\
240
227
bazaar testament short form 3 strict
241
228
revision-id: test@user-1
243
""" % osutils.sha_string(REV_1_STRICT_TESTAMENT3)
230
""" % sha(REV_1_STRICT_TESTAMENT3).hexdigest()
246
233
REV_2_TESTAMENT = """\
308
295
bazaar-ng testament short form 1
309
296
revision-id: test@user-2
311
""" % osutils.sha_string(REV_2_TESTAMENT)
298
""" % sha(REV_2_TESTAMENT).hexdigest()
314
301
REV_2_SHORT_STRICT = """\
315
302
bazaar-ng testament short form 2.1
316
303
revision-id: test@user-2
318
""" % osutils.sha_string(REV_2_STRICT_TESTAMENT)
305
""" % sha(REV_2_STRICT_TESTAMENT).hexdigest()
321
308
REV_2_SHORT_STRICT3 = """\
322
309
bazaar testament short form 3 strict
323
310
revision-id: test@user-2
325
""" % osutils.sha_string(REV_2_STRICT_TESTAMENT3)
312
""" % sha(REV_2_STRICT_TESTAMENT3).hexdigest()
328
315
REV_PROPS_TESTAMENT = """\