Author: Philip Jenvey <[email protected]>
Branch: py3k
Changeset: r59000:c914d9d6c0b8
Date: 2012-11-19 13:28 -0800
http://bitbucket.org/pypy/pypy/changeset/c914d9d6c0b8/
Log: print() should always call str()
diff --git a/pypy/module/__builtin__/app_io.py
b/pypy/module/__builtin__/app_io.py
--- a/pypy/module/__builtin__/app_io.py
+++ b/pypy/module/__builtin__/app_io.py
@@ -57,9 +57,7 @@
if fp is None:
return
def write(data):
- if not isinstance(data, str):
- data = str(data)
- fp.write(data)
+ fp.write(str(data))
sep = kwargs.pop("sep", None)
if sep is not None:
if not isinstance(sep, str):
diff --git a/pypy/module/__builtin__/test/test_builtin.py
b/pypy/module/__builtin__/test/test_builtin.py
--- a/pypy/module/__builtin__/test/test_builtin.py
+++ b/pypy/module/__builtin__/test/test_builtin.py
@@ -629,6 +629,19 @@
pr(None, file=out)
assert out.getvalue() == "None\n"
+ def test_print_function2(self):
+ import builtins
+ import io
+ class MyStr(str):
+ def __str__(self):
+ return "sqlalchemy"
+ out = io.StringIO()
+ s = MyStr('A')
+ pr = getattr(builtins, 'print')
+ pr(s, file=out)
+ pr(str(s), file=out)
+ assert out.getvalue() == "sqlalchemy\nsqlalchemy\n"
+
def test_print_exceptions(self):
import builtins
pr = getattr(builtins, "print")
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit