From e37003e9ae82584c6f1ced32370a7d7c7e7a2974 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Thu, 3 Dec 2015 20:47:48 +0200 Subject: Issue #19543: Added Py3k warning for decoding unicode. --- Lib/test/test_unicode.py | 10 ++++++---- Misc/NEWS | 2 ++ Objects/unicodeobject.c | 3 +++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index b12f982..63fb831 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -1037,10 +1037,12 @@ class UnicodeTest( self.assertEqual(unicode('Andr\202 x','ascii','ignore'), u"Andr x") self.assertEqual(unicode('Andr\202 x','ascii','replace'), u'Andr\uFFFD x') self.assertEqual(unicode('\202 x', 'ascii', 'replace'), u'\uFFFD x') - self.assertEqual(u'abcde'.decode('ascii', 'ignore'), - u'abcde'.decode('ascii', errors='ignore')) - self.assertEqual(u'abcde'.decode('ascii', 'replace'), - u'abcde'.decode(encoding='ascii', errors='replace')) + with test_support.check_py3k_warnings(): + self.assertEqual(u'abcde'.decode('ascii', 'ignore'), + u'abcde'.decode('ascii', errors='ignore')) + with test_support.check_py3k_warnings(): + self.assertEqual(u'abcde'.decode('ascii', 'replace'), + u'abcde'.decode(encoding='ascii', errors='replace')) # Error handling (unknown character names) self.assertEqual("\\N{foo}xx".decode("unicode-escape", "ignore"), u"xx") diff --git a/Misc/NEWS b/Misc/NEWS index 716be23..ee3fcca7 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,8 @@ What's New in Python 2.7.12? Core and Builtins ----------------- +- Issue #19543: Added Py3k warning for decoding unicode. + - Issue #24097: Fixed crash in object.__reduce__() if slot name is freed inside __getattr__. diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 9368a3a..2925651 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1288,6 +1288,9 @@ PyObject *PyUnicode_AsDecodedObject(PyObject *unicode, goto onError; } + if (PyErr_WarnPy3k("decoding Unicode is not supported in 3.x", 1) < 0) + goto onError; + if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); -- cgit v0.12