diff mercurial/util.py @ 36631:8395fddde46c

util: report integer result from write() Python 2 sometimes returns None from write() calls. Python 3 doesn't. This will make test output inconsistent between Python 2 and 3. So let's paper over the differences by converting None to the length of the result string. Differential Revision: https://phab.mercurial-scm.org/D2584
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 03 Mar 2018 09:50:07 -0500
parents 29128309c52d
children aa9c5d447980
line wrap: on
line diff
--- a/mercurial/util.py	Sat Mar 03 09:34:06 2018 -0500
+++ b/mercurial/util.py	Sat Mar 03 09:50:07 2018 -0500
@@ -762,6 +762,11 @@
         if not self.writes:
             return
 
+        # Python 2 returns None from some write() calls. Python 3 (reasonably)
+        # returns the integer bytes written.
+        if res is None and data:
+            res = len(data)
+
         self.fh.write('%s> write(%d) -> %r' % (self.name, len(data), res))
         self._writedata(data)