mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-136702: Clear codec caches for refleak tests; use test.support helpers (GH-141345)
This should fix refleak buildbots.
This commit is contained in:
parent
13fa313beb
commit
9f5152441d
4 changed files with 26 additions and 4 deletions
|
|
@ -294,6 +294,25 @@ def clear_caches():
|
||||||
else:
|
else:
|
||||||
importlib_metadata.FastPath.__new__.cache_clear()
|
importlib_metadata.FastPath.__new__.cache_clear()
|
||||||
|
|
||||||
|
try:
|
||||||
|
encodings = sys.modules['encodings']
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
encodings._cache.clear()
|
||||||
|
|
||||||
|
try:
|
||||||
|
codecs = sys.modules['codecs']
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
# There's no direct API to clear the codecs search cache, but
|
||||||
|
# `unregister` clears it implicitly.
|
||||||
|
def noop_search_function(name):
|
||||||
|
return None
|
||||||
|
codecs.register(noop_search_function)
|
||||||
|
codecs.unregister(noop_search_function)
|
||||||
|
|
||||||
|
|
||||||
def get_build_info():
|
def get_build_info():
|
||||||
# Get most important configure and build options as a list of strings.
|
# Get most important configure and build options as a list of strings.
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
from test import support
|
from test import support
|
||||||
from test.support import os_helper
|
from test.support import os_helper
|
||||||
|
from test.support import warnings_helper
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import _testlimitedcapi
|
import _testlimitedcapi
|
||||||
|
|
@ -3902,8 +3903,8 @@ def test_encodings_normalize_encoding(self):
|
||||||
self.assertEqual(normalize('utf...8'), 'utf...8')
|
self.assertEqual(normalize('utf...8'), 'utf...8')
|
||||||
|
|
||||||
# Non-ASCII *encoding* is deprecated.
|
# Non-ASCII *encoding* is deprecated.
|
||||||
with self.assertWarnsRegex(DeprecationWarning,
|
msg = "Support for non-ascii encoding names will be removed in 3.17"
|
||||||
"Support for non-ascii encoding names will be removed in 3.17"):
|
with warnings_helper.check_warnings((msg, DeprecationWarning)):
|
||||||
self.assertEqual(normalize('utf\xE9\u20AC\U0010ffff-8'), 'utf_8')
|
self.assertEqual(normalize('utf\xE9\u20AC\U0010ffff-8'), 'utf_8')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@
|
||||||
|
|
||||||
from test import support
|
from test import support
|
||||||
from test.support import threading_helper
|
from test.support import threading_helper
|
||||||
|
from test.support import warnings_helper
|
||||||
from test.support.os_helper import unlink
|
from test.support.os_helper import unlink
|
||||||
from test.test_email import openfile, TestEmailBase
|
from test.test_email import openfile, TestEmailBase
|
||||||
|
|
||||||
|
|
@ -5738,7 +5739,7 @@ def test_rfc2231_bad_character_in_encoding(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
msg = email.message_from_string(m)
|
msg = email.message_from_string(m)
|
||||||
with self.assertWarns(DeprecationWarning):
|
with warnings_helper.check_warnings(('', DeprecationWarning)):
|
||||||
self.assertEqual(msg.get_filename(), 'myfile.txt')
|
self.assertEqual(msg.get_filename(), 'myfile.txt')
|
||||||
|
|
||||||
def test_rfc2231_single_tick_in_filename_extended(self):
|
def test_rfc2231_single_tick_in_filename_extended(self):
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
from email import headerregistry
|
from email import headerregistry
|
||||||
from email.headerregistry import Address, Group
|
from email.headerregistry import Address, Group
|
||||||
from test.support import ALWAYS_EQ
|
from test.support import ALWAYS_EQ
|
||||||
|
from test.support import warnings_helper
|
||||||
|
|
||||||
|
|
||||||
DITTO = object()
|
DITTO = object()
|
||||||
|
|
@ -252,7 +253,7 @@ def content_type_as_value(self,
|
||||||
if 'utf-8%E2%80%9D' in source and 'ascii' not in source:
|
if 'utf-8%E2%80%9D' in source and 'ascii' not in source:
|
||||||
import encodings
|
import encodings
|
||||||
encodings._cache.clear()
|
encodings._cache.clear()
|
||||||
with self.assertWarns(DeprecationWarning):
|
with warnings_helper.check_warnings(('', DeprecationWarning)):
|
||||||
h = self.make_header('Content-Type', source)
|
h = self.make_header('Content-Type', source)
|
||||||
else:
|
else:
|
||||||
h = self.make_header('Content-Type', source)
|
h = self.make_header('Content-Type', source)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue