~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_merge.py

  • Committer: Martin Packman
  • Date: 2012-01-05 09:50:04 UTC
  • mfrom: (6424 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6426.
  • Revision ID: martin.packman@canonical.com-20120105095004-mia9xb7y0efmto0v
Merge bzr.dev to resolve conflicts in bzrlib.builtins

Show diffs side-by-side

added added

removed removed

Lines of Context:
420
420
        self.addCleanup(tree.unlock)
421
421
        self.build_tree(['a'])
422
422
        tree.add('a')
423
 
        tree.commit("added a")
424
 
        first_rev = tree.branch.revision_history()[0]
 
423
        first_rev = tree.commit("added a")
425
424
        merger = _mod_merge.Merger.from_revision_ids(None, tree,
426
425
                                          _mod_revision.NULL_REVISION,
427
426
                                          first_rev)
447
446
        merger.merge_type = _mod_merge.Merge3Merger
448
447
        tree_merger = merger.make_merger()
449
448
        self.assertIs(_mod_merge.Merge3Merger, tree_merger.__class__)
450
 
        self.assertEqual('rev2b', tree_merger.other_tree.get_revision_id())
451
 
        self.assertEqual('rev1', tree_merger.base_tree.get_revision_id())
 
449
        self.assertEqual('rev2b',
 
450
            tree_merger.other_tree.get_revision_id())
 
451
        self.assertEqual('rev1',
 
452
            tree_merger.base_tree.get_revision_id())
 
453
        self.assertEqual(other_tree.branch, tree_merger.other_branch)
452
454
 
453
455
    def test_make_preview_transform(self):
454
456
        this_tree = self.make_branch_and_tree('this')
509
511
        self.addCleanup(tree.unlock)
510
512
        self.build_tree(['a'])
511
513
        tree.add('a')
512
 
        tree.commit("added a")
 
514
        first_rev = tree.commit("added a")
513
515
        old_root_id = tree.get_root_id()
514
 
        first_rev = tree.branch.revision_history()[0]
515
516
        merger = _mod_merge.Merger.from_revision_ids(None, tree,
516
517
                                          _mod_revision.NULL_REVISION,
517
518
                                          first_rev)
3244
3245
        # The dest tree is unmodified.
3245
3246
        self.assertEqual(['r1-dest'], dest_wt.get_parent_ids())
3246
3247
        self.assertTreeEntriesEqual([('', 'dest-root-id')], dest_wt)
 
3248
 
 
3249
 
 
3250
class TestMergeHooks(TestCaseWithTransport):
 
3251
 
 
3252
    def setUp(self):
 
3253
        super(TestMergeHooks, self).setUp()
 
3254
        self.tree_a = self.make_branch_and_tree('tree_a')
 
3255
        self.build_tree_contents([('tree_a/file', 'content_1')])
 
3256
        self.tree_a.add('file', 'file-id')
 
3257
        self.tree_a.commit('added file')
 
3258
 
 
3259
        self.tree_b = self.tree_a.bzrdir.sprout('tree_b').open_workingtree()
 
3260
        self.build_tree_contents([('tree_b/file', 'content_2')])
 
3261
        self.tree_b.commit('modify file')
 
3262
 
 
3263
    def test_pre_merge_hook_inject_different_tree(self):
 
3264
        tree_c = self.tree_b.bzrdir.sprout('tree_c').open_workingtree()
 
3265
        self.build_tree_contents([('tree_c/file', 'content_3')])
 
3266
        tree_c.commit("more content")
 
3267
        calls = []
 
3268
        def factory(merger):
 
3269
            self.assertIsInstance(merger, _mod_merge.Merge3Merger)
 
3270
            merger.other_tree = tree_c
 
3271
            calls.append(merger)
 
3272
        _mod_merge.Merger.hooks.install_named_hook('pre_merge',
 
3273
                                                   factory, 'test factory')
 
3274
        self.tree_a.merge_from_branch(self.tree_b.branch)
 
3275
 
 
3276
        self.assertFileEqual("content_3", 'tree_a/file')
 
3277
        self.assertLength(1, calls)
 
3278
 
 
3279
    def test_post_merge_hook_called(self):
 
3280
        calls = []
 
3281
        def factory(merger):
 
3282
            self.assertIsInstance(merger, _mod_merge.Merge3Merger)
 
3283
            calls.append(merger)
 
3284
        _mod_merge.Merger.hooks.install_named_hook('post_merge',
 
3285
                                                   factory, 'test factory')
 
3286
 
 
3287
        self.tree_a.merge_from_branch(self.tree_b.branch)
 
3288
 
 
3289
        self.assertFileEqual("content_2", 'tree_a/file')
 
3290
        self.assertLength(1, calls)