/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 bzrlib/tests/test_bundle.py

  • Committer: Aaron Bentley
  • Date: 2007-08-21 01:32:29 UTC
  • mfrom: (2727 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2736.
  • Revision ID: aaron.bentley@utoronto.ca-20070821013229-miopsemz249tv0bl
Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1063
1063
                              " slashes")
1064
1064
        bundle = self.get_valid_bundle('null:', 'rev/id')
1065
1065
 
 
1066
    def test_skip_file(self):
 
1067
        """Make sure we don't accidentally write to the wrong versionedfile"""
 
1068
        self.tree1 = self.make_branch_and_tree('tree')
 
1069
        self.b1 = self.tree1.branch
 
1070
        # rev1 is not present in bundle, done by fetch
 
1071
        self.build_tree_contents([('tree/file2', 'contents1')])
 
1072
        self.tree1.add('file2', 'file2-id')
 
1073
        self.tree1.commit('rev1', rev_id='reva')
 
1074
        self.build_tree_contents([('tree/file3', 'contents2')])
 
1075
        # rev2 is present in bundle, and done by fetch
 
1076
        # having file1 in the bunle causes file1's versionedfile to be opened.
 
1077
        self.tree1.add('file3', 'file3-id')
 
1078
        self.tree1.commit('rev2')
 
1079
        # Updating file2 should not cause an attempt to add to file1's vf
 
1080
        target = self.tree1.bzrdir.sprout('target').open_workingtree()
 
1081
        self.build_tree_contents([('tree/file2', 'contents3')])
 
1082
        self.tree1.commit('rev3', rev_id='rev3')
 
1083
        bundle = self.get_valid_bundle('reva', 'rev3')
 
1084
        if getattr(bundle, 'get_bundle_reader', None) is None:
 
1085
            raise TestSkipped('Bundle format cannot provide reader')
 
1086
        # be sure that file1 comes before file2
 
1087
        for b, m, k, r, f in bundle.get_bundle_reader().iter_records():
 
1088
            if f == 'file3-id':
 
1089
                break
 
1090
            self.assertNotEqual(f, 'file2-id')
 
1091
        bundle.install_revisions(target.branch.repository)
 
1092
 
1066
1093
 
1067
1094
class V08BundleTester(BundleTester, TestCaseWithTransport):
1068
1095
 
1250
1277
        new_text = self.get_raw(StringIO(''.join(bundle_txt)))
1251
1278
        new_text = new_text.replace('<file file_id="exe-1"',
1252
1279
                                    '<file executable="y" file_id="exe-1"')
1253
 
        new_text = new_text.replace('B372', 'B387')
 
1280
        new_text = new_text.replace('B222', 'B237')
1254
1281
        bundle_txt = StringIO()
1255
1282
        bundle_txt.write(serializer._get_bundle_header('4'))
1256
1283
        bundle_txt.write('\n')
1459
1486
            'storage_kind':'fulltext'}, 'file', 'revid', 'fileid')
1460
1487
        writer.end()
1461
1488
        fileobj.seek(0)
1462
 
        record_iter = v4.BundleReader(fileobj).iter_records()
 
1489
        reader = v4.BundleReader(fileobj, stream_input=True)
 
1490
        record_iter = reader.iter_records()
 
1491
        record = record_iter.next()
 
1492
        self.assertEqual((None, {'foo': 'bar', 'storage_kind': 'header'},
 
1493
            'info', None, None), record)
 
1494
        record = record_iter.next()
 
1495
        self.assertEqual(("Record body", {'storage_kind': 'fulltext',
 
1496
                          'parents': ['1', '3']}, 'file', 'revid', 'fileid'),
 
1497
                          record)
 
1498
 
 
1499
    def test_roundtrip_record_memory_hungry(self):
 
1500
        fileobj = StringIO()
 
1501
        writer = v4.BundleWriter(fileobj)
 
1502
        writer.begin()
 
1503
        writer.add_info_record(foo='bar')
 
1504
        writer._add_record("Record body", {'parents': ['1', '3'],
 
1505
            'storage_kind':'fulltext'}, 'file', 'revid', 'fileid')
 
1506
        writer.end()
 
1507
        fileobj.seek(0)
 
1508
        reader = v4.BundleReader(fileobj, stream_input=False)
 
1509
        record_iter = reader.iter_records()
1463
1510
        record = record_iter.next()
1464
1511
        self.assertEqual((None, {'foo': 'bar', 'storage_kind': 'header'},
1465
1512
            'info', None, None), record)