15
15
# You should have received a copy of the GNU General Public License
16
16
# along with this program; if not, write to the Free Software
17
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
19
"""Tests for the formatting and construction of errors."""
549
548
'Tip change rejected: Unicode message\xe2\x80\xbd',
552
def test_error_from_smart_server(self):
553
error_tuple = ('error', 'tuple')
554
err = errors.ErrorFromSmartServer(error_tuple)
556
"Error received from smart server: ('error', 'tuple')", str(err))
558
def test_untranslateable_error_from_smart_server(self):
559
error_tuple = ('error', 'tuple')
560
orig_err = errors.ErrorFromSmartServer(error_tuple)
561
err = errors.UnknownErrorFromSmartServer(orig_err)
563
"Server sent an unexpected error: ('error', 'tuple')", str(err))
565
def test_smart_message_handler_error(self):
566
# Make an exc_info tuple.
568
raise Exception("example error")
570
exc_info = sys.exc_info()
571
err = errors.SmartMessageHandlerError(exc_info)
572
self.assertStartsWith(
573
str(err), "The message handler raised an exception:\n")
574
self.assertEndsWith(str(err), "Exception: example error\n")
576
def test_must_have_working_tree(self):
577
err = errors.MustHaveWorkingTree('foo', 'bar')
578
self.assertEqual(str(err), "Branching 'bar'(foo) must create a"
581
def test_no_such_view(self):
582
err = errors.NoSuchView('foo')
583
self.assertEquals("No such view: foo.", str(err))
585
def test_views_not_supported(self):
586
err = errors.ViewsNotSupported('atree')
588
self.assertStartsWith(err_str, "Views are not supported by ")
589
self.assertEndsWith(err_str, "; use 'bzr upgrade' to change your "
590
"tree to a later format.")
592
def test_file_outside_view(self):
593
err = errors.FileOutsideView('baz', ['foo', 'bar'])
594
self.assertEquals('Specified file "baz" is outside the current view: '
595
'foo, bar', str(err))
597
def test_invalid_shelf_id(self):
599
err = errors.InvalidShelfId(invalid_id)
600
self.assertEqual('"foo" is not a valid shelf id, '
601
'try a number instead.', str(err))
603
def test_unresumable_write_group(self):
605
wg_tokens = ['token']
607
err = errors.UnresumableWriteGroup(repo, wg_tokens, reason)
609
"Repository dummy repo cannot resume write group "
610
"['token']: a reason", str(err))
612
def test_unsuspendable_write_group(self):
614
err = errors.UnsuspendableWriteGroup(repo)
616
'Repository dummy repo cannot suspend a write group.', str(err))
619
552
class PassThroughError(errors.BzrError):
621
554
_fmt = """Pass through %(foo)s and %(bar)s"""
623
556
def __init__(self, foo, bar):