##// END OF EJS Templates
Fix small typo in variable name.
Fix small typo in variable name.

File last commit:

r2462:ddd52031
r2522:86d05a22
Show More
test_redirectors.py
78 lines | 2.5 KiB | text/x-python | PythonLexer
/ IPython / kernel / core / tests / test_redirectors.py
gvaroquaux
BUG: redirector_output_trap was not closing properly the stdout.
r1456 # encoding: utf-8
Gael Varoquaux
Add OS-level output capture, using file-descriptor redirection.
r1422 """
Test the output capture at the OS level, using file descriptors.
"""
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963 #-----------------------------------------------------------------------------
# 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
Commiting fixes for running our test suite using trial and nose....
r1963 #-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Gael Varoquaux
More tests for frontends.
r1457
Brian Granger
Fixing misc testing related things.
r1960 # Tell nose to skip this module
__test__ = {}
gvaroquaux
BUG: redirector_output_trap was not closing properly the stdout.
r1456
Gael Varoquaux
Add OS-level output capture, using file-descriptor redirection.
r1422 from cStringIO import StringIO
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963 import os
Fernando Perez
Fix the two Twisted trial errors under win32....
r2462 import sys
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963
from twisted.trial import unittest
Gael Varoquaux
Add OS-level output capture, using file-descriptor redirection.
r1422
Fernando Perez
Add new decorators to skip os-specific tests....
r1721 #-----------------------------------------------------------------------------
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963 # Tests
#-----------------------------------------------------------------------------
Fernando Perez
Add new decorators to skip os-specific tests....
r1721
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963 class TestRedirector(unittest.TestCase):
Fernando Perez
Add new decorators to skip os-specific tests....
r1721
Fernando Perez
Fix the two Twisted trial errors under win32....
r2462 if sys.platform == 'win32':
skip = True
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963 def test_redirector(self):
"""Checks that the redirector can be used to do synchronous capture.
"""
from IPython.kernel.core.fd_redirector import FDRedirector
r = FDRedirector()
out = StringIO()
try:
r.start()
for i in range(10):
os.system('echo %ic' % i)
print >>out, r.getvalue(),
print >>out, i
except:
r.stop()
raise
r.stop()
result1 = out.getvalue()
result2 = "".join("%ic\n%i\n" %(i, i) for i in range(10))
self.assertEquals(result1, result2)
def test_redirector_output_trap(self):
"""Check the greedy trapping behavior of the traps.
This test check not only that the redirector_output_trap does
Gael Varoquaux
Add OS-level output capture, using file-descriptor redirection.
r1422 trap the output, but also that it does it in a gready way, that
gvaroquaux
More tests....
r1460 is by calling the callback ASAP.
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963 """
Fernando Perez
Fix the two Twisted trial errors under win32....
r2462 from IPython.kernel.core.redirector_output_trap import \
RedirectorOutputTrap
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963 out = StringIO()
trap = RedirectorOutputTrap(out.write, out.write)
try:
trap.set()
for i in range(10):
os.system('echo %ic' % i)
print "%ip" % i
print >>out, i
except:
trap.unset()
raise
Gael Varoquaux
Add OS-level output capture, using file-descriptor redirection.
r1422 trap.unset()
Brian Granger
Commiting fixes for running our test suite using trial and nose....
r1963 result1 = out.getvalue()
result2 = "".join("%ic\n%ip\n%i\n" %(i, i, i) for i in range(10))
self.assertEquals(result1, result2)