158
158
error = errors.MediumNotConnected("a medium")
159
159
self.assertEqualDiff(
160
160
"The medium 'a medium' is not connected.", str(error))
162
162
def test_no_public_branch(self):
163
163
b = self.make_branch('.')
164
164
error = errors.NoPublicBranch(b)
171
171
error = errors.NoRepositoryPresent(dir)
172
172
self.assertNotEqual(-1, str(error).find((dir.transport.clone('..').base)))
173
173
self.assertEqual(-1, str(error).find((dir.transport.base)))
175
175
def test_no_smart_medium(self):
176
176
error = errors.NoSmartMedium("a transport")
177
177
self.assertEqualDiff("The transport 'a transport' cannot tunnel the "
461
461
self.assertEqual(
462
462
"Container has multiple records with the same name: n\xc3\xa5me",
465
465
def test_check_error(self):
466
466
# This has a member called 'message', which is problematic in
467
467
# python2.5 because that is a slot on the base Exception class
560
560
err = errors.UnknownErrorFromSmartServer(orig_err)
561
561
self.assertEquals(
562
562
"Server sent an unexpected error: ('error', 'tuple')", str(err))
564
564
def test_smart_message_handler_error(self):
565
565
# Make an exc_info tuple.
577
577
self.assertEqual(str(err), "Branching 'bar'(foo) must create a"
578
578
" working tree.")
580
def test_no_such_view(self):
581
err = errors.NoSuchView('foo')
582
self.assertEquals("No such view: foo.", str(err))
584
def test_views_not_supported(self):
585
err = errors.ViewsNotSupported('atree')
587
self.assertStartsWith(err_str, "Views are not supported by ")
588
self.assertEndsWith(err_str, "; use 'bzr upgrade' to change your "
589
"tree to a later format.")
591
def test_file_outside_view(self):
592
err = errors.FileOutsideView('baz', ['foo', 'bar'])
593
self.assertEquals('Specified file "baz" is outside the current view: '
594
'foo, bar', str(err))
580
596
def test_invalid_shelf_id(self):
581
597
invalid_id = "foo"
582
598
err = errors.InvalidShelfId(invalid_id)
583
599
self.assertEqual('"foo" is not a valid shelf id, '
584
600
'try a number instead.', str(err))
602
def test_unresumable_write_group(self):
604
wg_tokens = ['token']
606
err = errors.UnresumableWriteGroup(repo, wg_tokens, reason)
608
"Repository dummy repo cannot resume write group "
609
"['token']: a reason", str(err))
611
def test_unsuspendable_write_group(self):
613
err = errors.UnsuspendableWriteGroup(repo)
615
'Repository dummy repo cannot suspend a write group.', str(err))
587
618
class PassThroughError(errors.BzrError):
589
620
_fmt = """Pass through %(foo)s and %(bar)s"""
591
622
def __init__(self, foo, bar):
604
635
class TestErrorFormatting(TestCase):
606
637
def test_always_str(self):
607
638
e = PassThroughError(u'\xb5', 'bar')
608
639
self.assertIsInstance(e.__str__(), str)