##// END OF EJS Templates
More work addressing review comments for Fernando's branch....
More work addressing review comments for Fernando's branch. * :mod:`IPython.testing.globalipapp` now directly creates a :class:`~IPython.core.iplib.InteractiveShell` instance by passing it a configuration object, rather than creating an IPython application. * Updated everything in :mod:`IPython.frontend` and :mod:`IPython.gui` to use raw :class:`~IPython.core.iplib.InteractiveShell directly rather than creating an IPython application. * Updated the IPython sphinx extension to use raw :class:`~IPython.core.iplib.InteractiveShell directly rather than creating an IPython application. * Removed code from :mod:`IPython.extensions.pretty` that called :func:`get_ipython` (r1271). * Addressed comment on (r1284) about holding refs to deferreds in :mod:`IPython.kernel.ipclusterapp`. * Removed :mod:`IPython.kernel` from list of modules tested by nose in :mod:`IPython.testing.iptest`. (r1318)

File last commit:

r1960:51f38f50
r2499:58bf4021
Show More
test_process.py
67 lines | 1.7 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
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()