be more robust about bad std stream encodings

--HG--
branch : trunk
This commit is contained in:
Benjamin Peterson 2010-04-28 17:19:49 -05:00
parent d93016d85f
commit 78d67c007b
1 changed files with 8 additions and 6 deletions

View File

@ -296,12 +296,14 @@ class TmpTestdir:
f2.close() f2.close()
out = p1.read("rb").decode("utf-8").splitlines() out = p1.read("rb").decode("utf-8").splitlines()
err = p2.read("rb").decode("utf-8").splitlines() err = p2.read("rb").decode("utf-8").splitlines()
if err: def dump_lines(lines, fp):
for line in err: try:
py.builtin.print_(line, file=sys.stderr) for line in lines:
if out: py.builtin.print_(line, file=fp)
for line in out: except UnicodeEncodeError:
py.builtin.print_(line, file=sys.stdout) print("couldn't print to %s because of encoding" % (fp,))
dump_lines(out, sys.stdout)
dump_lines(err, sys.stderr)
return RunResult(ret, out, err, time.time()-now) return RunResult(ret, out, err, time.time()-now)
def runpybin(self, scriptname, *args): def runpybin(self, scriptname, *args):