##// END OF EJS Templates
Make the test suite runnable without X11 connections....
Make the test suite runnable without X11 connections. This fix makes the test suite work in settings like a screen session that can import but not initialize GTK.

File last commit:

r2483:c24bd21b
r2488:ac681df1
Show More
baseutils.py
51 lines | 1.7 KiB | text/x-python | PythonLexer
"""Base utilities support for IPython.
Warning: this is a module that other utilities modules will import from, so it
can ONLY depend on the standard library, and NOTHING ELSE. In particular, this
module can NOT import anything from IPython, or circular dependencies will arise.
"""
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import subprocess
#-----------------------------------------------------------------------------
# Functions
#-----------------------------------------------------------------------------
def getoutputerror(cmd,verbose=0,debug=0,header='',split=0):
"""Return (standard output,standard error) of executing cmd in a shell.
Accepts the same arguments as system(), plus:
- split(0): if true, each of stdout/err is returned as a list split on
newlines.
Note: a stateful version of this function is available through the
SystemExec class."""
if verbose or debug: print header+cmd
if not cmd:
if split:
return [],[]
else:
return '',''
if not debug:
p = subprocess.Popen(cmd, shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=True)
pin, pout, perr = (p.stdin, p.stdout, p.stderr)
tout = pout.read().rstrip()
terr = perr.read().rstrip()
pin.close()
pout.close()
perr.close()
if split:
return tout.split('\n'),terr.split('\n')
else:
return tout,terr