gstreamer/testsuite/common.py
Johan Dahlin 54cab73355 testsuite/event.py, testsuite/buffer.py: New tests.
Original commit message from CVS:
* testsuite/event.py, testsuite/buffer.py: New tests.

* testsuite/common.py (run_silent): New function to enable stderr
even if an exception is raised.

* testsuite/element.py (FakeSinkTest.checkError): Better
state-error checking.
2004-05-03 16:17:38 +00:00

63 lines
1.2 KiB
Python

import dl
import os
import sys
import unittest
# Don't insert before .
sys.path.insert(1, os.path.join('..'))
# Load GST and make sure we load it from the current build
sys.setdlopenflags(dl.RTLD_LAZY | dl.RTLD_GLOBAL)
# Hack
sys.argv.append('--gst-debug-no-color')
path = os.path.abspath(os.path.join('..', 'gst'))
import gst
assert gst._gst.__file__ == '../gst/_gst.la'
try:
import gst.interfaces
assert os.path.basename(gst.interfaces.__file__) != path, 'bad path'
except ImportError:
pass
try:
import gst.play
assert os.path.basename(gst.play.__file__) != path, 'bad path'
except ImportError:
pass
_stderr = None
def disable_stderr():
global _stderr
_stderr = file('/tmp/stderr', 'w+')
sys.stderr = os.fdopen(os.dup(2), 'w')
os.close(2)
os.dup(_stderr.fileno())
def enable_stderr():
global _stderr
os.close(2)
os.dup(sys.stderr.fileno())
_stderr.seek(0, 0)
data = _stderr.read()
_stderr.close()
os.remove('/tmp/stderr')
return data
def run_silent(function, *args, **kwargs):
disable_stderr()
try:
function(*args, **kwargs)
except Exception, exc:
enable_stderr()
raise exc
output = enable_stderr()
return output