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")