From: Victor Stinner Date: Mon, 21 Nov 2016 15:44:01 +0000 (+0100) Subject: Issue #28688: Remove warnings.filters check from regrtest X-Git-Tag: v3.6.0b4~22^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c7fb55d4491327d07f7a33ce25498ac2e871818;p=thirdparty%2FPython%2Fcpython.git Issue #28688: Remove warnings.filters check from regrtest Reloading the warnings module duplicates filters in warnings.filters. Fixing the issue is tricky. It was decided to simply remove the check from Python 3.5, since the bug only impacts Python unit tests, not real applications. The check is kept in Python 3.6 and newer. --- diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index db29efac0be0..6b7ce16c689e 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -1052,7 +1052,7 @@ class saved_test_environment: resources = ('sys.argv', 'cwd', 'sys.stdin', 'sys.stdout', 'sys.stderr', 'os.environ', 'sys.path', 'sys.path_hooks', '__import__', - 'warnings.filters', 'asyncore.socket_map', + 'asyncore.socket_map', 'logging._handlers', 'logging._handlerList', 'sys.gettrace', 'sys.warnoptions', # multiprocessing.process._cleanup() may release ref @@ -1118,12 +1118,6 @@ class saved_test_environment: def restore___import__(self, import_): builtins.__import__ = import_ - def get_warnings_filters(self): - return id(warnings.filters), warnings.filters, warnings.filters[:] - def restore_warnings_filters(self, saved_filters): - warnings.filters = saved_filters[1] - warnings.filters[:] = saved_filters[2] - def get_asyncore_socket_map(self): asyncore = sys.modules.get('asyncore') # XXX Making a copy keeps objects alive until __exit__ gets called.