bundle2: add an UnsupportedPartError
authorPierre-Yves David <pierre-yves.david@fb.com>
Wed, 15 Oct 2014 03:22:47 -0700
changeset 23010 73f394f4affc
parent 23009 90f86ad3d4ff
child 23011 006a81d07e57
bundle2: add an UnsupportedPartError We need the BundleValueError for format errors not related to part support. So we add a specific class for part-support errors.
mercurial/bundle2.py
mercurial/error.py
--- a/mercurial/bundle2.py	Wed Oct 01 23:40:23 2014 -0500
+++ b/mercurial/bundle2.py	Wed Oct 15 03:22:47 2014 -0700
@@ -321,15 +321,15 @@
         try:
             handler = parthandlermapping.get(key)
             if handler is None:
-                raise error.BundleValueError(parttype=key)
+                raise error.UnsupportedPartError(parttype=key)
             op.ui.debug('found a handler for part %r\n' % parttype)
             unknownparams = part.mandatorykeys - handler.params
             if unknownparams:
                 unknownparams = list(unknownparams)
                 unknownparams.sort()
-                raise error.BundleValueError(parttype=key,
+                raise error.UnsupportedPartError(parttype=key,
                                                params=unknownparams)
-        except error.BundleValueError, exc:
+        except error.UnsupportedPartError, exc:
             if key != parttype: # mandatory parts
                 raise
             op.ui.debug('ignoring unsupported advisory part %s\n' % exc)
@@ -538,7 +538,7 @@
         if name[0].islower():
             self.ui.debug("ignoring unknown parameter %r\n" % name)
         else:
-            raise error.BundleValueError(params=(name,))
+            raise error.UnsupportedPartError(params=(name,))
 
 
     def iterparts(self):
@@ -894,7 +894,7 @@
     if params is not None:
         kwargs['params'] = params.split('\0')
 
-    raise error.BundleValueError(**kwargs)
+    raise error.UnsupportedPartError(**kwargs)
 
 @parthandler('b2x:error:pushraced', ('message',))
 def handlereplycaps(op, inpart):
--- a/mercurial/error.py	Wed Oct 01 23:40:23 2014 -0500
+++ b/mercurial/error.py	Wed Oct 15 03:22:47 2014 -0700
@@ -102,6 +102,7 @@
 class BundleValueError(ValueError):
     """error raised when bundle2 cannot be processed"""
 
+class UnsupportedPartError(BundleValueError):
     def __init__(self, parttype=None, params=()):
         self.parttype = parttype
         self.params = params