py3: keep stdout as defined by pycompat in procutil
According to https://docs.python.org/3/library/functions.html#open, it's
not possible to use 1 as buffering argument value in binary mode. This
is probably why line buffering does not work well in python3.
On the other hand, sys.stdout.buffer appears to be line-buffered already
on python3. So by not replacing it, there should be no behavior change.
This fixes buffering issue in "hg email" (confirmation prompt shown
before information to be confirmed).
# mock out util.makedate() to supply testable values
from __future__ import absolute_import
import os
from mercurial import pycompat
from mercurial.utils import dateutil
def mockmakedate():
filename = os.path.join(os.environ['TESTTMP'], 'testtime')
try:
with open(filename, 'rb') as timef:
time = float(timef.read()) + 1
except IOError:
time = 0.0
with open(filename, 'wb') as timef:
timef.write(pycompat.bytestr(time))
return (time, 0)
dateutil.makedate = mockmakedate