From 9ab7dd4d5b616cd9486d3a73a5e8320f8c913a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Walter=20D=C3=B6rwald?= Date: Fri, 6 Sep 2002 17:21:40 +0000 Subject: [PATCH] Add a test case that checks that the proper exception is raises when the replacement from an encoding error callback is itself unencodable. --- Lib/test/test_codeccallbacks.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Lib/test/test_codeccallbacks.py b/Lib/test/test_codeccallbacks.py index 1650965a99a..8ae3b112102 100644 --- a/Lib/test/test_codeccallbacks.py +++ b/Lib/test/test_codeccallbacks.py @@ -474,6 +474,21 @@ class CodecCallbackTest(unittest.TestCase): codecs.lookup_error("backslashreplace") ) + def test_unencodablereplacement(self): + def unencrepl(exc): + if isinstance(exc, UnicodeEncodeError): + return (u"\u4242", exc.end) + else: + raise TypeError("don't know how to handle %r" % exc) + codecs.register_error("test.unencreplhandler", unencrepl) + for enc in ("ascii", "iso-8859-1", "iso-8859-15"): + self.assertRaises( + UnicodeEncodeError, + u"\u4242".encode, + enc, + "test.unencreplhandler" + ) + def test_main(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(CodecCallbackTest))