diff options
Diffstat (limited to 'Lib/test')
| -rw-r--r-- | Lib/test/pickletester.py | 16 | ||||
| -rw-r--r-- | Lib/test/support/__init__.py | 9 |
2 files changed, 20 insertions, 5 deletions
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 7c8383f3ea..9401043d78 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -21,19 +21,25 @@ try: except ImportError: _testbuffer = None -try: - import numpy as np -except ImportError: - np = None - from test import support from test.support import ( TestFailed, TESTFN, run_with_locale, no_tracing, _2G, _4G, bigmemtest, reap_threads, forget, + save_restore_warnings_filters ) from pickle import bytes_types + +# bpo-41003: Save/restore warnings filters to leave them unchanged. +# Ignore filters installed by numpy. +try: + with save_restore_warnings_filters(): + import numpy as np +except ImportError: + np = None + + requires_32b = unittest.skipUnless(sys.maxsize < 2**32, "test is only meaningful on 32-bit builds") diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 08d53ec706..0906e7adba 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -3368,3 +3368,12 @@ class catch_threading_exception: del self.exc_value del self.exc_traceback del self.thread + + +@contextlib.contextmanager +def save_restore_warnings_filters(): + old_filters = warnings.filters[:] + try: + yield + finally: + warnings.filters[:] = old_filters |
