19
19
from bzrlib import tests
20
20
from bzrlib.bzrdir import BzrDir
21
21
from bzrlib.conflicts import (DuplicateEntry, DuplicateID, MissingParent,
22
UnversionedParent, ParentLoop, DeletingParent,)
22
UnversionedParent, ParentLoop)
23
23
from bzrlib.errors import (DuplicateKey, MalformedTransform, NoSuchFile,
24
24
ReusingTransform, CantMoveRoot,
25
25
PathsNotVersionedError, ExistingLimbo,
389
389
old_dorothy = conflicts.trans_id_tree_file_id('dorothy-id')
390
390
oz = conflicts.trans_id_tree_file_id('oz-id')
391
# set up DeletedParent parent conflict
391
# set up missing, unversioned parent
392
392
conflicts.delete_versioned(oz)
393
393
emerald = conflicts.trans_id_tree_file_id('emerald-id')
394
# set up MissingParent conflict
395
munchkincity = conflicts.trans_id_file_id('munchkincity-id')
396
conflicts.adjust_path('munchkincity', root, munchkincity)
397
conflicts.new_directory('auntem', munchkincity, 'auntem-id')
398
394
# set up parent loop
399
395
conflicts.adjust_path('emeraldcity', emerald, emerald)
400
396
return conflicts, emerald, oz, old_dorothy, new_dorothy
421
417
'dorothy.moved', 'dorothy', None,
423
419
self.assertEqual(cooked_conflicts[1], duplicate_id)
424
missing_parent = MissingParent('Created directory', 'munchkincity',
426
deleted_parent = DeletingParent('Not deleting', 'oz', 'oz-id')
420
missing_parent = MissingParent('Not deleting', 'oz', 'oz-id')
427
421
self.assertEqual(cooked_conflicts[2], missing_parent)
428
unversioned_parent = UnversionedParent('Versioned directory',
431
unversioned_parent2 = UnversionedParent('Versioned directory', 'oz',
422
unversioned_parent = UnversionedParent('Versioned directory', 'oz',
433
424
self.assertEqual(cooked_conflicts[3], unversioned_parent)
434
425
parent_loop = ParentLoop('Cancelled move', 'oz/emeraldcity',
435
426
'oz/emeraldcity', 'emerald-id', 'emerald-id')
436
self.assertEqual(cooked_conflicts[4], deleted_parent)
437
self.assertEqual(cooked_conflicts[5], unversioned_parent2)
438
self.assertEqual(cooked_conflicts[6], parent_loop)
439
self.assertEqual(len(cooked_conflicts), 7)
427
self.assertEqual(cooked_conflicts[4], parent_loop)
428
self.assertEqual(len(cooked_conflicts), 5)
442
431
def test_string_conflicts(self):
452
441
self.assertEqual(conflicts_s[1], 'Conflict adding id to dorothy. '
453
442
'Unversioned existing file '
454
443
'dorothy.moved.')
455
self.assertEqual(conflicts_s[2], 'Conflict adding files to'
456
' munchkincity. Created directory.')
457
self.assertEqual(conflicts_s[3], 'Conflict because munchkincity is not'
458
' versioned, but has versioned'
459
' children. Versioned directory.')
460
self.assertEqualDiff(conflicts_s[4], "Conflict: can't delete oz because it"
461
" is not empty. Not deleting.")
462
self.assertEqual(conflicts_s[5], 'Conflict because oz is not'
463
' versioned, but has versioned'
464
' children. Versioned directory.')
465
self.assertEqual(conflicts_s[6], 'Conflict moving oz/emeraldcity into'
444
self.assertEqual(conflicts_s[2], 'Conflict adding files to oz. '
446
self.assertEqual(conflicts_s[3], 'Conflict adding versioned files to '
447
'oz. Versioned directory.')
448
self.assertEqual(conflicts_s[4], 'Conflict moving oz/emeraldcity into'
466
449
' oz/emeraldcity. Cancelled move.')
468
451
def test_moving_versioned_directories(self):