788
788
transform2.apply()
789
789
self.assertEqual(transform2.rename_count, 2)
791
def test_change_parent(self):
792
transform, root = self.get_transform()
793
frexpar = transform.new_directory('frexpar', root)
794
elphaba = transform.new_file('elphaba', frexpar, 'contents')
795
oz = transform.new_directory('oz', root)
796
transform.adjust_path('elphaba', oz, elphaba)
798
self.failIfExists(self.wt.abspath('frexpar/elphaba'))
799
self.failUnlessExists(self.wt.abspath('oz/elphaba'))
800
# rename libbo/new1 => frexpar, rename limbo/new3 => oz
801
# no rename for elphaba
802
self.failUnlessEqual(2, transform.rename_count)
804
def test_cancel_parent(self):
805
"""Cancelling a parent doesn't cause deletion of a non-empty directory
807
This is like the test_change_parent, except that we cancel the parent
808
before adjusting the path. The transform must detect that the
809
directory is non-empty, and move children to safe locations.
811
transform, root = self.get_transform()
812
frexpar = transform.new_directory('frexpar', root)
813
elphaba = transform.new_file('elphaba', frexpar, 'contents')
814
nessarose = transform.new_file('nessarose', frexpar, 'contents')
816
transform.cancel_creation(frexpar)
818
self.fail('Failed to move elphaba before deleting frexpar')
819
transform.cancel_creation(nessarose)
820
transform.create_directory(frexpar)
822
transform.cancel_creation(frexpar)
824
self.fail('Transform still thinks nessarose is a child of frexpar')
825
oz = transform.new_directory('oz', root)
826
transform.adjust_path('elphaba', oz, elphaba)
828
self.failIfExists(self.wt.abspath('frexpar'))
829
self.failUnlessExists(self.wt.abspath('oz/elphaba'))
830
# rename limbo/new-3 => oz, rename limbo/new-2 => elphaba
831
self.failUnlessEqual(2, transform.rename_count)
833
def test_adjust_and_cancel(self):
834
transform, root = self.get_transform()
835
frexpar = transform.new_directory('frexpar', root)
836
elphaba = transform.new_file('elphaba', frexpar, 'contents')
837
oz = transform.new_directory('oz', root)
838
transform.adjust_path('elphaba', oz, elphaba)
839
transform.cancel_creation(elphaba)
841
transform.cancel_creation(frexpar)
843
self.fail('Transform still thinks elphaba is a child of frexpar')
791
846
class TransformGroup(object):
792
847
def __init__(self, dirname, root_id):
793
848
self.name = dirname