From: Serhiy Storchaka Date: Thu, 3 Dec 2015 18:47:48 +0000 (+0200) Subject: Issue #19543: Added Py3k warning for decoding unicode. X-Git-Tag: v2.7.12rc1~352 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e37003e9ae82584c6f1ced32370a7d7c7e7a2974;p=thirdparty%2FPython%2Fcpython.git Issue #19543: Added Py3k warning for decoding unicode. --- diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index b12f982e16f4..63fb8316b5f0 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 716be231485d..ee3fcca775c2 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 9368a3a14f59..2925651f0e8d 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();