##// END OF EJS Templates
Merge pull request #790 from olivierverdier/future_unicode_test...
Merge pull request #790 from olivierverdier/future_unicode_test TST: add future unicode_literals test (#786)

File last commit:

r4794:7a7b2735
r4822:54e67c3d merge
Show More
test_io.py
71 lines | 2.1 KiB | text/x-python | PythonLexer
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 # encoding: utf-8
"""Tests for io.py"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import sys
MinRK
always use StringIO, never cStringIO...
r4794 from StringIO import StringIO
MinRK
io.Term.cin/out/err replaced by io.stdin/out/err...
r3800 from subprocess import Popen, PIPE
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
import nose.tools as nt
from IPython.testing import decorators as dec
from IPython.utils.io import Tee
#-----------------------------------------------------------------------------
# Tests
#-----------------------------------------------------------------------------
def test_tee_simple():
"Very simple check with stdout only"
chan = StringIO()
text = 'Hello'
tee = Tee(chan, channel='stdout')
print >> chan, text,
nt.assert_equal(chan.getvalue(), text)
class TeeTestCase(dec.ParametricTestCase):
def tchan(self, channel, check='close'):
trap = StringIO()
chan = StringIO()
text = 'Hello'
std_ori = getattr(sys, channel)
setattr(sys, channel, trap)
tee = Tee(chan, channel=channel)
print >> chan, text,
setattr(sys, channel, std_ori)
trap_val = trap.getvalue()
nt.assert_equals(chan.getvalue(), text)
if check=='close':
tee.close()
else:
del tee
def test(self):
for chan in ['stdout', 'stderr']:
for check in ['close', 'del']:
yield self.tchan(chan, check)
MinRK
io.Term.cin/out/err replaced by io.stdin/out/err...
r3800
def test_io_init():
"""Test that io.stdin/out/err exist at startup"""
for name in ('stdin', 'stdout', 'stderr'):
p = Popen([sys.executable, '-c', "from IPython.utils import io;print io.%s.__class__"%name],
stdout=PIPE)
p.wait()
classname = p.stdout.read().strip()
nt.assert_equals(classname, 'IPython.utils.io.IOStream')