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

  • Committer: Jelmer Vernooij
  • Date: 2018-05-22 02:05:12 UTC
  • mto: (6973.12.2 python3-k)
  • mto: This revision was merged to the branch mainline in revision 6992.
  • Revision ID: jelmer@jelmer.uk-20180522020512-btpj2jchdlehi3en
Add more bees.

Show diffs side-by-side

added added

removed removed

Lines of Context:
988
988
        self.tree1 = self.make_branch_and_tree('b1')
989
989
        self.b1 = self.tree1.branch
990
990
        self.tree1.commit('message', rev_id=b'rev2a')
991
 
        bundle = self.get_valid_bundle('null:', 'rev2a')
 
991
        bundle = self.get_valid_bundle(b'null:', b'rev2a')
992
992
        branch2 = self.make_branch('b2')
993
 
        self.assertFalse(branch2.repository.has_revision('rev2a'))
 
993
        self.assertFalse(branch2.repository.has_revision(b'rev2a'))
994
994
        target_revision = bundle.install_revisions(branch2.repository)
995
 
        self.assertTrue(branch2.repository.has_revision('rev2a'))
996
 
        self.assertEqual('rev2a', target_revision)
 
995
        self.assertTrue(branch2.repository.has_revision(b'rev2a'))
 
996
        self.assertEqual(b'rev2a', target_revision)
997
997
 
998
998
    def test_bundle_empty_property(self):
999
999
        """Test serializing revision properties with an empty value."""
1000
1000
        tree = self.make_branch_and_memory_tree('tree')
1001
1001
        tree.lock_write()
1002
1002
        self.addCleanup(tree.unlock)
1003
 
        tree.add([''], ['TREE_ROOT'])
 
1003
        tree.add([''], [b'TREE_ROOT'])
1004
1004
        tree.commit('One', revprops={'one':'two', 'empty':''}, rev_id=b'rev1')
1005
1005
        self.b1 = tree.branch
1006
 
        bundle_sio, revision_ids = self.create_bundle_text('null:', 'rev1')
 
1006
        bundle_sio, revision_ids = self.create_bundle_text(b'null:', b'rev1')
1007
1007
        bundle = read_bundle(bundle_sio)
1008
1008
        revision_info = bundle.revisions[0]
1009
 
        self.assertEqual('rev1', revision_info.revision_id)
 
1009
        self.assertEqual(b'rev1', revision_info.revision_id)
1010
1010
        rev = revision_info.as_revision()
1011
1011
        self.assertEqual({'branch-nick':'tree', 'empty':'', 'one':'two'},
1012
1012
                         rev.properties)
1085
1085
        tree = self.make_simple_tree('knit')
1086
1086
        tree.commit('hello', rev_id=b'rev1')
1087
1087
        tree.commit('hello', rev_id=b'rev2')
1088
 
        bundle = read_bundle(self.create_bundle_text('null:', 'rev2')[0])
 
1088
        bundle = read_bundle(self.create_bundle_text(b'null:', b'rev2')[0])
1089
1089
        repo = self.make_repository('repo', format='dirstate-with-subtree')
1090
1090
        bundle.install_revisions(repo)
1091
1091
        return repo
1092
1092
 
1093
1093
    def test_across_models(self):
1094
1094
        repo = self.make_repo_with_installed_revisions()
1095
 
        inv = repo.get_inventory('rev2')
1096
 
        self.assertEqual('rev2', inv.root.revision)
 
1095
        inv = repo.get_inventory(b'rev2')
 
1096
        self.assertEqual(b'rev2', inv.root.revision)
1097
1097
        root_id = inv.root.file_id
1098
1098
        repo.lock_read()
1099
1099
        self.addCleanup(repo.unlock)
1100
 
        self.assertEqual({(root_id, 'rev1'):(),
1101
 
            (root_id, 'rev2'):((root_id, 'rev1'),)},
1102
 
            repo.texts.get_parent_map([(root_id, 'rev1'), (root_id, 'rev2')]))
 
1100
        self.assertEqual({(root_id, b'rev1'):(),
 
1101
            (root_id, b'rev2'):((root_id, b'rev1'),)},
 
1102
            repo.texts.get_parent_map([(root_id, b'rev1'), (root_id, b'rev2')]))
1103
1103
 
1104
1104
    def test_inv_hash_across_serializers(self):
1105
1105
        repo = self.make_repo_with_installed_revisions()
1106
 
        recorded_inv_sha1 = repo.get_revision('rev2').inventory_sha1
1107
 
        xml = repo._get_inventory_xml('rev2')
 
1106
        recorded_inv_sha1 = repo.get_revision(b'rev2').inventory_sha1
 
1107
        xml = repo._get_inventory_xml(b'rev2')
1108
1108
        self.assertEqual(osutils.sha_string(xml), recorded_inv_sha1)
1109
1109
 
1110
1110
    def test_across_models_incompatible(self):
1404
1404
    def test_creation(self):
1405
1405
        tree = self.make_branch_and_tree('tree')
1406
1406
        self.build_tree_contents([('tree/file', b'contents1\nstatic\n')])
1407
 
        tree.add('file', 'fileid-2')
 
1407
        tree.add('file', b'fileid-2')
1408
1408
        tree.commit('added file', rev_id=b'rev1')
1409
1409
        self.build_tree_contents([('tree/file', b'contents2\nstatic\n')])
1410
1410
        tree.commit('changed file', rev_id=b'rev2')
1411
1411
        s = BytesIO()
1412
1412
        serializer = BundleSerializerV4('1.0')
1413
 
        serializer.write(tree.branch.repository, ['rev1', 'rev2'], {}, s)
 
1413
        serializer.write(tree.branch.repository, [b'rev1', b'rev2'], {}, s)
1414
1414
        s.seek(0)
1415
1415
        tree2 = self.make_branch_and_tree('target')
1416
1416
        target_repo = tree2.branch.repository
1420
1420
        # Turn the 'iterators_of_bytes' back into simple strings for comparison
1421
1421
        repo_texts = dict((i, ''.join(content)) for i, content
1422
1422
                          in target_repo.iter_files_bytes(
1423
 
                                [('fileid-2', 'rev1', '1'),
1424
 
                                 ('fileid-2', 'rev2', '2')]))
1425
 
        self.assertEqual({'1':'contents1\nstatic\n',
1426
 
                          '2':'contents2\nstatic\n'},
 
1423
                                [(b'fileid-2', b'rev1', '1'),
 
1424
                                 (b'fileid-2', b'rev2', '2')]))
 
1425
        self.assertEqual({'1':b'contents1\nstatic\n',
 
1426
                          '2':b'contents2\nstatic\n'},
1427
1427
                         repo_texts)
1428
 
        rtree = target_repo.revision_tree('rev2')
 
1428
        rtree = target_repo.revision_tree(b'rev2')
1429
1429
        inventory_vf = target_repo.inventories
1430
1430
        # If the inventory store has a graph, it must match the revision graph.
1431
1431
        self.assertSubset(
1432
 
            [inventory_vf.get_parent_map([('rev2',)])[('rev2',)]],
1433
 
            [None, (('rev1',),)])
 
1432
            [inventory_vf.get_parent_map([(b'rev2',)])[(b'rev2',)]],
 
1433
            [None, ((b'rev1',),)])
1434
1434
        self.assertEqual('changed file',
1435
 
                         target_repo.get_revision('rev2').message)
 
1435
                         target_repo.get_revision(b'rev2').message)
1436
1436
 
1437
1437
    @staticmethod
1438
1438
    def get_raw(bundle_file):
1515
1515
        builder.build_snapshot(None, [
1516
1516
            ('add', ('', 'root-id', 'directory', None)),
1517
1517
            ('add', ('file', 'file-id', 'file', 'original content\n')),
1518
 
            ], revision_id='a@cset-0-1')
 
1518
            ], revision_id=b'a@cset-0-1')
1519
1519
        builder.build_snapshot(['a@cset-0-1'], [
1520
1520
            ('modify', ('file', 'new-content\n')),
1521
 
            ], revision_id='a@cset-0-2a')
 
1521
            ], revision_id=b'a@cset-0-2a')
1522
1522
        builder.build_snapshot(['a@cset-0-1'], [
1523
1523
            ('add', ('other-file', 'file2-id', 'file', 'file2-content\n')),
1524
 
            ], revision_id='a@cset-0-2b')
 
1524
            ], revision_id=b'a@cset-0-2b')
1525
1525
        builder.build_snapshot(['a@cset-0-2a', 'a@cset-0-2b'], [
1526
1526
            ('add', ('other-file', 'file2-id', 'file', 'file2-content\n')),
1527
 
            ], revision_id='a@cset-0-3')
 
1527
            ], revision_id=b'a@cset-0-3')
1528
1528
        builder.finish_series()
1529
1529
        self.b1 = builder.get_branch()
1530
1530
        self.b1.lock_read()
1657
1657
    def test_creating_bundle_preserves_chk_pages(self):
1658
1658
        self.make_merged_branch()
1659
1659
        target = self.b1.controldir.sprout('target',
1660
 
                                       revision_id='a@cset-0-2a').open_branch()
 
1660
                                       revision_id=b'a@cset-0-2a').open_branch()
1661
1661
        bundle_txt, rev_ids = self.create_bundle_text('a@cset-0-2a',
1662
1662
                                                      'a@cset-0-3')
1663
1663
        self.assertEqual(['a@cset-0-2b', 'a@cset-0-3'], rev_ids)