19
19
from bzrlib.bzrdir import BzrDir
20
from bzrlib.conflicts import (DuplicateEntry, DuplicateID, MissingParent,
21
UnversionedParent, ParentLoop)
20
22
from bzrlib.errors import (DuplicateKey, MalformedTransform, NoSuchFile,
21
23
ReusingTransform, CantMoveRoot, NotVersionedError,
22
24
ExistingLimbo, ImmortalLimbo, LockError)
25
27
from bzrlib.tests import TestCaseInTempDir, TestSkipped
26
28
from bzrlib.transform import (TreeTransform, ROOT_PARENT, FinalPaths,
27
29
resolve_conflicts, cook_conflicts,
28
conflicts_strings, find_interesting, build_tree)
30
find_interesting, build_tree)
30
32
class TestTreeTransform(TestCaseInTempDir):
401
403
tt, emerald, oz, old_dorothy, new_dorothy = self.get_conflicted()
402
404
raw_conflicts = resolve_conflicts(tt)
403
405
cooked_conflicts = cook_conflicts(raw_conflicts, tt)
404
duplicate = ('duplicate', 'Moved existing file to', 'dorothy.moved',
405
None, 'dorothy', 'dorothy-id')
406
duplicate = DuplicateEntry('Moved existing file to', 'dorothy.moved',
407
'dorothy', None, 'dorothy-id')
406
408
self.assertEqual(cooked_conflicts[0], duplicate)
407
duplicate_id = ('duplicate id', 'Unversioned existing file',
408
'dorothy.moved', None, 'dorothy', 'dorothy-id')
409
duplicate_id = DuplicateID('Unversioned existing file',
410
'dorothy.moved', 'dorothy', None,
409
412
self.assertEqual(cooked_conflicts[1], duplicate_id)
410
missing_parent = ('missing parent', 'Not deleting', 'oz', 'oz-id')
413
missing_parent = MissingParent('Not deleting', 'oz', 'oz-id')
411
414
self.assertEqual(cooked_conflicts[2], missing_parent)
412
unversioned_parent = ('unversioned parent',
413
'Versioned directory', 'oz', 'oz-id')
415
unversioned_parent = UnversionedParent('Versioned directory', 'oz',
414
417
self.assertEqual(cooked_conflicts[3], unversioned_parent)
415
parent_loop = ('parent loop', 'Cancelled move', 'oz/emeraldcity',
416
'emerald-id', 'oz/emeraldcity', 'emerald-id')
418
parent_loop = ParentLoop('Cancelled move', 'oz/emeraldcity',
419
'oz/emeraldcity', 'emerald-id', 'emerald-id')
417
420
self.assertEqual(cooked_conflicts[4], parent_loop)
418
421
self.assertEqual(len(cooked_conflicts), 5)
423
426
raw_conflicts = resolve_conflicts(tt)
424
427
cooked_conflicts = cook_conflicts(raw_conflicts, tt)
426
conflicts_s = list(conflicts_strings(cooked_conflicts))
429
conflicts_s = [str(c) for c in cooked_conflicts]
427
430
self.assertEqual(len(cooked_conflicts), len(conflicts_s))
428
431
self.assertEqual(conflicts_s[0], 'Conflict adding file dorothy. '
429
432
'Moved existing file to '