summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/tools/py/testing/process/test_cmdexec.py
diff options
context:
space:
mode:
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.py39
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