##// END OF EJS Templates
Add docstring
Add docstring

File last commit:

r23229:fa069ce5
r23288:9f33068a
Show More
test_io.py
94 lines | 2.7 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"""
Min RK
preserve umask in atomic_writing...
r19932 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
Thomas Kluyver
Add unicode_std_stream function to write UTF-8 to stdout/stderr
r13690 import io as stdlib_io
Thomas Kluyver
Rework atomic_writing with tests & docstring
r17570 import os.path
Thomas Kluyver
Copy file metadata in atomic save...
r17831 import stat
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 import sys
Srinivas Reddy Thatiparthy
Remove PY3 variable
r23108 from io import StringIO
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
MinRK
io.Term.cin/out/err replaced by io.stdin/out/err...
r3800 from subprocess import Popen, PIPE
Thomas Kluyver
Remove most uses of ParametricTestCase
r12372 import unittest
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
import nose.tools as nt
Min RK
preserve umask in atomic_writing...
r19932 from IPython.testing.decorators import skipif, skip_win32
Christopher Welborn
IOStream: Ignore missing attrs from `dir()`. #6386...
r23229 from IPython.utils.io import IOStream, Tee, capture_output
Srinivas Reddy Thatiparthy
Remove PY3 variable
r23108 from IPython.utils.py3compat import doctest_refactor_print
Thomas Kluyver
Rework atomic_writing with tests & docstring
r17570 from IPython.utils.tempdir import TemporaryDirectory
Thomas Kluyver
Use StringIO.StringIO on Python 2....
r13366
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
def test_tee_simple():
"Very simple check with stdout only"
chan = StringIO()
text = 'Hello'
tee = Tee(chan, channel='stdout')
Matthias BUSSONNIER
use print function in module with `print >>`
r7817 print(text, file=chan)
Thomas Kluyver
Various fixes to tests in IPython.utils.
r4891 nt.assert_equal(chan.getvalue(), text+"\n")
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
Thomas Kluyver
Remove most uses of ParametricTestCase
r12372 class TeeTestCase(unittest.TestCase):
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
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)
Matthias BUSSONNIER
use print function in module with `print >>`
r7817 print(text, end='', file=chan)
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 setattr(sys, channel, std_ori)
trap_val = trap.getvalue()
Bradley M. Froehle
s/nt.assert_equals/nt.assert_equal/
r7875 nt.assert_equal(chan.getvalue(), text)
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 if check=='close':
tee.close()
else:
del tee
def test(self):
for chan in ['stdout', 'stderr']:
for check in ['close', 'del']:
Thomas Kluyver
Remove most uses of ParametricTestCase
r12372 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'):
Thomas Kluyver
Various fixes to tests in IPython.utils.
r4891 cmd = doctest_refactor_print("from IPython.utils import io;print io.%s.__class__"%name)
p = Popen([sys.executable, '-c', cmd],
MinRK
io.Term.cin/out/err replaced by io.stdin/out/err...
r3800 stdout=PIPE)
p.wait()
Thomas Kluyver
Various fixes to tests in IPython.utils.
r4891 classname = p.stdout.read().strip().decode('ascii')
# __class__ is a reference to the class object in Python 3, so we can't
# just test for string equality.
assert 'IPython.utils.io.IOStream' in classname, classname
MinRK
move capture_output util from parallel tests to utils.io
r7324
Christopher Welborn
IOStream: Ignore missing attrs from `dir()`. #6386...
r23229 def test_IOStream_init():
"""IOStream initializes from a file-like object missing attributes. """
# Cause a failure from getattr and dir(). (Issue #6386)
class BadStringIO(StringIO):
def __dir__(self):
attrs = super(StringIO, self).__dir__()
attrs.append('name')
return attrs
iostream = IOStream(BadStringIO())
iostream.write('hi, bad iostream\n')
assert not hasattr(iostream, 'name')
MinRK
move capture_output util from parallel tests to utils.io
r7324 def test_capture_output():
"""capture_output() context works"""
with capture_output() as io:
Matthias BUSSONNIER
use print function in module with `print >>`
r7817 print('hi, stdout')
print('hi, stderr', file=sys.stderr)
MinRK
move capture_output util from parallel tests to utils.io
r7324
Bradley M. Froehle
s/nt.assert_equals/nt.assert_equal/
r7875 nt.assert_equal(io.stdout, 'hi, stdout\n')
nt.assert_equal(io.stderr, 'hi, stderr\n')
Thomas Kluyver
Add unicode_std_stream function to write UTF-8 to stdout/stderr
r13690
Thomas Kluyver
Rework atomic_writing with tests & docstring
r17570