diff options
Diffstat (limited to 'testing/web-platform/tests/tools/py/testing/process/test_cmdexec.py')
-rw-r--r-- | testing/web-platform/tests/tools/py/testing/process/test_cmdexec.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/testing/web-platform/tests/tools/py/testing/process/test_cmdexec.py b/testing/web-platform/tests/tools/py/testing/process/test_cmdexec.py new file mode 100644 index 000000000..b539e0af3 --- /dev/null +++ b/testing/web-platform/tests/tools/py/testing/process/test_cmdexec.py @@ -0,0 +1,39 @@ +import py +from py.process import cmdexec + +def exvalue(): + return py.std.sys.exc_info()[1] + +class Test_exec_cmd: + def test_simple(self): + out = cmdexec('echo hallo') + assert out.strip() == 'hallo' + assert py.builtin._istext(out) + + def test_simple_newline(self): + import sys + out = cmdexec(r"""%s -c "print ('hello')" """ % sys.executable) + assert out == 'hello\n' + assert py.builtin._istext(out) + + def test_simple_error(self): + py.test.raises (cmdexec.Error, cmdexec, 'exit 1') + + def test_simple_error_exact_status(self): + try: + cmdexec('exit 1') + except cmdexec.Error: + e = exvalue() + assert e.status == 1 + assert py.builtin._istext(e.out) + assert py.builtin._istext(e.err) + + def test_err(self): + try: + cmdexec('echoqweqwe123 hallo') + raise AssertionError("command succeeded but shouldn't") + except cmdexec.Error: + e = exvalue() + assert hasattr(e, 'err') + assert hasattr(e, 'out') + assert e.err or e.out |