From: Jelmer Vernooij Date: Wed, 19 Sep 2007 12:50:40 +0000 (+0200) Subject: Avoid tracebacks on malformed data errors. X-Git-Tag: bzr-svn-0.4.4~70 X-Git-Url: http://git.samba.org/samba.git/?p=jelmer%2Fsubvertpy.git;a=commitdiff_plain;h=2ae5d9e047c1adf5841c64b12afc95f96a43076f Avoid tracebacks on malformed data errors. --- diff --git a/NEWS b/NEWS index 7bf67a0e..b8837d8f 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,10 @@ bzr-svn 0.4.4 UNRELEASED * Improved import times, making bzr faster if bzr-svn is loaded but not used. + IMPROVEMENTS + + * Avoid tracebacks on "Malformed data" errors. + bzr-svn 0.4.3 2007-09-15 PERFORMANCE diff --git a/errors.py b/errors.py index c2712c6b..c720354f 100644 --- a/errors.py +++ b/errors.py @@ -18,7 +18,7 @@ from bzrlib.errors import (BzrError, ConnectionError, ConnectionReset, LockError, NotBranchError, PermissionDenied, DependencyNotPresent, NoRepositoryPresent, - UnexpectedEndOfContainerError) + TransportError, UnexpectedEndOfContainerError) import svn.core @@ -58,6 +58,8 @@ def convert_error(err): return PermissionDenied('.', msg) elif num == svn.core.SVN_ERR_INCOMPLETE_DATA: return UnexpectedEndOfContainerError() + elif num == svn.core.SVN_ERR_RA_SVN_MALFORMED_DATA: + return TransportError("Malformed data", msg) elif num == SVN_ERR_UNKNOWN_HOSTNAME: return ConnectionError(msg=msg) else: diff --git a/tests/test_errors.py b/tests/test_errors.py index 7bd35d7d..0c4d880a 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -15,7 +15,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from bzrlib.errors import (ConnectionError, ConnectionReset, LockError, - PermissionDenied, UnexpectedEndOfContainerError) + PermissionDenied, TransportError, + UnexpectedEndOfContainerError) from bzrlib.tests import TestCase from errors import (convert_svn_error, convert_error, InvalidPropertyValue, @@ -40,9 +41,12 @@ class TestConvertError(TestCase): self.assertRaises(ConnectionReset, test_throws_svn) def test_convert_error_unknown(self): - self.assertIsInstance(convert_error(SubversionException(100, "foo")), + self.assertIsInstance(convert_error(SubversionException("foo", -4)), SubversionException) + def test_convert_malformed(self): + self.assertIsInstance(convert_error(SubversionException("foo", svn.core.SVN_ERR_RA_SVN_MALFORMED_DATA)), TransportError) + def test_convert_error_reset(self): self.assertIsInstance(convert_error(SubversionException("Connection closed", svn.core.SVN_ERR_RA_SVN_CONNECTION_CLOSED)), ConnectionReset)