##// END OF EJS Templates
fixup shutdown/exit now that we use IOLoop...
fixup shutdown/exit now that we use IOLoop various modes of shutting down should now result in exiting the loop.

File last commit:

r5810:549a6b38
r6799:f9d70057
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 #-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2008-2011 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
Thomas Spura
IPython.testing.decorators is imported as dec everywhere else, unify....
r5810 from IPython.testing import decorators as dec
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()
Bernardo B. Marques
remove all trailling spaces
r4872 p = PipedProcess(sys.executable + ' -c "a = raw_input(); print a"',
Gael Varoquaux
More tests for frontends.
r1457 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
Thomas Spura
IPython.testing.decorators is imported as dec everywhere else, unify....
r5810 @dec.skip_win32
Gael Varoquaux
More tests for frontends.
r1457 def test_kill():
""" Check that we can kill a process, and its subprocess.
"""
s = StringIO()
Bernardo B. Marques
remove all trailling spaces
r4872 p = PipedProcess(sys.executable + ' -c "a = raw_input();"',
Gael Varoquaux
More tests for frontends.
r1457 out_callback=s.write, )
p.start()
while not hasattr(p, 'process'):
sleep(0.1)
Bernardo B. Marques
remove all trailling spaces
r4872 p.process.kill()
Gael Varoquaux
More tests for frontends.
r1457 assert p.process.poll() is not None
if __name__ == '__main__':
test_capture_out()
test_io()
test_kill()