2007-02-11 23:11:49 +08:00
|
|
|
import py
|
2007-01-24 22:24:01 +08:00
|
|
|
from py.process import cmdexec
|
|
|
|
|
2009-08-29 22:40:03 +08:00
|
|
|
def exvalue():
|
|
|
|
return py.std.sys.exc_info()[1]
|
|
|
|
|
2007-01-24 22:24:01 +08:00
|
|
|
class Test_exec_cmd:
|
|
|
|
def test_simple(self):
|
|
|
|
out = cmdexec('echo hallo')
|
|
|
|
assert out.strip() == 'hallo'
|
|
|
|
|
|
|
|
def test_simple_error(self):
|
2007-02-11 23:11:49 +08:00
|
|
|
py.test.raises (cmdexec.Error, cmdexec, 'exit 1')
|
2007-01-24 22:24:01 +08:00
|
|
|
|
|
|
|
def test_simple_error_exact_status(self):
|
|
|
|
try:
|
|
|
|
cmdexec('exit 1')
|
2009-08-29 22:40:03 +08:00
|
|
|
except cmdexec.Error:
|
|
|
|
e = exvalue()
|
2007-01-24 22:24:01 +08:00
|
|
|
assert e.status == 1
|
|
|
|
|
|
|
|
def test_err(self):
|
|
|
|
try:
|
|
|
|
cmdexec('echoqweqwe123 hallo')
|
2009-08-29 22:40:03 +08:00
|
|
|
raise AssertionError("command succeeded but shouldn't")
|
|
|
|
except cmdexec.Error:
|
|
|
|
e = exvalue()
|
2007-01-24 22:24:01 +08:00
|
|
|
assert hasattr(e, 'err')
|
|
|
|
assert hasattr(e, 'out')
|
|
|
|
assert e.err or e.out
|
2007-02-11 23:11:49 +08:00
|
|
|
|
|
|
|
def test_cmdexec_selection():
|
2009-10-03 07:47:39 +08:00
|
|
|
from _py.process import cmdexec
|
2007-02-11 23:11:49 +08:00
|
|
|
if py.std.sys.platform == "win32":
|
|
|
|
assert py.process.cmdexec == cmdexec.win32_exec_cmd
|
|
|
|
elif hasattr(py.std.sys, 'pypy') or hasattr(py.std.sys, 'pypy_objspaceclass'):
|
|
|
|
assert py.process.cmdexec == cmdexec.popen3_exec_cmd
|
|
|
|
else:
|
|
|
|
assert py.process.cmdexec == cmdexec.posix_exec_cmd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|