92
92
self.assertTreeLayout([('', root_id), ('a', 'a-id'), ('b', 'b-id')],
94
self.failIfExists('a')
94
self.assertPathDoesNotExist('a')
95
95
self.assertFileEqual(a_contents, 'foo')
97
97
def test_rename_one_not_localdir(self):
108
108
self.assertTreeLayout([('', root_id), ('a', 'a-id'), ('b', 'b-id')],
109
109
tree.basis_tree())
110
self.failIfExists('tree/a')
110
self.assertPathDoesNotExist('tree/a')
111
111
self.assertFileEqual(a_contents, 'tree/b/foo')
113
113
def test_rename_one_subdir(self):
126
126
('b/d', 'a-id')], tree)
127
127
self.assertTreeLayout([('', root_id), ('a', 'a-id'), ('b', 'b-id'),
128
128
('b/c', 'c-id')], tree.basis_tree())
129
self.failIfExists('a')
129
self.assertPathDoesNotExist('a')
130
130
self.assertFileEqual(a_contents, 'b/d')
132
132
def test_rename_one_parent_dir(self):
141
141
('d', 'c-id')], tree)
142
142
self.assertTreeLayout([('', root_id), ('a', 'a-id'), ('b', 'b-id'),
143
143
('b/c', 'c-id')], tree.basis_tree())
144
self.failIfExists('b/c')
144
self.assertPathDoesNotExist('b/c')
145
145
self.assertFileEqual(c_contents, 'd')
147
147
def test_rename_one_fail_consistent(self):
221
221
tree.basis_tree())
223
223
def test_rename_one_after_source_removed(self):
224
"""Rename even if the source was removed from the inventory already"""
224
"""Rename even if the source was already unversioned."""
225
225
tree = self.make_branch_and_tree('.')
226
226
self.build_tree(['a', 'b/'])
227
227
tree.add(['a', 'b'], ['a-id', 'b-id'])
337
337
self.assertRaises((errors.InvalidNormalization, UnicodeEncodeError),
338
338
tree.rename_one, 'a', u'ba\u030arry')
340
def test_rename_unversioned_non_ascii(self):
341
"""Check error when renaming an unversioned non-ascii file"""
342
self.requireFeature(tests.UnicodeFilename)
343
tree = self.make_branch_and_tree(".")
344
self.build_tree([u"\xA7"])
345
e = self.assertRaises(errors.BzrRenameFailedError,
346
tree.rename_one, u"\xA7", "b")
347
self.assertIsInstance(e.extra, errors.NotVersionedError)
348
self.assertEqual(e.extra.path, u"\xA7")
350
def test_rename_into_unversioned_non_ascii_dir(self):
351
"""Check error when renaming into unversioned non-ascii directory"""
352
self.requireFeature(tests.UnicodeFilename)
353
tree = self.make_branch_and_tree(".")
354
self.build_tree(["a", u"\xA7/"])
356
e = self.assertRaises(errors.BzrMoveFailedError,
357
tree.rename_one, "a", u"\xA7/a")
358
self.assertIsInstance(e.extra, errors.NotVersionedError)
359
self.assertEqual(e.extra.path, u"\xA7")
361
def test_rename_over_already_versioned_non_ascii(self):
362
"""Check error renaming over an already versioned non-ascii file"""
363
self.requireFeature(tests.UnicodeFilename)
364
tree = self.make_branch_and_tree(".")
365
self.build_tree(["a", u"\xA7"])
366
tree.add(["a", u"\xA7"])
367
e = self.assertRaises(errors.BzrMoveFailedError,
368
tree.rename_one, "a", u"\xA7")
369
self.assertIsInstance(e.extra, errors.AlreadyVersionedError)
370
self.assertEqual(e.extra.path, u"\xA7")
372
def test_rename_after_non_existant_non_ascii(self):
373
"""Check error renaming after move with missing non-ascii file"""
374
self.requireFeature(tests.UnicodeFilename)
375
tree = self.make_branch_and_tree(".")
376
self.build_tree(["a"])
378
e = self.assertRaises(errors.BzrMoveFailedError,
379
tree.rename_one, "a", u"\xA7", after=True)
380
self.assertIsInstance(e.extra, errors.NoSuchFile)
381
self.assertEqual(e.extra.path, u"\xA7")