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

  • Committer: Jelmer Vernooij
  • Date: 2017-08-31 06:17:11 UTC
  • mfrom: (6770.2.5 gpghome)
  • Revision ID: jelmer@jelmer.uk-20170831061711-40qd0b6optuamy7r
Merge lp:~jelmer/brz/gpghome.

Show diffs side-by-side

added added

removed removed

Lines of Context:
206
206
    def test_record_delete_record_iter_changes(self):
207
207
        tree = self.make_branch_and_tree(".")
208
208
        self.build_tree(["foo"])
209
 
        tree.add(["foo"], ["foo-id"])
 
209
        tree.add(["foo"])
 
210
        foo_id = tree.path2id('foo')
210
211
        rev_id = tree.commit("added foo")
211
212
        tree.lock_write()
212
213
        try:
213
214
            builder = tree.branch.get_commit_builder([rev_id])
214
215
            try:
215
 
                delete_change = ('foo-id', ('foo', None), True, (True, False),
 
216
                delete_change = (foo_id, ('foo', None), True, (True, False),
216
217
                    (tree.path2id(''), None), ('foo', None), ('file', None),
217
218
                    (False, None))
218
219
                list(builder.record_iter_changes(tree, rev_id,
219
220
                    [delete_change]))
220
 
                self.assertEqual(("foo", None, "foo-id", None),
 
221
                self.assertEqual(("foo", None, foo_id, None),
221
222
                    builder.get_basis_delta()[0])
222
223
                self.assertTrue(builder.any_changes())
223
224
                builder.finish_inventory()
295
296
                tree2.get_file_revision(tree2.get_root_id()))
296
297
 
297
298
    def _add_commit_check_unchanged(self, tree, name, mini_commit=None):
298
 
        tree.add([name], [name + 'id'])
299
 
        self._commit_check_unchanged(tree, name, name + 'id',
 
299
        tree.add([name])
 
300
        self._commit_check_unchanged(tree, name, tree.path2id(name),
300
301
            mini_commit=mini_commit)
301
302
 
302
303
    def _commit_check_unchanged(self, tree, name, file_id, mini_commit=None):
321
322
        # of the dir even the dirs contents are changed.
322
323
        tree = self.make_branch_and_tree('.')
323
324
        self.build_tree(['dir/'])
324
 
        tree.add(['dir'], ['dirid'])
 
325
        tree.add(['dir'])
 
326
        dir_id = tree.path2id('dir')
325
327
        rev1 = tree.commit('')
326
328
        self.build_tree(['dir/content'])
327
 
        tree.add(['dir/content'], ['contentid'])
 
329
        tree.add(['dir/content'])
328
330
        rev2 = tree.commit('')
329
331
        tree1, tree2 = self._get_revtrees(tree, [rev1, rev2])
330
 
        self.assertEqual(rev1, tree1.get_file_revision('dirid'))
331
 
        self.assertEqual(rev1, tree2.get_file_revision('dirid'))
332
 
        file_id = 'dirid'
 
332
        self.assertEqual(rev1, tree1.get_file_revision(dir_id))
 
333
        self.assertEqual(rev1, tree2.get_file_revision(dir_id))
333
334
        expected_graph = {}
334
 
        expected_graph[(file_id, rev1)] = ()
335
 
        self.assertFileGraph(expected_graph, tree, (file_id, rev1))
 
335
        expected_graph[(dir_id, rev1)] = ()
 
336
        self.assertFileGraph(expected_graph, tree, (dir_id, rev1))
336
337
 
337
338
    def test_last_modified_revision_after_commit_file_unchanged(self):
338
339
        # committing without changing a file does not change the last modified.
444
445
            mini_commit=self.mini_commit_record_iter_changes)
445
446
 
446
447
    def _add_commit_change_check_changed(self, tree, name, changer,
447
 
        expect_fs_hash=False, mini_commit=None, file_id=None):
448
 
        if file_id is None:
449
 
            file_id = name + 'id'
450
 
        tree.add([name], [file_id])
 
448
            expect_fs_hash=False, mini_commit=None):
 
449
        tree.add([name])
 
450
        file_id = tree.path2id(name)
451
451
        self._commit_change_check_changed(
452
452
            tree, name, file_id,
453
453
            changer, expect_fs_hash=expect_fs_hash, mini_commit=mini_commit)
556
556
        tree = self.make_branch_and_tree('.')
557
557
        self.build_tree(['file'])
558
558
        def change_file():
559
 
            tree.put_file_bytes_non_atomic('fileid', 'new content')
 
559
            tree.put_file_bytes_non_atomic(tree.path2id('file'), 'new content')
560
560
        self._add_commit_change_check_changed(tree, 'file', change_file,
561
561
            expect_fs_hash=True,
562
562
            mini_commit=self.mini_commit_record_iter_changes)
563
563
 
564
564
    def _test_last_mod_rev_after_content_link_changes(
565
 
        self, link, target, newtarget, file_id=None):
566
 
        if file_id is None:
567
 
            file_id = link
 
565
        self, link, target, newtarget):
568
566
        # changing a link changes the last modified.
569
567
        self.requireFeature(features.SymlinkFeature)
570
568
        tree = self.make_branch_and_tree('.')
574
572
            os.symlink(newtarget, link)
575
573
        self._add_commit_change_check_changed(
576
574
            tree, link, change_link,
577
 
            mini_commit=self.mini_commit_record_iter_changes,
578
 
            file_id=file_id)
 
575
            mini_commit=self.mini_commit_record_iter_changes)
579
576
 
580
577
    def test_last_modified_rev_after_content_link_changes(self):
581
578
        self._test_last_mod_rev_after_content_link_changes(
584
581
    def test_last_modified_rev_after_content_unicode_link_changes(self):
585
582
        self.requireFeature(features.UnicodeFilenameFeature)
586
583
        self._test_last_mod_rev_after_content_link_changes(
587
 
            u'li\u1234nk', u'targ\N{Euro Sign}t', u'n\N{Euro Sign}wtarget',
588
 
 
589
 
            file_id=u'li\u1234nk'.encode('UTF-8'))
 
584
            u'li\u1234nk', u'targ\N{Euro Sign}t', u'n\N{Euro Sign}wtarget')
590
585
 
591
586
    def _commit_sprout(self, tree, name):
592
 
        tree.add([name], [name + 'id'])
 
587
        tree.add([name])
593
588
        rev_id = tree.commit('')
594
589
        return rev_id, tree.controldir.sprout('t2').open_workingtree()
595
590
 
601
596
        mini_commit=None):
602
597
        """Do a rename in both trees."""
603
598
        rev1, tree2 = self._commit_sprout(tree1, name)
 
599
        file_id = tree2.path2id(name)
604
600
        # change both sides equally
605
601
        rev2 = self._rename_in_tree(tree1, name)
606
602
        rev3 = self._rename_in_tree(tree2, name)
608
604
        rev4 = mini_commit(tree1, 'new_' + name, 'new_' + name,
609
605
            expect_fs_hash=expect_fs_hash)
610
606
        tree3, = self._get_revtrees(tree1, [rev4])
611
 
        self.assertEqual(rev4, tree3.get_file_revision(name + 'id'))
612
 
        file_id = name + 'id'
 
607
        self.assertEqual(rev4, tree3.get_file_revision(file_id))
613
608
        expected_graph = {}
614
609
        expected_graph[(file_id, rev1)] = ()
615
610
        expected_graph[(file_id, rev2)] = ((file_id, rev1),)
646
641
        # in the inventory.
647
642
        # Part 1: change in the merged branch.
648
643
        rev1, tree2 = self._commit_sprout(tree1, name)
 
644
        file_id = tree2.path2id(name)
649
645
        # change on the other side to merge back
650
646
        rev2 = self._rename_in_tree(tree2, name)
651
647
        tree1.merge_from_branch(tree2.branch)
653
649
            rev3 = mini_commit(in_tree, name, 'new_' + name, False,
654
650
                delta_against_basis=changed_in_tree)
655
651
            tree3, = self._get_revtrees(in_tree, [rev2])
656
 
            self.assertEqual(rev2, tree3.get_file_revision(name + 'id'))
657
 
            file_id = name + 'id'
 
652
            self.assertEqual(rev2, tree3.get_file_revision(file_id))
658
653
            expected_graph = {}
659
654
            expected_graph[(file_id, rev1)] = ()
660
655
            expected_graph[(file_id, rev2)] = ((file_id, rev1),)
676
671
        tree2 = tree1.controldir.sprout('t2').open_workingtree()
677
672
        # make and commit on the other side to merge back
678
673
        make('t2/name')
679
 
        file_id = 'nameid'
680
 
        tree2.add(['name'], [file_id])
 
674
        tree2.add(['name'])
 
675
        file_id = tree2.path2id('name')
681
676
        rev2 = tree2.commit('')
682
677
        tree1.merge_from_branch(tree2.branch)
683
678
        rev3 = mini_commit(tree1, None, 'name', False)