]> granicus.if.org Git - python/commitdiff
Issue #19543: Added Py3k warning for decoding unicode.
authorSerhiy Storchaka <storchaka@gmail.com>
Thu, 3 Dec 2015 18:47:48 +0000 (20:47 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Thu, 3 Dec 2015 18:47:48 +0000 (20:47 +0200)
Lib/test/test_unicode.py
Misc/NEWS
Objects/unicodeobject.c

index b12f982e16f4d4a64209f4c8b83585c9d7afca9e..63fb8316b5f0eb994c51fc16e6a744f0f9e5aaf7 100644 (file)
@@ -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")
index 716be231485dc2e871230065366f470b1b2de6e3..ee3fcca775c266c5092cf777aee44037149b4b6d 100644 (file)
--- 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__.
 
index 9368a3a14f594155ceea99b6afa41cd1c5980159..2925651f0e8dfd62334f8114c16a209817156e4b 100644 (file)
@@ -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();