windows fixes and print funcargs for keyboardinterrupt traces
--HG-- branch : trunk
This commit is contained in:
parent
d28838bbb6
commit
516cee2a94
|
@ -66,7 +66,10 @@ class VirtualEnv(object):
|
||||||
return "<VirtualEnv at %r>" %(self.path)
|
return "<VirtualEnv at %r>" %(self.path)
|
||||||
|
|
||||||
def _cmd(self, name):
|
def _cmd(self, name):
|
||||||
return os.path.join(self.path, 'bin', name)
|
if sys.platform == "win32":
|
||||||
|
return os.path.join(self.path, 'Scripts', name)
|
||||||
|
else:
|
||||||
|
return os.path.join(self.path, 'bin', name)
|
||||||
|
|
||||||
def ensure(self):
|
def ensure(self):
|
||||||
if not os.path.exists(self._cmd('python')):
|
if not os.path.exists(self._cmd('python')):
|
||||||
|
|
|
@ -14,7 +14,9 @@ def cmdexec(cmd):
|
||||||
the exception will provide an 'err' attribute containing
|
the exception will provide an 'err' attribute containing
|
||||||
the error-output from the command.
|
the error-output from the command.
|
||||||
"""
|
"""
|
||||||
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
process = subprocess.Popen(cmd, shell=True,
|
||||||
|
universal_newlines=True,
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
out, err = process.communicate()
|
out, err = process.communicate()
|
||||||
out = py.builtin._totext(out, sys.getdefaultencoding())
|
out = py.builtin._totext(out, sys.getdefaultencoding())
|
||||||
err = py.builtin._totext(err, sys.getdefaultencoding())
|
err = py.builtin._totext(err, sys.getdefaultencoding())
|
||||||
|
|
|
@ -292,7 +292,7 @@ class TerminalReporter:
|
||||||
self.summary_stats()
|
self.summary_stats()
|
||||||
|
|
||||||
def pytest_keyboard_interrupt(self, excinfo):
|
def pytest_keyboard_interrupt(self, excinfo):
|
||||||
self._keyboardinterrupt_memo = excinfo.getrepr()
|
self._keyboardinterrupt_memo = excinfo.getrepr(funcargs=True)
|
||||||
|
|
||||||
def _report_keyboardinterrupt(self):
|
def _report_keyboardinterrupt(self):
|
||||||
self.write_sep("!", "KEYBOARD INTERRUPT")
|
self.write_sep("!", "KEYBOARD INTERRUPT")
|
||||||
|
|
|
@ -9,6 +9,11 @@ class Test_exec_cmd:
|
||||||
out = cmdexec('echo hallo')
|
out = cmdexec('echo hallo')
|
||||||
assert out.strip() == 'hallo'
|
assert out.strip() == 'hallo'
|
||||||
|
|
||||||
|
def test_simple_newline(self):
|
||||||
|
import sys
|
||||||
|
out = cmdexec(r"""%s -c "print ('hello')" """ % sys.executable)
|
||||||
|
assert out == 'hello\n'
|
||||||
|
|
||||||
def test_simple_error(self):
|
def test_simple_error(self):
|
||||||
py.test.raises (cmdexec.Error, cmdexec, 'exit 1')
|
py.test.raises (cmdexec.Error, cmdexec, 'exit 1')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue