##// END OF EJS Templates
Add global_ns argument to embedding, for backwards compatibility.
Add global_ns argument to embedding, for backwards compatibility.

File last commit:

r5390:c82649ea
r5675:fc653786
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
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()
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
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()
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()