Commit 4b54a8a0 authored by Victor Stinner's avatar Victor Stinner Committed by GitHub

bpo-41003: Fix test_copyreg when numpy is installed (GH-20935)

Fix test_copyreg when numpy is installed: test.pickletester now
saves/restores warnings.filters when importing numpy, to ignore
filters installed by numpy.

Add the save_restore_warnings_filters() function to the
test.support.warnings_helper module.
parent 5210488f
...@@ -15,26 +15,25 @@ by import rather than matching pre-defined names. ...@@ -15,26 +15,25 @@ by import rather than matching pre-defined names.
import os import os
import sys import sys
import unittest import unittest
import warnings
from test.support import run_unittest from test.support import run_unittest
from test.support.warnings_helper import save_restore_warnings_filters
here = os.path.dirname(__file__) or os.curdir here = os.path.dirname(__file__) or os.curdir
def test_suite(): def test_suite():
old_filters = warnings.filters[:]
suite = unittest.TestSuite() suite = unittest.TestSuite()
for fn in os.listdir(here): for fn in os.listdir(here):
if fn.startswith("test") and fn.endswith(".py"): if fn.startswith("test") and fn.endswith(".py"):
modname = "distutils.tests." + fn[:-3] modname = "distutils.tests." + fn[:-3]
__import__(modname) # bpo-40055: Save/restore warnings filters to leave them unchanged.
# Importing tests imports docutils which imports pkg_resources
# which adds a warnings filter.
with save_restore_warnings_filters():
__import__(modname)
module = sys.modules[modname] module = sys.modules[modname]
suite.addTest(module.test_suite()) suite.addTest(module.test_suite())
# bpo-40055: Save/restore warnings filters to leave them unchanged.
# Importing tests imports docutils which imports pkg_resources which adds a
# warnings filter.
warnings.filters[:] = old_filters
return suite return suite
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment