Source

pygame / test / util / support.py

import os, sys

try: 
    import StringIO
except ImportError:
    import io as StringIO

"""Utility functions for the tests."""

def redirect_output ():
    """Redirects stderr and stdout into own streams."""
    yield sys.stderr, sys.stdout
    sys.stderr, sys.stdout = StringIO.StringIO(), StringIO.StringIO()
    yield sys.stderr, sys.stdout
    
def restore_output (err, out):
    """Restores stderr and stdout using the passed streams."""
    sys.stderr, sys.stdout = err, out

class StreamOutput (object):
    def __init__ (self, stream):
        self.stream = stream
        self.startoffset = self.stream.tell ()
        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 ()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.