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

  • Committer: Andrew Bennetts
  • Date: 2008-08-07 00:25:38 UTC
  • mfrom: (3612 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3613.
  • Revision ID: andrew.bennetts@canonical.com-20080807002538-mtl1fcgy2fdabha4
Merge from bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1219
1219
        wt = self.make_branch_and_tree('.')
1220
1220
        self.build_tree(['foo'])
1221
1221
        wt.add(['foo'])
 
1222
        wt.commit("one")
1222
1223
        tt = TreeTransform(wt)
1223
1224
        self.addCleanup(tt.finalize)
1224
1225
        foo_trans_id = tt.trans_id_tree_path("foo")
1229
1230
        tt.version_file("bar-1", bar_trans_id)
1230
1231
        tt.apply()
1231
1232
        self.failUnlessExists("foo/bar")
 
1233
        wt.lock_read()
 
1234
        try:
 
1235
            self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
 
1236
                    "directory")
 
1237
        finally:
 
1238
            wt.unlock()
 
1239
        wt.commit("two")
 
1240
        changes = wt.changes_from(wt.basis_tree())
 
1241
        self.assertFalse(changes.has_changed(), changes)
 
1242
 
 
1243
    def test_file_to_symlink(self):
 
1244
        self.requireFeature(SymlinkFeature)
 
1245
        wt = self.make_branch_and_tree('.')
 
1246
        self.build_tree(['foo'])
 
1247
        wt.add(['foo'])
 
1248
        wt.commit("one")
 
1249
        tt = TreeTransform(wt)
 
1250
        self.addCleanup(tt.finalize)
 
1251
        foo_trans_id = tt.trans_id_tree_path("foo")
 
1252
        tt.delete_contents(foo_trans_id)
 
1253
        tt.create_symlink("bar", foo_trans_id)
 
1254
        tt.apply()
 
1255
        self.failUnlessExists("foo")
 
1256
        wt.lock_read()
 
1257
        self.addCleanup(wt.unlock)
 
1258
        self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
 
1259
                "symlink")
 
1260
 
 
1261
    def test_dir_to_file(self):
 
1262
        wt = self.make_branch_and_tree('.')
 
1263
        self.build_tree(['foo/', 'foo/bar'])
 
1264
        wt.add(['foo', 'foo/bar'])
 
1265
        wt.commit("one")
 
1266
        tt = TreeTransform(wt)
 
1267
        self.addCleanup(tt.finalize)
 
1268
        foo_trans_id = tt.trans_id_tree_path("foo")
 
1269
        bar_trans_id = tt.trans_id_tree_path("foo/bar")
 
1270
        tt.delete_contents(foo_trans_id)
 
1271
        tt.delete_versioned(bar_trans_id)
 
1272
        tt.create_file(["aa\n"], foo_trans_id)
 
1273
        tt.apply()
 
1274
        self.failUnlessExists("foo")
 
1275
        wt.lock_read()
 
1276
        self.addCleanup(wt.unlock)
 
1277
        self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
 
1278
                "file")
 
1279
 
 
1280
    def test_dir_to_hardlink(self):
 
1281
        self.requireFeature(HardlinkFeature)
 
1282
        wt = self.make_branch_and_tree('.')
 
1283
        self.build_tree(['foo/', 'foo/bar'])
 
1284
        wt.add(['foo', 'foo/bar'])
 
1285
        wt.commit("one")
 
1286
        tt = TreeTransform(wt)
 
1287
        self.addCleanup(tt.finalize)
 
1288
        foo_trans_id = tt.trans_id_tree_path("foo")
 
1289
        bar_trans_id = tt.trans_id_tree_path("foo/bar")
 
1290
        tt.delete_contents(foo_trans_id)
 
1291
        tt.delete_versioned(bar_trans_id)
 
1292
        self.build_tree(['baz'])
 
1293
        tt.create_hardlink("baz", foo_trans_id)
 
1294
        tt.apply()
 
1295
        self.failUnlessExists("foo")
 
1296
        self.failUnlessExists("baz")
 
1297
        wt.lock_read()
 
1298
        self.addCleanup(wt.unlock)
 
1299
        self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
 
1300
                "file")
1232
1301
 
1233
1302
 
1234
1303
class TransformGroup(object):
2314
2383
        preview.set_executability(True, preview.trans_id_file_id('file-id'))
2315
2384
        preview_tree = preview.get_preview_tree()
2316
2385
        self.assertEqual(True, preview_tree.is_executable('file-id'))
 
2386
 
 
2387
    def test_get_set_parent_ids(self):
 
2388
        revision_tree, preview_tree = self.get_tree_and_preview_tree()
 
2389
        self.assertEqual([], preview_tree.get_parent_ids())
 
2390
        preview_tree.set_parent_ids(['rev-1'])
 
2391
        self.assertEqual(['rev-1'], preview_tree.get_parent_ids())
 
2392
 
 
2393
    def test_plan_file_merge(self):
 
2394
        work_a = self.make_branch_and_tree('wta')
 
2395
        self.build_tree_contents([('wta/file', 'a\nb\nc\nd\n')])
 
2396
        work_a.add('file', 'file-id')
 
2397
        base_id = work_a.commit('base version')
 
2398
        tree_b = work_a.bzrdir.sprout('wtb').open_workingtree()
 
2399
        preview = TransformPreview(work_a)
 
2400
        self.addCleanup(preview.finalize)
 
2401
        trans_id = preview.trans_id_file_id('file-id')
 
2402
        preview.delete_contents(trans_id)
 
2403
        preview.create_file('b\nc\nd\ne\n', trans_id)
 
2404
        self.build_tree_contents([('wtb/file', 'a\nc\nd\nf\n')])
 
2405
        tree_a = preview.get_preview_tree()
 
2406
        tree_a.set_parent_ids([base_id])
 
2407
        self.assertEqual([
 
2408
            ('killed-a', 'a\n'),
 
2409
            ('killed-b', 'b\n'),
 
2410
            ('unchanged', 'c\n'),
 
2411
            ('unchanged', 'd\n'),
 
2412
            ('new-a', 'e\n'),
 
2413
            ('new-b', 'f\n'),
 
2414
        ], list(tree_a.plan_file_merge('file-id', tree_b)))
 
2415
 
 
2416
    def test_plan_file_merge_revision_tree(self):
 
2417
        work_a = self.make_branch_and_tree('wta')
 
2418
        self.build_tree_contents([('wta/file', 'a\nb\nc\nd\n')])
 
2419
        work_a.add('file', 'file-id')
 
2420
        base_id = work_a.commit('base version')
 
2421
        tree_b = work_a.bzrdir.sprout('wtb').open_workingtree()
 
2422
        preview = TransformPreview(work_a.basis_tree())
 
2423
        self.addCleanup(preview.finalize)
 
2424
        trans_id = preview.trans_id_file_id('file-id')
 
2425
        preview.delete_contents(trans_id)
 
2426
        preview.create_file('b\nc\nd\ne\n', trans_id)
 
2427
        self.build_tree_contents([('wtb/file', 'a\nc\nd\nf\n')])
 
2428
        tree_a = preview.get_preview_tree()
 
2429
        tree_a.set_parent_ids([base_id])
 
2430
        self.assertEqual([
 
2431
            ('killed-a', 'a\n'),
 
2432
            ('killed-b', 'b\n'),
 
2433
            ('unchanged', 'c\n'),
 
2434
            ('unchanged', 'd\n'),
 
2435
            ('new-a', 'e\n'),
 
2436
            ('new-b', 'f\n'),
 
2437
        ], list(tree_a.plan_file_merge('file-id', tree_b)))