/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_testament.py

  • Committer: Jelmer Vernooij
  • Date: 2018-07-08 14:45:27 UTC
  • mto: This revision was merged to the branch mainline in revision 7036.
  • Revision ID: jelmer@jelmer.uk-20180708144527-codhlvdcdg9y0nji
Fix a bunch of merge tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 Canonical Ltd
 
1
# Copyright (C) 2005-2010 Canonical Ltd
2
2
#
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
20
20
 
21
21
import os
22
22
 
23
 
from bzrlib import osutils
24
 
from bzrlib.tests import SymlinkFeature, TestCaseWithTransport
25
 
from bzrlib.testament import Testament, StrictTestament, StrictTestament3
26
 
from bzrlib.transform import TreeTransform
 
23
from breezy import osutils
 
24
from breezy.tests import TestCaseWithTransport
 
25
from breezy.testament import (
 
26
    Testament,
 
27
    StrictTestament,
 
28
    StrictTestament3,
 
29
    )
 
30
from breezy.transform import TreeTransform
 
31
from breezy.tests.features import (
 
32
    SymlinkFeature,
 
33
    )
27
34
 
28
35
 
29
36
class TestamentSetup(TestCaseWithTransport):
30
37
 
31
38
    def setUp(self):
32
39
        super(TestamentSetup, self).setUp()
33
 
        self.wt = self.make_branch_and_tree('.', format='dirstate-with-subtree')
34
 
        self.wt.set_root_id('TREE_ROT')
 
40
        self.wt = self.make_branch_and_tree('.', format='development-subtree')
 
41
        self.wt.set_root_id(b'TREE_ROT')
35
42
        b = self.b = self.wt.branch
36
43
        b.nick = "test branch"
37
44
        self.wt.commit(message='initial null commit',
38
45
                 committer='test@user',
39
46
                 timestamp=1129025423, # 'Tue Oct 11 20:10:23 2005'
40
47
                 timezone=0,
41
 
                 rev_id='test@user-1')
42
 
        self.build_tree_contents([('hello', 'contents of hello file'),
 
48
                 rev_id=b'test@user-1')
 
49
        self.build_tree_contents([('hello', b'contents of hello file'),
43
50
                             ('src/', ),
44
 
                             ('src/foo.c', 'int main()\n{\n}\n')])
 
51
                             ('src/foo.c', b'int main()\n{\n}\n')])
45
52
        self.wt.add(['hello', 'src', 'src/foo.c'],
46
 
                             ['hello-id', 'src-id', 'foo.c-id'])
 
53
                             [b'hello-id', b'src-id', b'foo.c-id'])
47
54
        tt = TreeTransform(self.wt)
48
55
        trans_id = tt.trans_id_tree_path('hello')
49
56
        tt.set_executability(True, trans_id)
51
58
        self.wt.commit(message='add files and directories',
52
59
                 timestamp=1129025483,
53
60
                 timezone=36000,
54
 
                 rev_id='test@user-2',
 
61
                 rev_id=b'test@user-2',
55
62
                 committer='test@user')
56
63
 
57
64
 
68
75
 
69
76
    def test_null_testament(self):
70
77
        """Testament for a revision with no contents."""
71
 
        t = self.from_revision(self.b.repository, 'test@user-1')
 
78
        t = self.from_revision(self.b.repository, b'test@user-1')
72
79
        ass = self.assertTrue
73
80
        eq = self.assertEqual
74
81
        ass(isinstance(t, Testament))
75
 
        eq(t.revision_id, 'test@user-1')
 
82
        eq(t.revision_id, b'test@user-1')
76
83
        eq(t.committer, 'test@user')
77
84
        eq(t.timestamp, 1129025423)
78
85
        eq(t.timezone, 0)
79
86
 
80
87
    def test_testment_text_form(self):
81
88
        """Conversion of testament to canonical text form."""
82
 
        t = self.from_revision(self.b.repository, 'test@user-1')
 
89
        t = self.from_revision(self.b.repository, b'test@user-1')
83
90
        text_form = t.as_text()
84
91
        self.log('testament text form:\n' + text_form)
85
 
        self.assertEqualDiff(text_form, self.expected('rev_1'))
 
92
        self.assertEqualDiff(text_form, self.expected(b'rev_1'))
86
93
        short_text_form = t.as_short_text()
87
 
        self.assertEqualDiff(short_text_form, self.expected('rev_1_short'))
 
94
        self.assertEqualDiff(short_text_form, self.expected(b'rev_1_short'))
88
95
 
89
96
    def test_testament_with_contents(self):
90
97
        """Testament containing a file and a directory."""
91
 
        t = self.from_revision(self.b.repository, 'test@user-2')
 
98
        t = self.from_revision(self.b.repository, b'test@user-2')
92
99
        text_form = t.as_text()
93
100
        self.log('testament text form:\n' + text_form)
94
 
        self.assertEqualDiff(text_form, self.expected('rev_2'))
 
101
        self.assertEqualDiff(text_form, self.expected(b'rev_2'))
95
102
        actual_short = t.as_short_text()
96
 
        self.assertEqualDiff(actual_short, self.expected('rev_2_short'))
 
103
        self.assertEqualDiff(actual_short, self.expected(b'rev_2_short'))
97
104
 
98
105
    def test_testament_symlinks(self):
99
106
        """Testament containing symlink (where possible)"""
100
107
        self.requireFeature(SymlinkFeature)
101
108
        os.symlink('wibble/linktarget', 'link')
102
 
        self.wt.add(['link'], ['link-id'])
 
109
        self.wt.add(['link'], [b'link-id'])
103
110
        self.wt.commit(message='add symlink',
104
111
                 timestamp=1129025493,
105
112
                 timezone=36000,
106
 
                 rev_id='test@user-3',
 
113
                 rev_id=b'test@user-3',
107
114
                 committer='test@user')
108
 
        t = self.from_revision(self.b.repository, 'test@user-3')
109
 
        self.assertEqualDiff(t.as_text(), self.expected('rev_3'))
 
115
        t = self.from_revision(self.b.repository, b'test@user-3')
 
116
        self.assertEqualDiff(t.as_text(), self.expected(b'rev_3'))
110
117
 
111
118
    def test_testament_revprops(self):
112
119
        """Testament to revision with extra properties"""
113
 
        props = dict(flavor='sour cherry\ncream cheese',
114
 
                     size='medium',
115
 
                     empty='',
116
 
                    )
 
120
        props = {u'flavor': 'sour cherry\ncream cheese',
 
121
                 u'size': 'medium',
 
122
                 u'empty': '',
 
123
                 }
117
124
        self.wt.commit(message='revision with properties',
118
125
                      timestamp=1129025493,
119
126
                      timezone=36000,
120
 
                      rev_id='test@user-3',
 
127
                      rev_id=b'test@user-3',
121
128
                      committer='test@user',
122
129
                      revprops=props)
123
 
        t = self.from_revision(self.b.repository, 'test@user-3')
124
 
        self.assertEqualDiff(t.as_text(), self.expected('rev_props'))
 
130
        t = self.from_revision(self.b.repository, b'test@user-3')
 
131
        self.assertEqualDiff(t.as_text(), self.expected(b'rev_props'))
125
132
 
126
133
    def test_testament_unicode_commit_message(self):
127
134
        self.wt.commit(
128
135
            message=u'non-ascii commit \N{COPYRIGHT SIGN} me',
129
136
            timestamp=1129025493,
130
137
            timezone=36000,
131
 
            rev_id='test@user-3',
132
 
            committer='Erik B\xe5gfors <test@user>',
133
 
            revprops={'uni':u'\xb5'}
 
138
            rev_id=b'test@user-3',
 
139
            committer=u'Erik B\xe5gfors <test@user>',
 
140
            revprops={u'uni':u'\xb5'}
134
141
            )
135
 
        t = self.from_revision(self.b.repository, 'test@user-3')
 
142
        t = self.from_revision(self.b.repository, b'test@user-3')
136
143
        self.assertEqualDiff(
137
144
            self.expected('sample_unicode').encode('utf-8'), t.as_text())
138
145
 
 
146
    def test_from_tree(self):
 
147
        tree = self.b.repository.revision_tree(b'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
                                    b'test@user-2').as_short_text()
 
152
        self.assertEqual(text_1, text_2)
 
153
 
139
154
    def test___init__(self):
140
 
        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)
 
155
        revision = self.b.repository.get_revision(b'test@user-2')
 
156
        tree = self.b.repository.revision_tree(b'test@user-2')
 
157
        testament_1 = self.testament_class()(revision, tree)
143
158
        text_1 = testament_1.as_short_text()
144
159
        text_2 = self.from_revision(self.b.repository,
145
 
                                    'test@user-2').as_short_text()
 
160
                                    b'test@user-2').as_short_text()
146
161
        self.assertEqual(text_1, text_2)
147
162
 
148
163
 
158
173
        return StrictTestament3
159
174
 
160
175
 
161
 
REV_1_TESTAMENT = """\
 
176
REV_1_TESTAMENT = b"""\
162
177
bazaar-ng testament version 1
163
178
revision-id: test@user-1
164
179
committer: test@user
174
189
"""
175
190
 
176
191
 
177
 
REV_1_STRICT_TESTAMENT = """\
 
192
REV_1_STRICT_TESTAMENT = b"""\
178
193
bazaar-ng testament version 2.1
179
194
revision-id: test@user-1
180
195
committer: test@user
190
205
"""
191
206
 
192
207
 
193
 
REV_1_STRICT_TESTAMENT3 = """\
 
208
REV_1_STRICT_TESTAMENT3 = b"""\
194
209
bazaar testament version 3 strict
195
210
revision-id: test@user-1
196
211
committer: test@user
211
226
bazaar-ng testament short form 1
212
227
revision-id: test@user-1
213
228
sha1: %s
214
 
""" % osutils.sha(REV_1_TESTAMENT).hexdigest()
 
229
""" % osutils.sha_string(REV_1_TESTAMENT)
215
230
 
216
231
 
217
232
REV_1_SHORT_STRICT = """\
218
233
bazaar-ng testament short form 2.1
219
234
revision-id: test@user-1
220
235
sha1: %s
221
 
""" % osutils.sha(REV_1_STRICT_TESTAMENT).hexdigest()
 
236
""" % osutils.sha_string(REV_1_STRICT_TESTAMENT)
222
237
 
223
238
 
224
239
REV_1_SHORT_STRICT3 = """\
225
240
bazaar testament short form 3 strict
226
241
revision-id: test@user-1
227
242
sha1: %s
228
 
""" % osutils.sha(REV_1_STRICT_TESTAMENT3).hexdigest()
229
 
 
230
 
 
231
 
REV_2_TESTAMENT = """\
 
243
""" % osutils.sha_string(REV_1_STRICT_TESTAMENT3)
 
244
 
 
245
 
 
246
REV_2_TESTAMENT = b"""\
232
247
bazaar-ng testament version 1
233
248
revision-id: test@user-2
234
249
committer: test@user
248
263
"""
249
264
 
250
265
 
251
 
REV_2_STRICT_TESTAMENT = """\
 
266
REV_2_STRICT_TESTAMENT = b"""\
252
267
bazaar-ng testament version 2.1
253
268
revision-id: test@user-2
254
269
committer: test@user
268
283
"""
269
284
 
270
285
 
271
 
REV_2_STRICT_TESTAMENT3 = """\
 
286
REV_2_STRICT_TESTAMENT3 = b"""\
272
287
bazaar testament version 3 strict
273
288
revision-id: test@user-2
274
289
committer: test@user
293
308
bazaar-ng testament short form 1
294
309
revision-id: test@user-2
295
310
sha1: %s
296
 
""" % osutils.sha(REV_2_TESTAMENT).hexdigest()
 
311
""" % osutils.sha_string(REV_2_TESTAMENT)
297
312
 
298
313
 
299
314
REV_2_SHORT_STRICT = """\
300
315
bazaar-ng testament short form 2.1
301
316
revision-id: test@user-2
302
317
sha1: %s
303
 
""" % osutils.sha(REV_2_STRICT_TESTAMENT).hexdigest()
 
318
""" % osutils.sha_string(REV_2_STRICT_TESTAMENT)
304
319
 
305
320
 
306
321
REV_2_SHORT_STRICT3 = """\
307
322
bazaar testament short form 3 strict
308
323
revision-id: test@user-2
309
324
sha1: %s
310
 
""" % osutils.sha(REV_2_STRICT_TESTAMENT3).hexdigest()
311
 
 
312
 
 
313
 
REV_PROPS_TESTAMENT = """\
 
325
""" % osutils.sha_string(REV_2_STRICT_TESTAMENT3)
 
326
 
 
327
 
 
328
REV_PROPS_TESTAMENT = b"""\
314
329
bazaar-ng testament version 1
315
330
revision-id: test@user-3
316
331
committer: test@user
336
351
"""
337
352
 
338
353
 
339
 
REV_PROPS_TESTAMENT_STRICT = """\
 
354
REV_PROPS_TESTAMENT_STRICT = b"""\
340
355
bazaar-ng testament version 2.1
341
356
revision-id: test@user-3
342
357
committer: test@user
362
377
"""
363
378
 
364
379
 
365
 
REV_PROPS_TESTAMENT_STRICT3 = """\
 
380
REV_PROPS_TESTAMENT_STRICT3 = b"""\
366
381
bazaar testament version 3 strict
367
382
revision-id: test@user-3
368
383
committer: test@user
389
404
"""
390
405
 
391
406
 
392
 
REV_3_TESTAMENT = """\
 
407
REV_3_TESTAMENT = b"""\
393
408
bazaar-ng testament version 1
394
409
revision-id: test@user-3
395
410
committer: test@user
410
425
"""
411
426
 
412
427
 
413
 
REV_3_TESTAMENT_STRICT = """\
 
428
REV_3_TESTAMENT_STRICT = b"""\
414
429
bazaar-ng testament version 2.1
415
430
revision-id: test@user-3
416
431
committer: test@user
431
446
"""
432
447
 
433
448
 
434
 
REV_3_TESTAMENT_STRICT3 = """\
 
449
REV_3_TESTAMENT_STRICT3 = b"""\
435
450
bazaar testament version 3 strict
436
451
revision-id: test@user-3
437
452
committer: test@user