# encoding: utf-8 """Tests for utils.io""" # Copyright (c) Jupyter Development Team. # Distributed under the terms of the Modified BSD License. import io as stdlib_io import sys import pytest from ..io import unicode_std_stream from io import StringIO def test_UnicodeStdStream(): # Test wrapping a bytes-level stdout stdoutb = stdlib_io.BytesIO() stdout = stdlib_io.TextIOWrapper(stdoutb, encoding='ascii') orig_stdout = sys.stdout sys.stdout = stdout try: sample = u"@łe¶ŧ←" unicode_std_stream().write(sample) output = stdoutb.getvalue().decode('utf-8') assert output == sample assert not stdout.closed finally: sys.stdout = orig_stdout def test_UnicodeStdStream_nowrap(): # If we replace stdout with a StringIO, it shouldn't get wrapped. orig_stdout = sys.stdout sys.stdout = StringIO() try: assert unicode_std_stream() is sys.stdout assert not sys.stdout.closed finally: sys.stdout = orig_stdout