528
528
basis_shape = Inventory(root_id=None) # empty tree
529
529
new_shape = Inventory() # tree with a root
530
530
self.assertTransitionFromBasisToShape(basis_shape, None, new_shape,
533
533
def test_no_parents_full_tree(self):
534
534
"""Test doing a regular initial commit with files and dirs."""
537
537
new_shape = Inventory(root_id=None)
538
538
self.add_dir(new_shape, revid, b'root-id', None, '')
539
539
self.add_link(new_shape, revid, b'link-id', b'root-id', 'link', 'target')
540
self.add_file(new_shape, revid, b'file-id', b'root-id', 'file', '1' * 32,
540
self.add_file(new_shape, revid, b'file-id', b'root-id', 'file', b'1' * 32,
542
542
self.add_dir(new_shape, revid, b'dir-id', b'root-id', 'dir')
543
543
self.add_file(new_shape, revid, b'subfile-id', b'dir-id', 'subfile',
545
545
self.assertTransitionFromBasisToShape(basis_shape, None, new_shape,
550
550
basis_shape = Inventory(root_id=None)
551
551
self.add_dir(basis_shape, old_revid, b'root-id', None, '')
552
552
self.add_file(basis_shape, old_revid, b'file-id', b'root-id', 'file',
554
554
new_revid = b'new-parent'
555
555
new_shape = Inventory(root_id=None)
556
556
self.add_new_root(new_shape, old_revid, new_revid)
557
557
self.add_file(new_shape, new_revid, b'file-id', b'root-id', 'file',
559
559
self.assertTransitionFromBasisToShape(basis_shape, old_revid,
560
560
new_shape, new_revid)
576
576
def test_kind_changes(self):
577
577
def do_file(inv, revid):
578
self.add_file(inv, revid, b'path-id', b'root-id', 'path', '1' * 32,
578
self.add_file(inv, revid, b'path-id', b'root-id', 'path', b'1' * 32,
581
581
def do_link(inv, revid):
600
600
new_shape, new_revid)
602
602
def test_content_from_second_parent_is_dropped(self):
603
left_revid = 'left-parent'
603
left_revid = b'left-parent'
604
604
basis_shape = Inventory(root_id=None)
605
605
self.add_dir(basis_shape, left_revid, b'root-id', None, '')
606
606
self.add_link(basis_shape, left_revid, b'link-id', b'root-id', 'link',
608
608
# the right shape has content - file, link, subdir with a child,
609
609
# that should all be discarded by the call.
610
right_revid = 'right-parent'
610
right_revid = b'right-parent'
611
611
right_shape = Inventory(root_id=None)
612
612
self.add_dir(right_shape, left_revid, b'root-id', None, '')
613
613
self.add_link(right_shape, right_revid, b'link-id', b'root-id', 'link',
615
615
self.add_dir(right_shape, right_revid, b'subdir-id', b'root-id', 'dir')
616
616
self.add_file(right_shape, right_revid, b'file-id', b'subdir-id', 'file',
618
618
new_revid = b'new-parent'
619
619
new_shape = Inventory(root_id=None)
620
620
self.add_new_root(new_shape, left_revid, new_revid)
712
712
self.add_link(basis_shape, old_revid, b'link-id-C', b'root-id', 'C', 'C')
713
713
self.add_link(basis_shape, old_revid, b'link-id-D', b'root-id', 'D', 'D')
714
714
self.add_file(basis_shape, old_revid, b'file-id-E', b'root-id', 'E',
716
716
self.add_file(basis_shape, old_revid, b'file-id-F', b'root-id', 'F',
718
718
new_revid = b'new-parent'
719
719
new_shape = Inventory(root_id=None)
720
720
self.add_new_root(new_shape, old_revid, new_revid)
723
723
self.add_link(new_shape, new_revid, b'link-id-C', b'root-id', 'D', 'C')
724
724
self.add_link(new_shape, new_revid, b'link-id-D', b'root-id', 'C', 'D')
725
725
self.add_file(new_shape, new_revid, b'file-id-E', b'root-id', 'F',
727
727
self.add_file(new_shape, new_revid, b'file-id-F', b'root-id', 'E',
729
729
self.assertTransitionFromBasisToShape(basis_shape, old_revid,
730
730
new_shape, new_revid)
741
741
self.add_dir(new_shape, new_revid, b'dir-id-A', b'root-id', 'A')
742
742
self.add_link(new_shape, new_revid, b'link-id-B', b'root-id', 'B', 'C')
743
743
self.add_file(new_shape, new_revid, b'file-id-C', b'root-id', 'C',
745
745
self.add_file(new_shape, new_revid, b'file-id-D', b'dir-id-A', 'D',
747
747
self.assertTransitionFromBasisToShape(basis_shape, old_revid,
748
748
new_shape, new_revid)
756
756
self.add_dir(basis_shape, old_revid, b'dir-id-A', b'root-id', 'A')
757
757
self.add_link(basis_shape, old_revid, b'link-id-B', b'root-id', 'B', 'C')
758
758
self.add_file(basis_shape, old_revid, b'file-id-C', b'root-id', 'C',
760
760
self.add_file(basis_shape, old_revid, b'file-id-D', b'dir-id-A', 'D',
762
762
new_revid = b'new-parent'
763
763
new_shape = Inventory(root_id=None)
764
764
self.add_new_root(new_shape, old_revid, new_revid)
819
819
self.add_new_root(new_shape, old_revid, new_revid)
820
820
self.add_dir(new_shape, old_revid, b'dir-id-A', b'root-id', 'A')
821
821
self.add_file(new_shape, new_revid, b'file-id-B', b'dir-id-A', 'B',
823
823
self.assertTransitionFromBasisToShape(basis_shape, old_revid,
824
824
new_shape, new_revid, set_current_inventory=False)