summaryrefslogtreecommitdiff
path: root/test_six.py
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2013-09-08 12:44:56 -0400
committerBenjamin Peterson <benjamin@python.org>2013-09-08 12:44:56 -0400
commita2d1d9817b862da0b7b19b681b074b4323fb2ad7 (patch)
treedc0fbad36d6a7ad75a1698c9c6e9926251aa73eb /test_six.py
parent49b5fcc7e024c204db4983a213e1bfddbdf0a9d8 (diff)
downloadsix-a2d1d9817b862da0b7b19b681b074b4323fb2ad7.tar.gz
print_: encode unicode with file encoding and errors on Python 2 (fixes #35)
Diffstat (limited to 'test_six.py')
-rw-r--r--test_six.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/test_six.py b/test_six.py
index 81d1776..37fa6fa 100644
--- a/test_six.py
+++ b/test_six.py
@@ -528,6 +528,24 @@ def test_print_():
assert out.getvalue() == "None\n"
+@py.test.mark.skipif("sys.version_info[:2] >= (2, 7)")
+def test_print_encoding(monkeypatch):
+ # Fool the type checking print_.
+ monkeypatch.setattr(six, "file", six.BytesIO, raising=False)
+ out = six.BytesIO()
+ out.encoding = "utf-8"
+ out.errors = None
+ six.print_(six.u("\u053c"), end="", file=out)
+ assert out.getvalue() == six.b("\xd4\xbc")
+ out = six.BytesIO()
+ out.encoding = "ascii"
+ out.errors = "strict"
+ py.test.raises(UnicodeEncodeError, six.print_, six.u("\u053c"), file=out)
+ out.errors = "backslashreplace"
+ six.print_(six.u("\u053c"), end="", file=out)
+ assert out.getvalue() == six.b("\\u053c")
+
+
def test_print_exceptions():
py.test.raises(TypeError, six.print_, x=3)
py.test.raises(TypeError, six.print_, end=3)