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

  • Committer: Vincent Ladeuil
  • Date: 2011-07-06 09:22:00 UTC
  • mfrom: (6008 +trunk)
  • mto: (6012.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 6013.
  • Revision ID: v.ladeuil+lp@free.fr-20110706092200-7iai2mwzc0sqdsvf
MergingĀ inĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
121
121
        finally:
122
122
            wt1.unlock()
123
123
 
 
124
    def test_merge_into_null_tree(self):
 
125
        wt = self.make_branch_and_tree('tree')
 
126
        null_tree = wt.basis_tree()
 
127
        self.build_tree(['tree/file'])
 
128
        wt.add('file')
 
129
        wt.commit('tree with root')
 
130
        merger = _mod_merge.Merge3Merger(null_tree, null_tree, null_tree, wt,
 
131
                                         this_branch=wt.branch,
 
132
                                         do_merge=False)
 
133
        with merger.make_preview_transform() as tt:
 
134
            self.assertEqual([], tt.find_conflicts())
 
135
            preview = tt.get_preview_tree()
 
136
            self.assertEqual(wt.get_root_id(), preview.get_root_id())
 
137
 
124
138
    def test_create_rename(self):
125
139
        """Rename an inventory entry while creating the file"""
126
140
        tree =self.make_branch_and_tree('.')
387
401
                             '>>>>>>> MERGE-SOURCE\n',
388
402
                             'this/file')
389
403
 
 
404
    def test_merge_reverse_revision_range(self):
 
405
        tree = self.make_branch_and_tree(".")
 
406
        tree.lock_write()
 
407
        self.addCleanup(tree.unlock)
 
408
        self.build_tree(['a'])
 
409
        tree.add('a')
 
410
        tree.commit("added a")
 
411
        first_rev = tree.branch.revision_history()[0]
 
412
        merger = _mod_merge.Merger.from_revision_ids(None, tree,
 
413
                                          _mod_revision.NULL_REVISION,
 
414
                                          first_rev)
 
415
        merger.merge_type = _mod_merge.Merge3Merger
 
416
        merger.interesting_files = 'a'
 
417
        conflict_count = merger.do_merge()
 
418
        self.assertEqual(0, conflict_count)
 
419
 
 
420
        self.assertPathDoesNotExist("a")
 
421
        tree.revert()
 
422
        self.assertPathExists("a")
 
423
 
390
424
    def test_make_merger(self):
391
425
        this_tree = self.make_branch_and_tree('this')
392
426
        this_tree.commit('rev1', rev_id='rev1')
456
490
        finally:
457
491
            tree_file.close()
458
492
 
 
493
    def test_merge_require_tree_root(self):
 
494
        tree = self.make_branch_and_tree(".")
 
495
        tree.lock_write()
 
496
        self.addCleanup(tree.unlock)
 
497
        self.build_tree(['a'])
 
498
        tree.add('a')
 
499
        tree.commit("added a")
 
500
        old_root_id = tree.get_root_id()
 
501
        first_rev = tree.branch.revision_history()[0]
 
502
        merger = _mod_merge.Merger.from_revision_ids(None, tree,
 
503
                                          _mod_revision.NULL_REVISION,
 
504
                                          first_rev)
 
505
        merger.merge_type = _mod_merge.Merge3Merger
 
506
        conflict_count = merger.do_merge()
 
507
        self.assertEqual(0, conflict_count)
 
508
        self.assertEquals(set([old_root_id]), tree.all_file_ids())
 
509
        tree.set_parent_ids([])
 
510
 
459
511
    def test_merge_add_into_deleted_root(self):
460
512
        # Yes, people actually do this.  And report bugs if it breaks.
461
513
        source = self.make_branch_and_tree('source', format='rich-root-pack')
2863
2915
 
2864
2916
    def get_merger_factory(self):
2865
2917
        # Allows  the inner methods to access the test attributes
2866
 
        test = self
 
2918
        calls = self.calls
2867
2919
 
2868
2920
        class FooMerger(_mod_merge.ConfigurableFileMerger):
2869
2921
            name_prefix = "foo"
2870
2922
            default_files = ['bar']
2871
2923
 
2872
2924
            def merge_text(self, params):
2873
 
                test.calls.append('merge_text')
 
2925
                calls.append('merge_text')
2874
2926
                return ('not_applicable', None)
2875
2927
 
2876
2928
        def factory(merger):