/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: John Arbash Meinel
  • Date: 2008-09-05 03:11:40 UTC
  • mfrom: (3691 +trunk)
  • mto: (3697.7.4 1.7)
  • mto: This revision was merged to the branch mainline in revision 3748.
  • Revision ID: john@arbash-meinel.com-20080905031140-hj0adlcf30l7i99v
Merge in bzr.dev 3691

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")
 
1301
 
 
1302
    def test_no_final_path(self):
 
1303
        transform, root = self.get_transform()
 
1304
        trans_id = transform.trans_id_file_id('foo')
 
1305
        transform.create_file('bar', trans_id)
 
1306
        transform.cancel_creation(trans_id)
 
1307
        transform.apply()
1232
1308
 
1233
1309
 
1234
1310
class TransformGroup(object):
2314
2390
        preview.set_executability(True, preview.trans_id_file_id('file-id'))
2315
2391
        preview_tree = preview.get_preview_tree()
2316
2392
        self.assertEqual(True, preview_tree.is_executable('file-id'))
 
2393
 
 
2394
    def test_get_set_parent_ids(self):
 
2395
        revision_tree, preview_tree = self.get_tree_and_preview_tree()
 
2396
        self.assertEqual([], preview_tree.get_parent_ids())
 
2397
        preview_tree.set_parent_ids(['rev-1'])
 
2398
        self.assertEqual(['rev-1'], preview_tree.get_parent_ids())
 
2399
 
 
2400
    def test_plan_file_merge(self):
 
2401
        work_a = self.make_branch_and_tree('wta')
 
2402
        self.build_tree_contents([('wta/file', 'a\nb\nc\nd\n')])
 
2403
        work_a.add('file', 'file-id')
 
2404
        base_id = work_a.commit('base version')
 
2405
        tree_b = work_a.bzrdir.sprout('wtb').open_workingtree()
 
2406
        preview = TransformPreview(work_a)
 
2407
        self.addCleanup(preview.finalize)
 
2408
        trans_id = preview.trans_id_file_id('file-id')
 
2409
        preview.delete_contents(trans_id)
 
2410
        preview.create_file('b\nc\nd\ne\n', trans_id)
 
2411
        self.build_tree_contents([('wtb/file', 'a\nc\nd\nf\n')])
 
2412
        tree_a = preview.get_preview_tree()
 
2413
        tree_a.set_parent_ids([base_id])
 
2414
        self.assertEqual([
 
2415
            ('killed-a', 'a\n'),
 
2416
            ('killed-b', 'b\n'),
 
2417
            ('unchanged', 'c\n'),
 
2418
            ('unchanged', 'd\n'),
 
2419
            ('new-a', 'e\n'),
 
2420
            ('new-b', 'f\n'),
 
2421
        ], list(tree_a.plan_file_merge('file-id', tree_b)))
 
2422
 
 
2423
    def test_plan_file_merge_revision_tree(self):
 
2424
        work_a = self.make_branch_and_tree('wta')
 
2425
        self.build_tree_contents([('wta/file', 'a\nb\nc\nd\n')])
 
2426
        work_a.add('file', 'file-id')
 
2427
        base_id = work_a.commit('base version')
 
2428
        tree_b = work_a.bzrdir.sprout('wtb').open_workingtree()
 
2429
        preview = TransformPreview(work_a.basis_tree())
 
2430
        self.addCleanup(preview.finalize)
 
2431
        trans_id = preview.trans_id_file_id('file-id')
 
2432
        preview.delete_contents(trans_id)
 
2433
        preview.create_file('b\nc\nd\ne\n', trans_id)
 
2434
        self.build_tree_contents([('wtb/file', 'a\nc\nd\nf\n')])
 
2435
        tree_a = preview.get_preview_tree()
 
2436
        tree_a.set_parent_ids([base_id])
 
2437
        self.assertEqual([
 
2438
            ('killed-a', 'a\n'),
 
2439
            ('killed-b', 'b\n'),
 
2440
            ('unchanged', 'c\n'),
 
2441
            ('unchanged', 'd\n'),
 
2442
            ('new-a', 'e\n'),
 
2443
            ('new-b', 'f\n'),
 
2444
        ], list(tree_a.plan_file_merge('file-id', tree_b)))
 
2445
 
 
2446
    def test_walkdirs(self):
 
2447
        preview = self.get_empty_preview()
 
2448
        preview.version_file('tree-root', preview.root)
 
2449
        preview_tree = preview.get_preview_tree()
 
2450
        file_trans_id = preview.new_file('a', preview.root, 'contents',
 
2451
                                         'a-id')
 
2452
        expected = [(('', 'tree-root'),
 
2453
                    [('a', 'a', 'file', None, 'a-id', 'file')])]
 
2454
        self.assertEqual(expected, list(preview_tree.walkdirs()))