24
24
ExistingLimbo, ImmortalLimbo, LockError)
25
25
from bzrlib.osutils import file_kind, has_symlinks, pathjoin
26
26
from bzrlib.merge import Merge3Merger
27
from bzrlib.tests import TestCaseInTempDir, TestSkipped
27
from bzrlib.tests import TestCaseInTempDir, TestSkipped, TestCase
28
28
from bzrlib.transform import (TreeTransform, ROOT_PARENT, FinalPaths,
29
29
resolve_conflicts, cook_conflicts,
30
find_interesting, build_tree)
30
find_interesting, build_tree, get_backup_name)
32
32
class TestTreeTransform(TestCaseInTempDir):
700
700
self.assertIs(os.path.isdir('b/foo'), True)
701
701
self.assertEqual(file('b/foo/bar', 'rb').read(), "contents")
702
702
self.assertEqual(os.readlink('b/foo/baz'), 'a/foo/bar')
704
class MockTransform(object):
706
def has_named_child(self, by_parent, parent_id, name):
707
for child_id in by_parent[parent_id]:
711
elif name == "name.~%s~" % child_id:
715
class MockEntry(object):
717
object.__init__(self)
720
class TestGetBackupName(TestCase):
721
def test_get_backup_name(self):
723
name = get_backup_name(MockEntry(), {'a':[]}, 'a', tt)
724
self.assertEqual(name, 'name.~1~')
725
name = get_backup_name(MockEntry(), {'a':['1']}, 'a', tt)
726
self.assertEqual(name, 'name.~2~')
727
name = get_backup_name(MockEntry(), {'a':['2']}, 'a', tt)
728
self.assertEqual(name, 'name.~1~')
729
name = get_backup_name(MockEntry(), {'a':['2'], 'b':[]}, 'b', tt)
730
self.assertEqual(name, 'name.~1~')
731
name = get_backup_name(MockEntry(), {'a':['1', '2', '3']}, 'a', tt)
732
self.assertEqual(name, 'name.~4~')