~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/workingtree_implementations/test_move.py

  • Committer: John Arbash Meinel
  • Date: 2007-04-28 15:04:17 UTC
  • mfrom: (2466 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2566.
  • Revision ID: john@arbash-meinel.com-20070428150417-trp3pi0pzd411pu4
[merge] bzr.dev 2466

Show diffs side-by-side

added added

removed removed

Lines of Context:
167
167
                               ('d', 'd-id')], tree.basis_tree())
168
168
        tree._validate()
169
169
 
 
170
    def test_move_over_deleted(self):
 
171
        tree = self.make_branch_and_tree('.')
 
172
        self.build_tree(['a/', 'a/b', 'b'])
 
173
        tree.add(['a', 'a/b', 'b'], ['a-id', 'ab-id', 'b-id'])
 
174
        tree.commit('initial', rev_id='rev-1')
 
175
 
 
176
        root_id = tree.get_root_id()
 
177
        tree.remove(['a/b'], keep_files=False)
 
178
        self.assertEqual([('b', 'a/b')], tree.move(['b'], 'a'))
 
179
        self.assertTreeLayout([('', root_id),
 
180
                               ('a', 'a-id'),
 
181
                               ('a/b', 'b-id'),
 
182
                              ], tree)
 
183
        tree._validate()
 
184
 
170
185
    def test_move_subdir(self):
171
186
        tree = self.make_branch_and_tree('.')
172
187
        self.build_tree(['a', 'b/', 'b/c'])
358
373
                               ('a/c/d', 'd-id')], tree.basis_tree())
359
374
        tree._validate()
360
375
 
 
376
    def test_move_directory_into_parent(self):
 
377
        tree = self.make_branch_and_tree('.')
 
378
        self.build_tree(['c/', 'c/b/', 'c/b/d/'])
 
379
        tree.add(['c', 'c/b', 'c/b/d'],
 
380
                 ['c-id', 'b-id', 'd-id'])
 
381
        tree.commit('initial', rev_id='rev-1')
 
382
        root_id = tree.get_root_id()
 
383
 
 
384
        self.assertEqual([('c/b', 'b')],
 
385
                         tree.move(['c/b'], ''))
 
386
        self.assertTreeLayout([('', root_id),
 
387
                               ('b', 'b-id'),
 
388
                               ('c', 'c-id'),
 
389
                               ('b/d', 'd-id'),
 
390
                              ], tree)
 
391
        tree._validate()
 
392
 
 
393
    def test_move_directory_with_children_in_subdir(self):
 
394
        tree = self.make_branch_and_tree('.')
 
395
        self.build_tree(['a/', 'a/b', 'a/c/', 'd/'])
 
396
        tree.add(['a', 'a/b', 'a/c', 'd'],
 
397
                 ['a-id', 'b-id', 'c-id', 'd-id'])
 
398
        tree.commit('initial', rev_id='rev-1')
 
399
        root_id = tree.get_root_id()
 
400
 
 
401
 
 
402
        tree.rename_one('a/b', 'a/c/b')
 
403
        self.assertTreeLayout([('', root_id),
 
404
                               ('a', 'a-id'),
 
405
                               ('d', 'd-id'),
 
406
                               ('a/c', 'c-id'),
 
407
                               ('a/c/b', 'b-id'),
 
408
                              ], tree)
 
409
        self.assertEqual([('a', 'd/a')],
 
410
                         tree.move(['a'], 'd'))
 
411
        self.assertTreeLayout([('', root_id),
 
412
                               ('d', 'd-id'),
 
413
                               ('d/a', 'a-id'),
 
414
                               ('d/a/c', 'c-id'),
 
415
                               ('d/a/c/b', 'b-id'),
 
416
                              ], tree)
 
417
        tree._validate()
 
418
 
 
419
    def test_move_directory_with_deleted_children(self):
 
420
        tree = self.make_branch_and_tree('.')
 
421
        self.build_tree(['a/', 'a/b', 'a/c', 'a/d', 'b/'])
 
422
        tree.add(['a', 'b', 'a/b', 'a/c', 'a/d'],
 
423
                 ['a-id', 'b-id', 'ab-id', 'ac-id', 'ad-id'])
 
424
        tree.commit('initial', rev_id='rev-1')
 
425
        root_id = tree.get_root_id()
 
426
 
 
427
        tree.remove(['a/b', 'a/d'])
 
428
 
 
429
        self.assertEqual([('a', 'b/a')],
 
430
                         tree.move(['a'], 'b'))
 
431
        self.assertTreeLayout([('', root_id),
 
432
                               ('b', 'b-id'),
 
433
                               ('b/a', 'a-id'),
 
434
                               ('b/a/c', 'ac-id'),
 
435
                              ], tree)
 
436
        tree._validate()
 
437
 
 
438
    def test_move_directory_with_new_children(self):
 
439
        tree = self.make_branch_and_tree('.')
 
440
        self.build_tree(['a/', 'a/c', 'b/'])
 
441
        tree.add(['a', 'b', 'a/c'], ['a-id', 'b-id', 'ac-id'])
 
442
        tree.commit('initial', rev_id='rev-1')
 
443
        root_id = tree.get_root_id()
 
444
 
 
445
        self.build_tree(['a/b', 'a/d'])
 
446
        tree.add(['a/b', 'a/d'], ['ab-id', 'ad-id'])
 
447
 
 
448
        self.assertEqual([('a', 'b/a')],
 
449
                         tree.move(['a'], 'b'))
 
450
        self.assertTreeLayout([('', root_id),
 
451
                               ('b', 'b-id'),
 
452
                               ('b/a', 'a-id'),
 
453
                               ('b/a/b', 'ab-id'),
 
454
                               ('b/a/c', 'ac-id'),
 
455
                               ('b/a/d', 'ad-id'),
 
456
                              ], tree)
 
457
        tree._validate()
 
458
 
 
459
    def test_move_directory_with_moved_children(self):
 
460
        tree = self.make_branch_and_tree('.')
 
461
        self.build_tree(['a/', 'a/b', 'a/c', 'd', 'e/'])
 
462
        tree.add(['a', 'a/b', 'a/c', 'd', 'e'],
 
463
                 ['a-id', 'b-id', 'c-id', 'd-id', 'e-id'])
 
464
        tree.commit('initial', rev_id='rev-1')
 
465
        root_id = tree.get_root_id()
 
466
 
 
467
        self.assertEqual([('a/b', 'b')],
 
468
                         tree.move(['a/b'], ''))
 
469
        self.assertTreeLayout([('', root_id),
 
470
                               ('a', 'a-id'),
 
471
                               ('b', 'b-id'),
 
472
                               ('d', 'd-id'),
 
473
                               ('e', 'e-id'),
 
474
                               ('a/c', 'c-id'),
 
475
                              ], tree)
 
476
        self.assertEqual([('d', 'a/d')],
 
477
                         tree.move(['d'], 'a'))
 
478
        self.assertTreeLayout([('', root_id),
 
479
                               ('a', 'a-id'),
 
480
                               ('b', 'b-id'),
 
481
                               ('e', 'e-id'),
 
482
                               ('a/c', 'c-id'),
 
483
                               ('a/d', 'd-id'),
 
484
                              ], tree)
 
485
        self.assertEqual([('a', 'e/a')],
 
486
                         tree.move(['a'], 'e'))
 
487
        self.assertTreeLayout([('', root_id),
 
488
                               ('b', 'b-id'),
 
489
                               ('e', 'e-id'),
 
490
                               ('e/a', 'a-id'),
 
491
                               ('e/a/c', 'c-id'),
 
492
                               ('e/a/d', 'd-id'),
 
493
                              ], tree)
 
494
        tree._validate()
 
495
 
 
496
    def test_move_directory_with_renamed_child(self):
 
497
        tree = self.make_branch_and_tree('.')
 
498
        self.build_tree(['a/', 'a/b', 'a/c', 'd/'])
 
499
        tree.add(['a', 'a/b', 'a/c', 'd'],
 
500
                 ['a-id', 'b-id', 'c-id', 'd-id'])
 
501
        tree.commit('initial', rev_id='rev-1')
 
502
        root_id = tree.get_root_id()
 
503
 
 
504
        tree.rename_one('a/b', 'a/d')
 
505
        self.assertTreeLayout([('', root_id),
 
506
                               ('a', 'a-id'),
 
507
                               ('d', 'd-id'),
 
508
                               ('a/c', 'c-id'),
 
509
                               ('a/d', 'b-id'),
 
510
                              ], tree)
 
511
        self.assertEqual([('a', 'd/a')],
 
512
                         tree.move(['a'], 'd'))
 
513
        self.assertTreeLayout([('', root_id),
 
514
                               ('d', 'd-id'),
 
515
                               ('d/a', 'a-id'),
 
516
                               ('d/a/c', 'c-id'),
 
517
                               ('d/a/d', 'b-id'),
 
518
                              ], tree)
 
519
        tree._validate()
 
520
 
 
521
    def test_move_directory_with_swapped_children(self):
 
522
        tree = self.make_branch_and_tree('.')
 
523
        self.build_tree(['a/', 'a/b', 'a/c', 'a/d', 'e/'])
 
524
        tree.add(['a', 'a/b', 'a/c', 'a/d', 'e'],
 
525
                 ['a-id', 'b-id', 'c-id', 'd-id', 'e-id'])
 
526
        tree.commit('initial', rev_id='rev-1')
 
527
        root_id = tree.get_root_id()
 
528
 
 
529
        tree.rename_one('a/b', 'a/bb')
 
530
        tree.rename_one('a/d', 'a/b')
 
531
        tree.rename_one('a/bb', 'a/d')
 
532
        self.assertTreeLayout([('', root_id),
 
533
                               ('a', 'a-id'),
 
534
                               ('e', 'e-id'),
 
535
                               ('a/b', 'd-id'),
 
536
                               ('a/c', 'c-id'),
 
537
                               ('a/d', 'b-id'),
 
538
                              ], tree)
 
539
        self.assertEqual([('a', 'e/a')],
 
540
                         tree.move(['a'], 'e'))
 
541
        self.assertTreeLayout([('', root_id),
 
542
                               ('e', 'e-id'),
 
543
                               ('e/a', 'a-id'),
 
544
                               ('e/a/b', 'd-id'),
 
545
                               ('e/a/c', 'c-id'),
 
546
                               ('e/a/d', 'b-id'),
 
547
                              ], tree)
 
548
        tree._validate()
 
549
 
361
550
    def test_move_moved(self):
362
551
        """Moving a moved entry works as expected."""
363
552
        tree = self.make_branch_and_tree('.')