tests: prevent printing \r to stdout
authorGregory Szorc <gregory.szorc@gmail.com>
Sun, 29 Mar 2020 14:31:59 -0700
changeset 44655 47e6ec977555
parent 44654 d359f0d1a3d3
child 44656 15aef805619d
tests: prevent printing \r to stdout Like we've done in other recent commits, we need to change sys.stdout on Python 3 to not use os.linesep so output is consistent on Python 3 on Windows. With this change, test-notify.t now passes on Python 3 on Windows! Differential Revision: https://phab.mercurial-scm.org/D8342
tests/test-notify.t
--- a/tests/test-notify.t	Sun Mar 29 13:51:26 2020 -0700
+++ b/tests/test-notify.t	Sun Mar 29 14:31:59 2020 -0700
@@ -1,7 +1,16 @@
   $ cat > $TESTTMP/filter.py <<EOF
   > from __future__ import absolute_import, print_function
+  > import io
   > import re
   > import sys
+  > if sys.version_info[0] >= 3:
+  >     sys.stdout = io.TextIOWrapper(
+  >         sys.stdout.buffer,
+  >         sys.stdout.encoding,
+  >         sys.stdout.errors,
+  >         newline="\n",
+  >         line_buffering=sys.stdout.line_buffering,
+  >     )
   > print(re.sub("\n[ \t]", " ", sys.stdin.read()), end="")
   > EOF