treasurehunting2/PySDL2-0.9.5/sdl2/test/util/support.py
2017-05-13 11:00:53 +02:00

62 lines
1.5 KiB
Python

# #
# # This file is placed under the public domain.
# #
"""Utility functions for the tests."""
import os
import sys
PY3K = sys.version_info[0] == 3
class StreamOutput(object):
def __init__(self, stream):
self.stream = stream
try:
self.startoffset = self.stream.tell()
except IOError:
self.startoffset = 0
self.curoffset = 0
def writeline(self, data=None):
if data:
self.stream.write(data)
self.stream.write(os.linesep)
if data:
self.curoffset = len(data)
else:
self.curoffset = 0
self.stream.flush()
def write(self, data):
self.stream.write(data)
self.curoffset = len(data)
self.stream.flush()
def writesame(self, data):
overhang = self.curoffset - len(data)
if overhang > 0:
self.stream.write("%s %s\r" % (data, " " * overhang))
else:
self.stream.write("%s\r" % data)
self.curoffset = len(data)
self.stream.flush()
class TeeOutput(object):
def __init__(self, stream1, stream2):
self.outputs = [stream1, stream2]
# -- methods from sys.stdout / sys.stderr
def write(self, data):
for stream in self.outputs:
if PY3K:
if 'b' in stream.mode:
data = data.encode('utf-8')
stream.write(data)
def tell(self):
raise IOError
def flush(self):
for stream in self.outputs:
stream.flush()
# --/ sys.stdout