Patchwork [4,of,4] client: raise ResponseError in _readchannel()

login
register
mail settings
Submitter Gábor Stefanik
Date Aug. 21, 2017, 3:19 p.m.
Message ID <6f59b1f3360d599dfe66.1503328742@GSTEFANIK.NavnGo.local>
Download mbox | patch
Permalink /patch/23189/
State Superseded
Headers show

Comments

Gábor Stefanik - Aug. 21, 2017, 3:19 p.m.
# HG changeset patch
# User Gábor Stefanik <gabor.stefanik@nng.com>
# Date 1503328417 -7200
#      Mon Aug 21 17:13:37 2017 +0200
# Node ID 6f59b1f3360d599dfe66cf509bbde926d87ebe5e
# Parent  8b4d606b49655d44091c2689a3f35a3fff17a28d
client: raise ResponseError in _readchannel()

Make it clearer that this is an unrecoverable communication error.
ServerError alone is not always unrecoverable, as CapabilityError is considered
a subtype of it.

This way, a caller can check for ResponseError to identify errors that require
reopening the client to recover.

________________________________
 This message, including its attachments, is confidential and the property of NNG Llc. For more information please read NNG's email policy here:
http://www.nng.com/emailpolicy/
By responding to this email you accept the email policy.

Patch

diff -r 8b4d606b4965 -r 6f59b1f3360d hglib/client.py

--- a/hglib/client.py   Mon Aug 21 17:06:13 2017 +0200

+++ b/hglib/client.py   Mon Aug 21 17:13:37 2017 +0200

@@ -140,7 +140,7 @@ 

         data = self.server.stdout.read(hgclient.outputfmtsize)
         if not data:
             self.close()
-            raise error.ServerError()

+            raise error.ResponseError('no response received from server')

         channel, length = struct.unpack(hgclient.outputfmt, data)
         if channel in b('IL'):
             return channel, length