/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/per_repository/test_commit_builder.py

  • Committer: Vincent Ladeuil
  • Date: 2012-02-14 17:22:37 UTC
  • mfrom: (6466 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6468.
  • Revision ID: v.ladeuil+lp@free.fr-20120214172237-7dv7er3n4uy8d5m4
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
        if builder.record_root_entry is True:
50
50
            tree.lock_read()
51
51
            try:
52
 
                ie = tree.inventory.root
 
52
                ie = tree.root_inventory.root
53
53
            finally:
54
54
                tree.unlock()
55
55
            parent_tree = tree.branch.repository.revision_tree(
264
264
            if not builder.supports_record_entry_contents:
265
265
                raise tests.TestNotApplicable("CommitBuilder doesn't support "
266
266
                    "record_entry_contents")
267
 
            entry = tree.inventory['foo-id']
 
267
            entry = tree.root_inventory['foo-id']
268
268
            self.assertRaises(errors.RootMissing,
269
269
                builder.record_entry_contents, entry, [], 'foo', tree,
270
270
                    tree.path_content_summary('foo'))
284
284
            if not builder.supports_record_entry_contents:
285
285
                raise tests.TestNotApplicable("CommitBuilder doesn't support "
286
286
                    "record_entry_contents")
 
287
            builder.will_record_deletes()
287
288
            ie = inventory.make_entry('directory', '', None,
288
289
                    tree.get_root_id())
289
290
            delta, version_recorded, fs_hash = builder.record_entry_contents(
290
 
                ie, [parent_tree.inventory], '', tree,
 
291
                ie, [parent_tree.root_inventory], '', tree,
291
292
                tree.path_content_summary(''))
292
293
            # Regardless of repository root behaviour we should consider this a
293
294
            # pointless commit.
299
300
            if got_new_revision:
300
301
                self.assertEqual(('', '', ie.file_id, ie), delta)
301
302
                # The delta should be tracked
302
 
                self.assertEqual(delta, builder._basis_delta[-1])
 
303
                self.assertEqual(delta, builder.get_basis_delta()[-1])
303
304
            else:
304
305
                self.assertEqual(None, delta)
305
306
            # Directories do not get hashed.
374
375
                if not builder.supports_record_entry_contents:
375
376
                    raise tests.TestNotApplicable("CommitBuilder doesn't "
376
377
                        "support record_entry_contents")
377
 
                parent_invs = [basis.inventory]
 
378
                parent_invs = [basis.root_inventory]
378
379
                builder.will_record_deletes()
379
380
                if builder.record_root_entry:
380
 
                    ie = basis.inventory.root.copy()
 
381
                    ie = basis.root_inventory.root.copy()
381
382
                    delta, _, _ = builder.record_entry_contents(ie, parent_invs,
382
383
                        '', tree, tree.path_content_summary(''))
383
384
                    if delta is not None:
434
435
                        "support record_entry_contents")
435
436
                builder.will_record_deletes()
436
437
                if builder.record_root_entry is True:
437
 
                    parent_invs = [basis.inventory]
438
 
                    del basis.inventory.root.children['foo']
439
 
                    builder.record_entry_contents(basis.inventory.root,
 
438
                    parent_invs = [basis.root_inventory]
 
439
                    del basis.root_inventory.root.children['foo']
 
440
                    builder.record_entry_contents(basis.root_inventory.root,
440
441
                        parent_invs, '', tree, tree.path_content_summary(''))
441
442
                # the delta should be returned, and recorded in _basis_delta
442
443
                delta = builder.record_delete("foo", "foo-id")
443
444
                self.assertEqual(("foo", None, "foo-id", None), delta)
444
 
                self.assertEqual(delta, builder._basis_delta[-1])
 
445
                self.assertEqual(delta, builder.get_basis_delta()[-1])
445
446
                builder.finish_inventory()
446
447
                rev_id2 = builder.commit('delete foo')
447
448
            except:
463
464
        try:
464
465
            builder = tree.branch.get_commit_builder([rev_id])
465
466
            try:
 
467
                builder.will_record_deletes()
466
468
                delete_change = ('foo-id', ('foo', None), True, (True, False),
467
469
                    (tree.path2id(''), None), ('foo', None), ('file', None),
468
470
                    (False, None))
469
471
                list(builder.record_iter_changes(tree, rev_id,
470
472
                    [delete_change]))
471
473
                self.assertEqual(("foo", None, "foo-id", None),
472
 
                    builder._basis_delta[0])
 
474
                    builder.get_basis_delta()[0])
473
475
                self.assertTrue(builder.any_changes())
474
476
                builder.finish_inventory()
475
477
                rev_id2 = builder.commit('delete foo')
866
868
                if not builder.supports_record_entry_contents:
867
869
                    raise tests.TestNotApplicable("CommitBuilder doesn't "
868
870
                        "support record_entry_contents")
 
871
                builder.will_record_deletes()
869
872
                parent_tree = tree.basis_tree()
870
873
                parent_tree.lock_read()
871
874
                self.addCleanup(parent_tree.unlock)
872
 
                parent_invs = [parent_tree.inventory]
 
875
                parent_invs = [parent_tree.root_inventory]
873
876
                for parent_id in parent_ids[1:]:
874
877
                    parent_invs.append(tree.branch.repository.revision_tree(
875
 
                        parent_id).inventory)
 
878
                        parent_id).root_inventory)
876
879
                # root
877
880
                builder.record_entry_contents(
878
881
                    inventory.make_entry('directory', '', None,
879
882
                        tree.get_root_id()), parent_invs, '', tree,
880
883
                        tree.path_content_summary(''))
881
884
                def commit_id(file_id):
882
 
                    old_ie = tree.inventory[file_id]
 
885
                    old_ie = tree.root_inventory[file_id]
883
886
                    path = tree.id2path(file_id)
884
887
                    ie = inventory.make_entry(tree.kind(file_id), old_ie.name,
885
888
                        old_ie.parent_id, file_id)
891
894
                        tree, content_summary)
892
895
 
893
896
                file_id = tree.path2id(new_name)
894
 
                parent_id = tree.inventory[file_id].parent_id
 
897
                parent_id = tree.root_inventory[file_id].parent_id
895
898
                if parent_id != tree.get_root_id():
896
899
                    commit_id(parent_id)
897
900
                # because a change of some sort is meant to have occurred,
913
916
                if delta_against_basis:
914
917
                    expected_delta = (name, new_name, file_id, new_entry)
915
918
                    # The delta should be recorded
916
 
                    self.assertEqual(expected_delta, builder._basis_delta[-1])
 
919
                    self.assertEqual(expected_delta,
 
920
                        builder.get_basis_delta()[-1])
917
921
                else:
918
922
                    expected_delta = None
919
923
                self.assertEqual(expected_delta, delta)
954
958
            # record_entry_contents.
955
959
            parent_ids = tree.get_parent_ids()
956
960
            builder = tree.branch.get_commit_builder(parent_ids)
 
961
            builder.will_record_deletes()
957
962
            parent_tree = tree.basis_tree()
958
963
            parent_tree.lock_read()
959
964
            self.addCleanup(parent_tree.unlock)
975
980
                self.assertEqualStat(result[2][1], tree_file_stat[1])
976
981
            else:
977
982
                self.assertEqual([], result)
978
 
            delta = builder._basis_delta
979
 
            delta_dict = dict((change[2], change) for change in delta)
980
 
            version_recorded = (file_id in delta_dict and
981
 
                delta_dict[file_id][3] is not None and
982
 
                delta_dict[file_id][3].revision == builder._new_revision_id)
983
 
            if records_version:
984
 
                self.assertTrue(version_recorded)
985
 
            else:
986
 
                self.assertFalse(version_recorded)
987
983
            self.assertIs(None, builder.new_inventory)
988
984
            builder.finish_inventory()
989
985
            if tree.branch.repository._format.supports_full_versioned_files:
993
989
                self.assertEqual(inv_sha1, builder.inv_sha1)
994
990
            self.assertIs(None, builder.new_inventory)
995
991
            rev2 = builder.commit('')
996
 
            new_inventory = builder.revision_tree().inventory
 
992
            delta = builder.get_basis_delta()
 
993
            delta_dict = dict((change[2], change) for change in delta)
 
994
            version_recorded = (file_id in delta_dict and
 
995
                delta_dict[file_id][3] is not None and
 
996
                delta_dict[file_id][3].revision == rev2)
 
997
            if records_version:
 
998
                self.assertTrue(version_recorded)
 
999
            else:
 
1000
                self.assertFalse(version_recorded)
 
1001
 
 
1002
            new_inventory = builder.revision_tree().root_inventory
997
1003
            new_entry = new_inventory[file_id]
998
1004
            if delta_against_basis:
999
1005
                expected_delta = (name, new_name, file_id, new_entry)