/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-05-06 11:48:54 UTC
  • mto: This revision was merged to the branch mainline in revision 6960.
  • Revision ID: jelmer@jelmer.uk-20180506114854-h4qd9ojaqy8wxjsd
Move .mailmap to root.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
from breezy import osutils
24
24
from breezy.tests import TestCaseWithTransport
25
 
from breezy.bzr.testament import (
 
25
from breezy.testament import (
26
26
    Testament,
27
27
    StrictTestament,
28
28
    StrictTestament3,
29
29
    )
 
30
from breezy.transform import TreeTransform
30
31
from breezy.tests.features import (
31
32
    SymlinkFeature,
32
33
    )
41
42
        b = self.b = self.wt.branch
42
43
        b.nick = "test branch"
43
44
        self.wt.commit(message='initial null commit',
44
 
                       committer='test@user',
45
 
                       timestamp=1129025423,  # 'Tue Oct 11 20:10:23 2005'
46
 
                       timezone=0,
47
 
                       rev_id=b'test@user-1')
 
45
                 committer='test@user',
 
46
                 timestamp=1129025423, # 'Tue Oct 11 20:10:23 2005'
 
47
                 timezone=0,
 
48
                 rev_id=b'test@user-1')
48
49
        self.build_tree_contents([('hello', b'contents of hello file'),
49
 
                                  ('src/', ),
50
 
                                  ('src/foo.c', b'int main()\n{\n}\n')])
 
50
                             ('src/', ),
 
51
                             ('src/foo.c', b'int main()\n{\n}\n')])
51
52
        self.wt.add(['hello', 'src', 'src/foo.c'],
52
 
                    [b'hello-id', b'src-id', b'foo.c-id'])
53
 
        tt = self.wt.get_transform()
 
53
                             [b'hello-id', b'src-id', b'foo.c-id'])
 
54
        tt = TreeTransform(self.wt)
54
55
        trans_id = tt.trans_id_tree_path('hello')
55
56
        tt.set_executability(True, trans_id)
56
57
        tt.apply()
57
58
        self.wt.commit(message='add files and directories',
58
 
                       timestamp=1129025483,
59
 
                       timezone=36000,
60
 
                       rev_id=b'test@user-2',
61
 
                       committer='test@user')
 
59
                 timestamp=1129025483,
 
60
                 timezone=36000,
 
61
                 rev_id=b'test@user-2',
 
62
                 committer='test@user')
62
63
 
63
64
 
64
65
class TestamentTests(TestamentSetup):
74
75
 
75
76
    def test_null_testament(self):
76
77
        """Testament for a revision with no contents."""
77
 
        t = self.from_revision(self.b.repository, b'test@user-1')
 
78
        t = self.from_revision(self.b.repository, 'test@user-1')
78
79
        ass = self.assertTrue
79
80
        eq = self.assertEqual
80
81
        ass(isinstance(t, Testament))
81
 
        eq(t.revision_id, b'test@user-1')
 
82
        eq(t.revision_id, 'test@user-1')
82
83
        eq(t.committer, 'test@user')
83
84
        eq(t.timestamp, 1129025423)
84
85
        eq(t.timezone, 0)
85
86
 
86
87
    def test_testment_text_form(self):
87
88
        """Conversion of testament to canonical text form."""
88
 
        t = self.from_revision(self.b.repository, b'test@user-1')
 
89
        t = self.from_revision(self.b.repository, 'test@user-1')
89
90
        text_form = t.as_text()
90
 
        self.log('testament text form:\n%s' % text_form)
 
91
        self.log('testament text form:\n' + text_form)
91
92
        self.assertEqualDiff(text_form, self.expected('rev_1'))
92
93
        short_text_form = t.as_short_text()
93
94
        self.assertEqualDiff(short_text_form, self.expected('rev_1_short'))
94
95
 
95
96
    def test_testament_with_contents(self):
96
97
        """Testament containing a file and a directory."""
97
 
        t = self.from_revision(self.b.repository, b'test@user-2')
 
98
        t = self.from_revision(self.b.repository, 'test@user-2')
98
99
        text_form = t.as_text()
99
 
        self.log('testament text form:\n%s' % text_form)
 
100
        self.log('testament text form:\n' + text_form)
100
101
        self.assertEqualDiff(text_form, self.expected('rev_2'))
101
102
        actual_short = t.as_short_text()
102
103
        self.assertEqualDiff(actual_short, self.expected('rev_2_short'))
107
108
        os.symlink('wibble/linktarget', 'link')
108
109
        self.wt.add(['link'], [b'link-id'])
109
110
        self.wt.commit(message='add symlink',
110
 
                       timestamp=1129025493,
111
 
                       timezone=36000,
112
 
                       rev_id=b'test@user-3',
113
 
                       committer='test@user')
114
 
        t = self.from_revision(self.b.repository, b'test@user-3')
115
 
        self.assertEqualDiff(t.as_text(), self.expected('rev_3'))
 
111
                 timestamp=1129025493,
 
112
                 timezone=36000,
 
113
                 rev_id=b'test@user-3',
 
114
                 committer='test@user')
 
115
        t = self.from_revision(self.b.repository, 'test@user-3')
 
116
        self.assertEqualDiff(t.as_text(), self.expected(b'rev_3'))
116
117
 
117
118
    def test_testament_revprops(self):
118
119
        """Testament to revision with extra properties"""
119
 
        props = {u'flavor': 'sour cherry\ncream cheese',
120
 
                 u'size': 'medium',
121
 
                 u'empty': '',
122
 
                 }
 
120
        props = dict(flavor='sour cherry\ncream cheese',
 
121
                     size='medium',
 
122
                     empty='',
 
123
                    )
123
124
        self.wt.commit(message='revision with properties',
124
 
                       timestamp=1129025493,
125
 
                       timezone=36000,
126
 
                       rev_id=b'test@user-3',
127
 
                       committer='test@user',
128
 
                       revprops=props)
129
 
        t = self.from_revision(self.b.repository, b'test@user-3')
 
125
                      timestamp=1129025493,
 
126
                      timezone=36000,
 
127
                      rev_id=b'test@user-3',
 
128
                      committer='test@user',
 
129
                      revprops=props)
 
130
        t = self.from_revision(self.b.repository, 'test@user-3')
130
131
        self.assertEqualDiff(t.as_text(), self.expected('rev_props'))
131
132
 
132
133
    def test_testament_unicode_commit_message(self):
136
137
            timezone=36000,
137
138
            rev_id=b'test@user-3',
138
139
            committer=u'Erik B\xe5gfors <test@user>',
139
 
            revprops={u'uni': u'\xb5'}
 
140
            revprops={'uni':u'\xb5'}
140
141
            )
141
 
        t = self.from_revision(self.b.repository, b'test@user-3')
 
142
        t = self.from_revision(self.b.repository, 'test@user-3')
142
143
        self.assertEqualDiff(
143
144
            self.expected('sample_unicode').encode('utf-8'), t.as_text())
144
145
 
145
146
    def test_from_tree(self):
146
 
        tree = self.b.repository.revision_tree(b'test@user-2')
 
147
        tree = self.b.repository.revision_tree('test@user-2')
147
148
        testament = self.testament_class().from_revision_tree(tree)
148
149
        text_1 = testament.as_short_text()
149
150
        text_2 = self.from_revision(self.b.repository,
150
 
                                    b'test@user-2').as_short_text()
 
151
                                    'test@user-2').as_short_text()
151
152
        self.assertEqual(text_1, text_2)
152
153
 
153
154
    def test___init__(self):
154
 
        revision = self.b.repository.get_revision(b'test@user-2')
155
 
        tree = self.b.repository.revision_tree(b'test@user-2')
 
155
        revision = self.b.repository.get_revision('test@user-2')
 
156
        tree = self.b.repository.revision_tree('test@user-2')
156
157
        testament_1 = self.testament_class()(revision, tree)
157
158
        text_1 = testament_1.as_short_text()
158
159
        text_2 = self.from_revision(self.b.repository,
159
 
                                    b'test@user-2').as_short_text()
 
160
                                    'test@user-2').as_short_text()
160
161
        self.assertEqual(text_1, text_2)
161
162
 
162
163
 
221
222
"""
222
223
 
223
224
 
224
 
REV_1_SHORT = b"""\
 
225
REV_1_SHORT = """\
225
226
bazaar-ng testament short form 1
226
227
revision-id: test@user-1
227
228
sha1: %s
228
229
""" % osutils.sha_string(REV_1_TESTAMENT)
229
230
 
230
231
 
231
 
REV_1_SHORT_STRICT = b"""\
 
232
REV_1_SHORT_STRICT = """\
232
233
bazaar-ng testament short form 2.1
233
234
revision-id: test@user-1
234
235
sha1: %s
235
236
""" % osutils.sha_string(REV_1_STRICT_TESTAMENT)
236
237
 
237
238
 
238
 
REV_1_SHORT_STRICT3 = b"""\
 
239
REV_1_SHORT_STRICT3 = """\
239
240
bazaar testament short form 3 strict
240
241
revision-id: test@user-1
241
242
sha1: %s
303
304
"""
304
305
 
305
306
 
306
 
REV_2_SHORT = b"""\
 
307
REV_2_SHORT = """\
307
308
bazaar-ng testament short form 1
308
309
revision-id: test@user-2
309
310
sha1: %s
310
311
""" % osutils.sha_string(REV_2_TESTAMENT)
311
312
 
312
313
 
313
 
REV_2_SHORT_STRICT = b"""\
 
314
REV_2_SHORT_STRICT = """\
314
315
bazaar-ng testament short form 2.1
315
316
revision-id: test@user-2
316
317
sha1: %s
317
318
""" % osutils.sha_string(REV_2_STRICT_TESTAMENT)
318
319
 
319
320
 
320
 
REV_2_SHORT_STRICT3 = b"""\
 
321
REV_2_SHORT_STRICT3 = """\
321
322
bazaar testament short form 3 strict
322
323
revision-id: test@user-2
323
324
sha1: %s
535
536
 
536
537
 
537
538
texts = {
538
 
    Testament: {'rev_1': REV_1_TESTAMENT,
539
 
                'rev_1_short': REV_1_SHORT,
540
 
                'rev_2': REV_2_TESTAMENT,
541
 
                'rev_2_short': REV_2_SHORT,
542
 
                'rev_3': REV_3_TESTAMENT,
543
 
                'rev_props': REV_PROPS_TESTAMENT,
544
 
                'sample_unicode': SAMPLE_UNICODE_TESTAMENT,
545
 
                },
 
539
    Testament: { 'rev_1': REV_1_TESTAMENT,
 
540
                 'rev_1_short': REV_1_SHORT,
 
541
                 'rev_2': REV_2_TESTAMENT,
 
542
                 'rev_2_short': REV_2_SHORT,
 
543
                 'rev_3': REV_3_TESTAMENT,
 
544
                 'rev_props': REV_PROPS_TESTAMENT,
 
545
                 'sample_unicode': SAMPLE_UNICODE_TESTAMENT,
 
546
    },
546
547
    StrictTestament: {'rev_1': REV_1_STRICT_TESTAMENT,
547
548
                      'rev_1_short': REV_1_SHORT_STRICT,
548
549
                      'rev_2': REV_2_STRICT_TESTAMENT,
550
551
                      'rev_3': REV_3_TESTAMENT_STRICT,
551
552
                      'rev_props': REV_PROPS_TESTAMENT_STRICT,
552
553
                      'sample_unicode': SAMPLE_UNICODE_TESTAMENT_STRICT,
553
 
                      },
 
554
    },
554
555
    StrictTestament3: {'rev_1': REV_1_STRICT_TESTAMENT3,
555
 
                       'rev_1_short': REV_1_SHORT_STRICT3,
556
 
                       'rev_2': REV_2_STRICT_TESTAMENT3,
557
 
                       'rev_2_short': REV_2_SHORT_STRICT3,
558
 
                       'rev_3': REV_3_TESTAMENT_STRICT3,
559
 
                       'rev_props': REV_PROPS_TESTAMENT_STRICT3,
560
 
                       'sample_unicode': SAMPLE_UNICODE_TESTAMENT_STRICT3,
561
 
                       },
 
556
                      'rev_1_short': REV_1_SHORT_STRICT3,
 
557
                      'rev_2': REV_2_STRICT_TESTAMENT3,
 
558
                      'rev_2_short': REV_2_SHORT_STRICT3,
 
559
                      'rev_3': REV_3_TESTAMENT_STRICT3,
 
560
                      'rev_props': REV_PROPS_TESTAMENT_STRICT3,
 
561
                      'sample_unicode': SAMPLE_UNICODE_TESTAMENT_STRICT3,
 
562
    },
562
563
}