Author: Ronan Lamy <[email protected]>
Branch: py3.5
Changeset: r92622:31a461517920
Date: 2017-10-06 10:13 +0200
http://bitbucket.org/pypy/pypy/changeset/31a461517920/
Log: Fix str.encode() when passing errors but no encoding
diff --git a/pypy/objspace/std/test/test_unicodeobject.py
b/pypy/objspace/std/test/test_unicodeobject.py
--- a/pypy/objspace/std/test/test_unicodeobject.py
+++ b/pypy/objspace/std/test/test_unicodeobject.py
@@ -1010,6 +1010,9 @@
raises(TypeError, "str(b'', encoding=None)")
raises(TypeError, 'u"".encode("utf-8", None)')
+ def test_encode_wrong_errors(self):
+ assert ''.encode(errors='some_wrong_name') == b''
+
def test_casefold(self):
assert u'hello'.casefold() == u'hello'
assert u'hELlo'.casefold() == u'hello'
diff --git a/pypy/objspace/std/unicodeobject.py
b/pypy/objspace/std/unicodeobject.py
--- a/pypy/objspace/std/unicodeobject.py
+++ b/pypy/objspace/std/unicodeobject.py
@@ -573,6 +573,8 @@
u, len(u), errors, errorhandler=eh))
from pypy.module._codecs.interp_codecs import encode_text
+ if encoding is None:
+ encoding = space.sys.defaultencoding
w_retval = encode_text(space, w_object, encoding, errors)
if not space.isinstance_w(w_retval, space.w_bytes):
raise oefmt(space.w_TypeError,
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit