| 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 |