Author: Armin Rigo <ar...@tunes.org>
Branch: 
Changeset: r44710:c90872144bec
Date: 2011-06-05 11:11 +0200
http://bitbucket.org/pypy/pypy/changeset/c90872144bec/

Log:    For now, custom error handlers are not supported.

diff --git a/pypy/module/_multibytecodec/c_codecs.py 
b/pypy/module/_multibytecodec/c_codecs.py
--- a/pypy/module/_multibytecodec/c_codecs.py
+++ b/pypy/module/_multibytecodec/c_codecs.py
@@ -152,8 +152,9 @@
         return     # continue decoding
     start = pypy_cjk_dec_inbuf_consumed(decodebuf)
     end = start + esize
-    if 1:  # errors == ERROR_STRICT:
-        raise EncodeDecodeError(start, end, reason)
+    if errors != "strict":
+        reason = "not implemented: custom error handlers"   # XXX implement me
+    raise EncodeDecodeError(start, end, reason)
 
 # ____________________________________________________________
 # Encoding
diff --git a/pypy/module/_multibytecodec/test/test_c_codecs.py 
b/pypy/module/_multibytecodec/test/test_c_codecs.py
--- a/pypy/module/_multibytecodec/test/test_c_codecs.py
+++ b/pypy/module/_multibytecodec/test/test_c_codecs.py
@@ -46,6 +46,14 @@
     u = decode(c, 'def~{}abc', 'replace')
     assert u == u'def\ufffd\u5fcf'
 
+def test_decode_hz_foobar():
+    # not implemented yet: custom error handlers
+    c = getcodec("hz")
+    e = py.test.raises(EncodeDecodeError, decode, c, "~{xyz}", "foobar").value
+    assert e.start == 2
+    assert e.end == 4
+    assert e.reason == "not implemented: custom error handlers"
+
 def test_encode_hz():
     c = getcodec("hz")
     s = encode(c, u'foobar')
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to