Mercurial > hg
changeset 34308:9bd003052d55
keepalive: add more context to bad status line errors
As the TODO in the test said, the previous error message was not
very helpful. Let's improve things.
Differential Revision: https://phab.mercurial-scm.org/D811
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 25 Sep 2017 11:05:16 +0200 |
parents | afcbc6f64d27 |
children | b94db1780365 |
files | mercurial/keepalive.py tests/test-http-bad-server.t |
diffstat | 2 files changed, 11 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/keepalive.py Fri Aug 18 20:20:38 2017 -0700 +++ b/mercurial/keepalive.py Mon Sep 25 11:05:16 2017 +0200 @@ -90,6 +90,7 @@ import sys import threading +from .i18n import _ from . import ( util, ) @@ -231,6 +232,10 @@ self._cm.add(host, h, 0) self._start_transaction(h, req) r = h.getresponse() + # The string form of BadStatusLine is the status line. Add some context + # to make the error message slightly more useful. + except httplib.BadStatusLine as err: + raise urlerr.urlerror(_('bad HTTP status line: %s') % err.line) except (socket.error, httplib.HTTPException) as err: raise urlerr.urlerror(err)
--- a/tests/test-http-bad-server.t Fri Aug 18 20:20:38 2017 -0700 +++ b/tests/test-http-bad-server.t Mon Sep 25 11:05:16 2017 +0200 @@ -68,10 +68,8 @@ $ hg --config badserver.closeafterrecvbytes=1 serve -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS -TODO this error message is not very good - $ hg clone http://localhost:$HGPORT/ clone - abort: error: '' + abort: error: bad HTTP status line: '' [255] $ killdaemons.py $DAEMON_PIDS @@ -87,7 +85,7 @@ $ hg --config badserver.closeafterrecvbytes=40 serve -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone - abort: error: '' + abort: error: bad HTTP status line: '' [255] $ killdaemons.py $DAEMON_PIDS @@ -104,7 +102,7 @@ $ hg --config badserver.closeafterrecvbytes=210 serve -p $HGPORT -d --pid-file=hg.pid -E error.log $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone - abort: error: '' + abort: error: bad HTTP status line: '' [255] $ killdaemons.py $DAEMON_PIDS @@ -143,7 +141,7 @@ $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone requesting all changes - abort: error: '' + abort: error: bad HTTP status line: '' [255] $ killdaemons.py $DAEMON_PIDS @@ -200,7 +198,7 @@ $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone - abort: error: '' + abort: error: bad HTTP status line: '' [255] $ killdaemons.py $DAEMON_PIDS @@ -251,7 +249,7 @@ $ cat hg.pid > $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ clone - abort: error: H + abort: error: bad HTTP status line: H [255] $ killdaemons.py $DAEMON_PIDS