Mercurial > hg
view tests/filtertraceback.py @ 43416:e7eb67eab53f stable
tests: write out file using bytes I/O
The encoding of sys.stdout varies between Python versions. So
using a one-liner to write a file from a Unicode string is not
deterministic.
This commit writes out the file using bytes I/O to ensure we
have exactly the bytes we want in the file.
This change fixes a test failure in Python 3.5/3.6.
Differential Revision: https://phab.mercurial-scm.org/D7226
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 04 Nov 2019 20:57:31 -0800 |
parents | 9b2b8794f801 |
children | d359f0d1a3d3 |
line wrap: on
line source
#!/usr/bin/env python # Filters traceback lines from stdin. from __future__ import absolute_import, print_function import sys state = 'none' for line in sys.stdin: if state == 'none': if line.startswith('Traceback '): state = 'tb' elif state == 'tb': if line.startswith(' File '): state = 'file' continue elif not line.startswith(' '): state = 'none' elif state == 'file': # Ignore lines after " File " state = 'tb' continue print(line, end='')