/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_transform.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2018-07-25 18:15:53 UTC
  • mfrom: (7045.4.7 python3-s)
  • Revision ID: breezy.the.bot@gmail.com-20180725181553-mz6zhncntlovb8ii
Fix another couple of hundred tests on Python 3.

Merged from https://code.launchpad.net/~jelmer/brz/python3-s/+merge/350749

Show diffs side-by-side

added added

removed removed

Lines of Context:
454
454
        tip_id = transform.new_file('tip', oz_id, [b'ozma'], b'tip-id')
455
455
        transform.apply()
456
456
        self.assertEqual(self.wt.path2id('name'), b'my_pretties')
457
 
        with open(self.wt.abspath('name'), 'r') as f:
 
457
        with open(self.wt.abspath('name'), 'rb') as f:
458
458
            self.assertEqual(b'contents', f.read())
459
459
        transform2, root = self.get_transform()
460
460
        oz_id = transform2.trans_id_tree_path('oz')
730
730
        create_tree.new_file('name1', root, [b'hello1'], b'name1')
731
731
        create_tree.apply()
732
732
        delete_contents, root = self.get_transform()
733
 
        file = delete_contents.trans_id_tree_path(b'name1')
 
733
        file = delete_contents.trans_id_tree_path('name1')
734
734
        delete_contents.delete_contents(file)
735
735
        delete_contents.apply()
736
736
        move_id, root = self.get_transform()
743
743
        create_tree, root = self.get_transform()
744
744
        # prepare tree
745
745
        root = create_tree.root
746
 
        create_tree.new_file('name1', root, [b'hello1'], 'name1')
 
746
        create_tree.new_file('name1', root, [b'hello1'], b'name1')
747
747
        create_tree.apply()
748
748
        delete_contents = TreeTransform(self.wt)
749
749
        self.addCleanup(delete_contents.finalize)
753
753
        delete_contents.finalize()
754
754
        replace = TreeTransform(self.wt)
755
755
        self.addCleanup(replace.finalize)
756
 
        name2 = replace.new_file('name2', root, [b'hello2'], 'name1')
 
756
        name2 = replace.new_file('name2', root, [b'hello2'], b'name1')
757
757
        conflicts = replace.find_conflicts()
758
758
        name1 = replace.trans_id_tree_path('name1')
759
759
        self.assertEqual(conflicts, [('duplicate id', name1, name2)])
1065
1065
        wt = transform._tree
1066
1066
        wt.lock_read()
1067
1067
        self.addCleanup(wt.unlock)
1068
 
        transform.new_file('set_on_creation', root, [b'Set on creation'], 'soc',
 
1068
        transform.new_file('set_on_creation', root, [b'Set on creation'], b'soc',
1069
1069
                           True)
1070
1070
        sac = transform.new_file('set_after_creation', root,
1071
 
                                 [b'Set after creation'], 'sac')
 
1071
                                 [b'Set after creation'], b'sac')
1072
1072
        transform.set_executability(True, sac)
1073
1073
        uws = transform.new_file('unset_without_set', root, [b'Unset badly'],
1074
 
                                 'uws')
 
1074
                                 b'uws')
1075
1075
        self.assertRaises(KeyError, transform.set_executability, None, uws)
1076
1076
        transform.apply()
1077
1077
        self.assertTrue(wt.is_executable('set_on_creation'))
1197
1197
            transform.version_file(b'id-1', new)
1198
1198
            transform.adjust_path('old', root, new)
1199
1199
            self.assertEqual([(b'id-1', ('old', 'old'), True, (True, True),
1200
 
                ('eert_toor', 'eert_toor'), ('old', 'old'), ('file', 'file'),
 
1200
                (b'eert_toor', b'eert_toor'), ('old', 'old'), ('file', 'file'),
1201
1201
                (False, False))], list(transform.iter_changes()))
1202
1202
            transform.cancel_versioning(new)
1203
1203
            transform._removed_id = set()
1273
1273
        try:
1274
1274
            transform.adjust_path('flitter', root, floater)
1275
1275
            self.assertEqual([(b'floater-id', ('floater', 'flitter'), False,
1276
 
            (True, True), ('toor_eert', 'toor_eert'), ('floater', 'flitter'),
 
1276
            (True, True), (b'toor_eert', b'toor_eert'), ('floater', 'flitter'),
1277
1277
            (None, None), (False, False))], list(transform.iter_changes()))
1278
1278
        finally:
1279
1279
            transform.finalize()
1536
1536
        tt.create_directory(foo_trans_id)
1537
1537
        bar_trans_id = tt.trans_id_tree_path("foo/bar")
1538
1538
        tt.create_file([b"aa\n"], bar_trans_id)
1539
 
        tt.version_file("bar-1", bar_trans_id)
 
1539
        tt.version_file(b"bar-1", bar_trans_id)
1540
1540
        tt.apply()
1541
1541
        self.assertPathExists("foo/bar")
1542
1542
        wt.lock_read()
1905
1905
        build_tree(basis, b)
1906
1906
        self.assertIs(os.path.isdir('b/foo'), True)
1907
1907
        with open('b/foo/bar', 'rb') as f:
1908
 
            self.assertEqual(f.read(), "contents")
 
1908
            self.assertEqual(f.read(), b"contents")
1909
1909
        self.assertEqual(os.readlink('b/foo/baz'), 'a/foo/bar')
1910
1910
 
1911
1911
    def test_build_with_references(self):
2260
2260
        # entry[1] is the state information, entry[1][0] is the state of the
2261
2261
        # working tree, entry[1][0][1] is the sha value for the current working
2262
2262
        # tree
2263
 
        entry1 = state._get_entry(0, path_utf8='file1')
 
2263
        entry1 = state._get_entry(0, path_utf8=b'file1')
2264
2264
        self.assertEqual(entry1_sha, entry1[1][0][1])
2265
2265
        # The 'size' field must also be set.
2266
2266
        self.assertEqual(25, entry1[1][0][2])
2267
2267
        entry1_state = entry1[1][0]
2268
 
        entry2 = state._get_entry(0, path_utf8='dir/file2')
 
2268
        entry2 = state._get_entry(0, path_utf8=b'dir/file2')
2269
2269
        self.assertEqual(entry2_sha, entry2[1][0][1])
2270
2270
        self.assertEqual(29, entry2[1][0][2])
2271
2271
        entry2_state = entry2[1][0]
2748
2748
        out = BytesIO()
2749
2749
        show_diff_trees(revision_tree, preview_tree, out)
2750
2750
        lines = out.getvalue().splitlines()
2751
 
        self.assertEqual(lines[0], "=== added file 'file2'")
 
2751
        self.assertEqual(lines[0], b"=== added file 'file2'")
2752
2752
        # 3 lines of diff administrivia
2753
 
        self.assertEqual(lines[4], "+content B")
 
2753
        self.assertEqual(lines[4], b"+content B")
2754
2754
 
2755
2755
    def test_transform_conflicts(self):
2756
2756
        revision_tree = self.create_tree()
3371
3371
 
3372
3372
    def make_records(self, attribs, contents):
3373
3373
        records = [
3374
 
            (((('attribs'),),), bencode.bencode(attribs))]
 
3374
            ((((b'attribs'),),), bencode.bencode(attribs))]
3375
3375
        records.extend([(((n, k),), c) for n, k, c in contents])
3376
3376
        return records
3377
3377
 
3384
3384
        attribs[b'_new_parent'] = {b'new-1': b'new-0', b'new-2': b'new-0'}
3385
3385
        attribs[b'_new_executability'] = {b'new-1': 1}
3386
3386
        contents = [
3387
 
            ('new-1', 'file', b'i 1\nbar\n'),
3388
 
            ('new-2', 'directory', b''),
 
3387
            (b'new-1', b'file', b'i 1\nbar\n'),
 
3388
            (b'new-2', b'directory', b''),
3389
3389
            ]
3390
3390
        return self.make_records(attribs, contents)
3391
3391
 
3392
3392
    def test_serialize_creation(self):
3393
3393
        tt = self.get_preview()
3394
3394
        tt.new_file(u'foo\u1234', tt.root, [b'bar'], b'baz', True)
3395
 
        tt.new_directory('qux', tt.root, 'quxx')
 
3395
        tt.new_directory('qux', tt.root, b'quxx')
3396
3396
        self.assertSerializesTo(self.creation_records(), tt)
3397
3397
 
3398
3398
    def test_deserialize_creation(self):
3401
3401
        self.assertEqual(3, tt._id_number)
3402
3402
        self.assertEqual({'new-1': u'foo\u1234',
3403
3403
                          'new-2': 'qux'}, tt._new_name)
3404
 
        self.assertEqual({'new-1': 'baz', 'new-2': 'quxx'}, tt._new_id)
 
3404
        self.assertEqual({'new-1': b'baz', 'new-2': b'quxx'}, tt._new_id)
3405
3405
        self.assertEqual({'new-1': tt.root, 'new-2': tt.root}, tt._new_parent)
3406
 
        self.assertEqual({'baz': 'new-1', 'quxx': 'new-2'}, tt._r_new_id)
 
3406
        self.assertEqual({b'baz': 'new-1', b'quxx': 'new-2'}, tt._r_new_id)
3407
3407
        self.assertEqual({'new-1': True}, tt._new_executability)
3408
3408
        self.assertEqual({'new-1': 'file',
3409
3409
                          'new-2': 'directory'}, tt._new_contents)
3412
3412
            foo_content = foo_limbo.read()
3413
3413
        finally:
3414
3414
            foo_limbo.close()
3415
 
        self.assertEqual('bar', foo_content)
 
3415
        self.assertEqual(b'bar', foo_content)
3416
3416
 
3417
3417
    def symlink_creation_records(self):
3418
3418
        attribs = self.default_attribs()
3419
3419
        attribs['_id_number'] = 2
3420
 
        attribs['_new_name'] = {'new-1': u'foo\u1234'.encode('utf-8')}
3421
 
        attribs['_new_parent'] = {'new-1': 'new-0'}
3422
 
        contents = [('new-1', 'symlink', u'bar\u1234'.encode('utf-8'))]
 
3420
        attribs['_new_name'] = {b'new-1': u'foo\u1234'.encode('utf-8')}
 
3421
        attribs['_new_parent'] = {b'new-1': b'new-0'}
 
3422
        contents = [(b'new-1', b'symlink', u'bar\u1234'.encode('utf-8'))]
3423
3423
        return self.make_records(attribs, contents)
3424
3424
 
3425
3425
    def test_serialize_symlink_creation(self):
3445
3445
    def destruction_records(self):
3446
3446
        attribs = self.default_attribs()
3447
3447
        attribs['_id_number'] = 3
3448
 
        attribs['_removed_id'] = ['new-1']
3449
 
        attribs['_removed_contents'] = ['new-2']
 
3448
        attribs['_removed_id'] = [b'new-1']
 
3449
        attribs['_removed_contents'] = [b'new-2']
3450
3450
        attribs['_tree_path_ids'] = {
3451
 
            '': 'new-0',
3452
 
            u'foo\u1234'.encode('utf-8'): 'new-1',
3453
 
            'bar': 'new-2',
 
3451
            b'': b'new-0',
 
3452
            u'foo\u1234'.encode('utf-8'): b'new-1',
 
3453
            b'bar': b'new-2',
3454
3454
            }
3455
3455
        return self.make_records(attribs, [])
3456
3456
 
3497
3497
        tree = self.make_branch_and_tree('tree')
3498
3498
        self.build_tree_contents([('tree/file', LINES_ONE)])
3499
3499
        tree.add('file', b'file-id')
3500
 
        return self.get_preview(tree), LINES_TWO
 
3500
        return self.get_preview(tree), [LINES_TWO]
3501
3501
 
3502
3502
    def modification_records(self):
3503
3503
        attribs = self.default_attribs()
3504
3504
        attribs['_id_number'] = 2
3505
3505
        attribs['_tree_path_ids'] = {
3506
 
            'file': 'new-1',
3507
 
            '': 'new-0',}
3508
 
        attribs['_removed_contents'] = ['new-1']
3509
 
        contents = [('new-1', 'file',
3510
 
                     'i 1\nz\n\nc 0 1 1 1\ni 1\nx\n\nc 0 3 3 1\n')]
 
3506
            b'file': b'new-1',
 
3507
            b'': b'new-0',}
 
3508
        attribs['_removed_contents'] = [b'new-1']
 
3509
        contents = [(b'new-1', b'file',
 
3510
                     b'i 1\nz\n\nc 0 1 1 1\ni 1\nx\n\nc 0 3 3 1\n')]
3511
3511
        return self.make_records(attribs, contents)
3512
3512
 
3513
3513
    def test_serialize_modification(self):
3520
3520
    def test_deserialize_modification(self):
3521
3521
        tt, LINES = self.make_modification_preview()
3522
3522
        tt.deserialize(iter(self.modification_records()))
3523
 
        self.assertFileEqual(LINES, tt._limbo_name('new-1'))
 
3523
        self.assertFileEqual(b''.join(LINES), tt._limbo_name('new-1'))
3524
3524
 
3525
3525
    def make_kind_change_preview(self):
3526
3526
        LINES = b'a\nb\nc\nd\n'
3527
3527
        tree = self.make_branch_and_tree('tree')
3528
3528
        self.build_tree(['tree/foo/'])
3529
3529
        tree.add('foo', b'foo-id')
3530
 
        return self.get_preview(tree), LINES
 
3530
        return self.get_preview(tree), [LINES]
3531
3531
 
3532
3532
    def kind_change_records(self):
3533
3533
        attribs = self.default_attribs()
3550
3550
    def test_deserialize_kind_change(self):
3551
3551
        tt, LINES = self.make_kind_change_preview()
3552
3552
        tt.deserialize(iter(self.kind_change_records()))
3553
 
        self.assertFileEqual(LINES, tt._limbo_name('new-1'))
 
3553
        self.assertFileEqual(b''.join(LINES), tt._limbo_name('new-1'))
3554
3554
 
3555
3555
    def make_add_contents_preview(self):
3556
3556
        LINES = b'a\nb\nc\nd\n'