~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_merge.py

  • Committer: Benoît Pierre
  • Date: 2011-10-10 20:55:52 UTC
  • mto: This revision was merged to the branch mainline in revision 6215.
  • Revision ID: benoit.pierre@gmail.com-20111010205552-7o6qoaiihy31hhxb
Avoid prompt duplication for shelf_ui tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
from bzrlib.merge import transform_tree, merge_inner, _PlanMerge
38
38
from bzrlib.osutils import basename, pathjoin, file_kind
39
39
from bzrlib.tests import (
 
40
    features,
40
41
    TestCaseWithMemoryTransport,
41
42
    TestCaseWithTransport,
42
43
    test_merge_core,
135
136
            preview = tt.get_preview_tree()
136
137
            self.assertEqual(wt.get_root_id(), preview.get_root_id())
137
138
 
 
139
    def test_merge_unrelated_retains_root(self):
 
140
        wt = self.make_branch_and_tree('tree')
 
141
        other_tree = self.make_branch_and_tree('other')
 
142
        self.addCleanup(other_tree.lock_read().unlock)
 
143
        merger = _mod_merge.Merge3Merger(wt, wt, wt.basis_tree(), other_tree,
 
144
                                         this_branch=wt.branch,
 
145
                                         do_merge=False)
 
146
        with transform.TransformPreview(wt) as merger.tt:
 
147
            merger._compute_transform()
 
148
            new_root_id = merger.tt.final_file_id(merger.tt.root)
 
149
            self.assertEqual(wt.get_root_id(), new_root_id)
 
150
 
138
151
    def test_create_rename(self):
139
152
        """Rename an inventory entry while creating the file"""
140
153
        tree =self.make_branch_and_tree('.')
407
420
        self.addCleanup(tree.unlock)
408
421
        self.build_tree(['a'])
409
422
        tree.add('a')
410
 
        tree.commit("added a")
411
 
        first_rev = tree.branch.revision_history()[0]
 
423
        first_rev = tree.commit("added a")
412
424
        merger = _mod_merge.Merger.from_revision_ids(None, tree,
413
425
                                          _mod_revision.NULL_REVISION,
414
426
                                          first_rev)
496
508
        self.addCleanup(tree.unlock)
497
509
        self.build_tree(['a'])
498
510
        tree.add('a')
499
 
        tree.commit("added a")
 
511
        first_rev = tree.commit("added a")
500
512
        old_root_id = tree.get_root_id()
501
 
        first_rev = tree.branch.revision_history()[0]
502
513
        merger = _mod_merge.Merger.from_revision_ids(None, tree,
503
514
                                          _mod_revision.NULL_REVISION,
504
515
                                          first_rev)
1879
1890
        builder.build_snapshot('C-id', ['A-id'], [])
1880
1891
        builder.build_snapshot('E-id', ['C-id', 'B-id'],
1881
1892
            [('unversion', 'a-id'),
 
1893
             ('flush', None),
1882
1894
             ('add', (u'a', 'a-id', 'directory', None))])
1883
1895
        builder.build_snapshot('D-id', ['B-id', 'C-id'], [])
1884
1896
        merge_obj = self.make_merge_obj(builder, 'E-id')
1902
1914
        builder.build_snapshot('E-id', ['C-id', 'B-id'], [])
1903
1915
        builder.build_snapshot('D-id', ['B-id', 'C-id'],
1904
1916
            [('unversion', 'a-id'),
 
1917
             ('flush', None),
1905
1918
             ('add', (u'a', 'a-id', 'directory', None))])
1906
1919
        merge_obj = self.make_merge_obj(builder, 'E-id')
1907
1920
        entries = list(merge_obj._entries_lca())
2170
2183
        self.assertTrue(wt.is_executable('foo-id'))
2171
2184
 
2172
2185
    def test_create_symlink(self):
2173
 
        self.requireFeature(tests.SymlinkFeature)
 
2186
        self.requireFeature(features.SymlinkFeature)
2174
2187
        #   A
2175
2188
        #  / \
2176
2189
        # B   C
2235
2248
                             wt.get_file_text('foo-id'))
2236
2249
 
2237
2250
    def test_modified_symlink(self):
2238
 
        self.requireFeature(tests.SymlinkFeature)
 
2251
        self.requireFeature(features.SymlinkFeature)
2239
2252
        #   A       Create symlink foo => bar
2240
2253
        #  / \
2241
2254
        # B   C     B relinks foo => baz
2280
2293
        self.assertEqual('bing', wt.get_symlink_target('foo-id'))
2281
2294
 
2282
2295
    def test_renamed_symlink(self):
2283
 
        self.requireFeature(tests.SymlinkFeature)
 
2296
        self.requireFeature(features.SymlinkFeature)
2284
2297
        #   A       Create symlink foo => bar
2285
2298
        #  / \
2286
2299
        # B   C     B renames foo => barry
2336
2349
        self.assertEqual('blah', wt.id2path('foo-id'))
2337
2350
 
2338
2351
    def test_symlink_no_content_change(self):
2339
 
        self.requireFeature(tests.SymlinkFeature)
 
2352
        self.requireFeature(features.SymlinkFeature)
2340
2353
        #   A       Create symlink foo => bar
2341
2354
        #  / \
2342
2355
        # B   C     B relinks foo => baz
2387
2400
        self.assertEqual('bing', wt.get_symlink_target('foo-id'))
2388
2401
 
2389
2402
    def test_symlink_this_changed_kind(self):
2390
 
        self.requireFeature(tests.SymlinkFeature)
 
2403
        self.requireFeature(features.SymlinkFeature)
2391
2404
        #   A       Nothing
2392
2405
        #  / \
2393
2406
        # B   C     B creates symlink foo => bar
2440
2453
 
2441
2454
    def test_symlink_all_wt(self):
2442
2455
        """Check behavior if all trees are Working Trees."""
2443
 
        self.requireFeature(tests.SymlinkFeature)
 
2456
        self.requireFeature(features.SymlinkFeature)
2444
2457
        # The big issue is that entry.symlink_target is None for WorkingTrees.
2445
2458
        # So we need to make sure we handle that case correctly.
2446
2459
        #   A   foo => bar