mirror of
https://github.com/python/cpython.git
synced 2025-08-30 13:38:43 +00:00
"unicode_internal" codec has been deprecated: fix related tests
This commit is contained in:
parent
8ab440e477
commit
040e16e3e8
3 changed files with 61 additions and 29 deletions
|
@ -1,5 +1,10 @@
|
||||||
import test.support, unittest
|
import codecs
|
||||||
import sys, codecs, html.entities, unicodedata
|
import html.entities
|
||||||
|
import sys
|
||||||
|
import test.support
|
||||||
|
import unicodedata
|
||||||
|
import unittest
|
||||||
|
import warnings
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import ctypes
|
import ctypes
|
||||||
|
@ -621,12 +626,15 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
("utf-7", b"+x-"),
|
("utf-7", b"+x-"),
|
||||||
("unicode-internal", b"\x00"),
|
("unicode-internal", b"\x00"),
|
||||||
):
|
):
|
||||||
self.assertRaises(
|
with warnings.catch_warnings():
|
||||||
TypeError,
|
# unicode-internal has been deprecated
|
||||||
bytes.decode,
|
warnings.simplefilter("ignore", DeprecationWarning)
|
||||||
enc,
|
self.assertRaises(
|
||||||
"test.badhandler"
|
TypeError,
|
||||||
)
|
bytes.decode,
|
||||||
|
enc,
|
||||||
|
"test.badhandler"
|
||||||
|
)
|
||||||
|
|
||||||
def test_lookup(self):
|
def test_lookup(self):
|
||||||
self.assertEqual(codecs.strict_errors, codecs.lookup_error("strict"))
|
self.assertEqual(codecs.strict_errors, codecs.lookup_error("strict"))
|
||||||
|
@ -842,8 +850,11 @@ class CodecCallbackTest(unittest.TestCase):
|
||||||
else:
|
else:
|
||||||
raise TypeError("don't know how to handle %r" % exc)
|
raise TypeError("don't know how to handle %r" % exc)
|
||||||
codecs.register_error("test.replacing", replacing)
|
codecs.register_error("test.replacing", replacing)
|
||||||
for (encoding, data) in baddata:
|
with warnings.catch_warnings():
|
||||||
self.assertRaises(TypeError, data.decode, encoding, "test.replacing")
|
# unicode-internal has been deprecated
|
||||||
|
warnings.simplefilter("ignore", DeprecationWarning)
|
||||||
|
for (encoding, data) in baddata:
|
||||||
|
self.assertRaises(TypeError, data.decode, encoding, "test.replacing")
|
||||||
|
|
||||||
def mutating(exc):
|
def mutating(exc):
|
||||||
if isinstance(exc, UnicodeDecodeError):
|
if isinstance(exc, UnicodeDecodeError):
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
from test import support
|
import _testcapi
|
||||||
import unittest
|
|
||||||
import codecs
|
import codecs
|
||||||
|
import io
|
||||||
import locale
|
import locale
|
||||||
import sys, _testcapi, io
|
import sys
|
||||||
|
import unittest
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
from test import support
|
||||||
|
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32':
|
||||||
VISTA_OR_LATER = (sys.getwindowsversion().major >= 6)
|
VISTA_OR_LATER = (sys.getwindowsversion().major >= 6)
|
||||||
|
@ -1051,12 +1055,16 @@ class UnicodeInternalTest(unittest.TestCase):
|
||||||
self.assertEqual(("ab", 12), ignored)
|
self.assertEqual(("ab", 12), ignored)
|
||||||
|
|
||||||
def test_encode_length(self):
|
def test_encode_length(self):
|
||||||
# Issue 3739
|
with warnings.catch_warnings():
|
||||||
encoder = codecs.getencoder("unicode_internal")
|
# unicode-internal has been deprecated
|
||||||
self.assertEqual(encoder("a")[1], 1)
|
warnings.simplefilter("ignore", DeprecationWarning)
|
||||||
self.assertEqual(encoder("\xe9\u0142")[1], 2)
|
|
||||||
|
|
||||||
self.assertEqual(codecs.escape_encode(br'\x00')[1], 4)
|
# Issue 3739
|
||||||
|
encoder = codecs.getencoder("unicode_internal")
|
||||||
|
self.assertEqual(encoder("a")[1], 1)
|
||||||
|
self.assertEqual(encoder("\xe9\u0142")[1], 2)
|
||||||
|
|
||||||
|
self.assertEqual(codecs.escape_encode(br'\x00')[1], 4)
|
||||||
|
|
||||||
# From http://www.gnu.org/software/libidn/draft-josefsson-idn-test-vectors.html
|
# From http://www.gnu.org/software/libidn/draft-josefsson-idn-test-vectors.html
|
||||||
nameprep_tests = [
|
nameprep_tests = [
|
||||||
|
@ -1512,10 +1520,15 @@ class BasicUnicodeTest(unittest.TestCase, MixInCheckStateHandling):
|
||||||
elif encoding == "latin_1":
|
elif encoding == "latin_1":
|
||||||
name = "latin_1"
|
name = "latin_1"
|
||||||
self.assertEqual(encoding.replace("_", "-"), name.replace("_", "-"))
|
self.assertEqual(encoding.replace("_", "-"), name.replace("_", "-"))
|
||||||
(b, size) = codecs.getencoder(encoding)(s)
|
|
||||||
self.assertEqual(size, len(s), "%r != %r (encoding=%r)" % (size, len(s), encoding))
|
with warnings.catch_warnings():
|
||||||
(chars, size) = codecs.getdecoder(encoding)(b)
|
# unicode-internal has been deprecated
|
||||||
self.assertEqual(chars, s, "%r != %r (encoding=%r)" % (chars, s, encoding))
|
warnings.simplefilter("ignore", DeprecationWarning)
|
||||||
|
|
||||||
|
(b, size) = codecs.getencoder(encoding)(s)
|
||||||
|
self.assertEqual(size, len(s), "%r != %r (encoding=%r)" % (size, len(s), encoding))
|
||||||
|
(chars, size) = codecs.getdecoder(encoding)(b)
|
||||||
|
self.assertEqual(chars, s, "%r != %r (encoding=%r)" % (chars, s, encoding))
|
||||||
|
|
||||||
if encoding not in broken_unicode_with_streams:
|
if encoding not in broken_unicode_with_streams:
|
||||||
# check stream reader/writer
|
# check stream reader/writer
|
||||||
|
|
|
@ -5,13 +5,13 @@ Written by Marc-Andre Lemburg (mal@lemburg.com).
|
||||||
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
|
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
|
||||||
|
|
||||||
"""#"
|
"""#"
|
||||||
|
import _string
|
||||||
import codecs
|
import codecs
|
||||||
import struct
|
import struct
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
import warnings
|
import warnings
|
||||||
from test import support, string_tests
|
from test import support, string_tests
|
||||||
import _string
|
|
||||||
|
|
||||||
# Error handling (bad decoder return)
|
# Error handling (bad decoder return)
|
||||||
def search_function(encoding):
|
def search_function(encoding):
|
||||||
|
@ -1394,7 +1394,11 @@ class UnicodeTest(string_tests.CommonTest,
|
||||||
for encoding in ('utf-7', 'utf-8', 'utf-16', 'utf-16-le',
|
for encoding in ('utf-7', 'utf-8', 'utf-16', 'utf-16-le',
|
||||||
'utf-16-be', 'raw_unicode_escape',
|
'utf-16-be', 'raw_unicode_escape',
|
||||||
'unicode_escape', 'unicode_internal'):
|
'unicode_escape', 'unicode_internal'):
|
||||||
self.assertEqual(str(u.encode(encoding),encoding), u)
|
with warnings.catch_warnings():
|
||||||
|
# unicode-internal has been deprecated
|
||||||
|
warnings.simplefilter("ignore", DeprecationWarning)
|
||||||
|
|
||||||
|
self.assertEqual(str(u.encode(encoding),encoding), u)
|
||||||
|
|
||||||
# Roundtrip safety for BMP (just the first 256 chars)
|
# Roundtrip safety for BMP (just the first 256 chars)
|
||||||
for c in range(256):
|
for c in range(256):
|
||||||
|
@ -1409,11 +1413,15 @@ class UnicodeTest(string_tests.CommonTest,
|
||||||
self.assertEqual(str(u.encode(encoding),encoding), u)
|
self.assertEqual(str(u.encode(encoding),encoding), u)
|
||||||
|
|
||||||
# Roundtrip safety for non-BMP (just a few chars)
|
# Roundtrip safety for non-BMP (just a few chars)
|
||||||
u = '\U00010001\U00020002\U00030003\U00040004\U00050005'
|
with warnings.catch_warnings():
|
||||||
for encoding in ('utf-8', 'utf-16', 'utf-16-le', 'utf-16-be',
|
# unicode-internal has been deprecated
|
||||||
'raw_unicode_escape',
|
warnings.simplefilter("ignore", DeprecationWarning)
|
||||||
'unicode_escape', 'unicode_internal'):
|
|
||||||
self.assertEqual(str(u.encode(encoding),encoding), u)
|
u = '\U00010001\U00020002\U00030003\U00040004\U00050005'
|
||||||
|
for encoding in ('utf-8', 'utf-16', 'utf-16-le', 'utf-16-be',
|
||||||
|
'raw_unicode_escape',
|
||||||
|
'unicode_escape', 'unicode_internal'):
|
||||||
|
self.assertEqual(str(u.encode(encoding),encoding), u)
|
||||||
|
|
||||||
# UTF-8 must be roundtrip safe for all code points
|
# UTF-8 must be roundtrip safe for all code points
|
||||||
# (except surrogates, which are forbidden).
|
# (except surrogates, which are forbidden).
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue