D5160: keepalive: use getattr to avoid AttributeErrors when vcr is in use

durin42 (Augie Fackler) phabricator at mercurial-scm.org
Fri Oct 19 15:46:11 UTC 2018


durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Fixes test-phabricator.t.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5160

AFFECTED FILES
  mercurial/keepalive.py

CHANGE DETAILS

diff --git a/mercurial/keepalive.py b/mercurial/keepalive.py
--- a/mercurial/keepalive.py
+++ b/mercurial/keepalive.py
@@ -315,7 +315,7 @@
         return r
 
     def _start_transaction(self, h, req):
-        oldbytescount = h.sentbytescount
+        oldbytescount = getattr(h, 'sentbytescount', 0)
 
         # What follows mostly reimplements HTTPConnection.request()
         # except it adds self.parent.addheaders in the mix and sends headers
@@ -353,11 +353,12 @@
 
         # This will fail to record events in case of I/O failure. That's OK.
         self.requestscount += 1
-        self.sentbytescount += h.sentbytescount - oldbytescount
+        self.sentbytescount += getattr(h, 'sentbytescount', 0) - oldbytescount
 
         try:
             self.parent.requestscount += 1
-            self.parent.sentbytescount += h.sentbytescount - oldbytescount
+            self.parent.sentbytescount += (
+                getattr(h, 'sentbytescount', 0) - oldbytescount)
         except AttributeError:
             pass
 



To: durin42, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list