# HG changeset patch # User Matt Harbison # Date 2021-05-02 20:56:20 # Node ID ea563187ee7cd46546ee0513b8c6aa930e7c28bf # Parent 9e3979a25bfee23b6035bcea596f16cc2aac7716 tests: change the fixer commands to use the buffer attribute on stdio objects Otherwise `\r` was getting injected into the fixed lines and throwing off the commit hashes on Windows when the fixer is invoked with py3. Differential Revision: https://phab.mercurial-scm.org/D10637 diff --git a/tests/test-fix-topology.t b/tests/test-fix-topology.t --- a/tests/test-fix-topology.t +++ b/tests/test-fix-topology.t @@ -6,7 +6,9 @@ A script that implements uppercasing all > from mercurial.utils.procutil import setbinary > setbinary(sys.stdin) > setbinary(sys.stdout) - > sys.stdout.write(sys.stdin.read().upper()) + > stdin = getattr(sys.stdin, 'buffer', sys.stdin) + > stdout = getattr(sys.stdout, 'buffer', sys.stdout) + > stdout.write(stdin.read().upper()) > EOF $ TESTLINES="foo\nbar\nbaz\n" $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY diff --git a/tests/test-fix.t b/tests/test-fix.t --- a/tests/test-fix.t +++ b/tests/test-fix.t @@ -7,19 +7,21 @@ approximates the behavior of code format > from mercurial.utils.procutil import setbinary > setbinary(sys.stdin) > setbinary(sys.stdout) + > stdin = getattr(sys.stdin, 'buffer', sys.stdin) + > stdout = getattr(sys.stdout, 'buffer', sys.stdout) > lines = set() > for arg in sys.argv[1:]: > if arg == 'all': - > sys.stdout.write(sys.stdin.read().upper()) + > stdout.write(stdin.read().upper()) > sys.exit(0) > else: > first, last = arg.split('-') > lines.update(range(int(first), int(last) + 1)) - > for i, line in enumerate(sys.stdin.readlines()): + > for i, line in enumerate(stdin.readlines()): > if i + 1 in lines: - > sys.stdout.write(line.upper()) + > stdout.write(line.upper()) > else: - > sys.stdout.write(line) + > stdout.write(line) > EOF $ TESTLINES="foo\nbar\nbaz\nqux\n" $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY