##// END OF EJS Templates
* The ConsoleWidget now has full undo/redo support. Previously, the undo/redo history was cleared after every continuation prompt. This is no longer the case....
* The ConsoleWidget now has full undo/redo support. Previously, the undo/redo history was cleared after every continuation prompt. This is no longer the case. * Fixed Delete not respecting continuation prompts.

File last commit:

r2661:595fc3b9
r2864:33f169f7
Show More
test_process.py
68 lines | 1.8 KiB | text/x-python | PythonLexer
Gael Varoquaux
More tests for frontends.
r1457 # encoding: utf-8
"""
Test process execution and IO redirection.
"""
__docformat__ = "restructuredtext en"
Brian Granger
Fixing misc testing related things.
r1960 #-----------------------------------------------------------------------------
# Copyright (C) 2008-2009 The IPython Development Team
Gael Varoquaux
More tests for frontends.
r1457 #
# Distributed under the terms of the BSD License. The full license is
# in the file COPYING, distributed as part of this software.
Brian Granger
Fixing misc testing related things.
r1960 #-----------------------------------------------------------------------------
Gael Varoquaux
More tests for frontends.
r1457
from cStringIO import StringIO
from time import sleep
import sys
Gael Varoquaux
Take in account remarks by Fernando on code review
r1947 from IPython.frontend.process import PipedProcess
Brian Granger
Skipping a few tests related to the wx frontend that fail on Windows.
r1561 from IPython.testing import decorators as testdec
Gael Varoquaux
More tests for frontends.
r1457
Brian Granger
Tests in test_process were failing on Windows. I have create a ticket...
r1616
Gael Varoquaux
More tests for frontends.
r1457 def test_capture_out():
""" A simple test to see if we can execute a process and get the output.
"""
s = StringIO()
p = PipedProcess('echo 1', out_callback=s.write, )
p.start()
p.join()
Brian Granger
Skipping a few tests related to the wx frontend that fail on Windows.
r1561 result = s.getvalue().rstrip()
assert result == '1'
Gael Varoquaux
More tests for frontends.
r1457
Brian Granger
Tests in test_process were failing on Windows. I have create a ticket...
r1616
Gael Varoquaux
More tests for frontends.
r1457 def test_io():
""" Checks that we can send characters on stdin to the process.
"""
s = StringIO()
p = PipedProcess(sys.executable + ' -c "a = raw_input(); print a"',
out_callback=s.write, )
p.start()
test_string = '12345\n'
while not hasattr(p, 'process'):
sleep(0.1)
p.process.stdin.write(test_string)
p.join()
Brian Granger
Skipping a few tests related to the wx frontend that fail on Windows.
r1561 result = s.getvalue()
assert result == test_string
Gael Varoquaux
More tests for frontends.
r1457
bgranger
Fixing broken tests on win32....
r2513 @testdec.skip_win32
Gael Varoquaux
More tests for frontends.
r1457 def test_kill():
""" Check that we can kill a process, and its subprocess.
"""
s = StringIO()
p = PipedProcess(sys.executable + ' -c "a = raw_input();"',
out_callback=s.write, )
p.start()
while not hasattr(p, 'process'):
sleep(0.1)
p.process.kill()
assert p.process.poll() is not None
if __name__ == '__main__':
test_capture_out()
test_io()
test_kill()