From aba19bc45fb3f0c45cb4511e2b9c1fca637fb2b3 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Tue, 30 May 2006 02:25:25 +0000 Subject: deprecated_err(): Stop bizarre warning messages when the tests are run in the order: test_genexps (or any other doctest-based test) test_struct test_doctest The `warnings` module needs an advertised way to save/restore its internal filter list. --- Lib/test/test_struct.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_struct.py b/Lib/test/test_struct.py index 701f7fd..9f43c09 100644 --- a/Lib/test/test_struct.py +++ b/Lib/test/test_struct.py @@ -50,8 +50,12 @@ def any_err(func, *args): func.__name__, args) def deprecated_err(func, *args): + # The `warnings` module doesn't have an advertised way to restore + # its filter list. Cheat. + save_warnings_filters = warnings.filters[:] warnings.filterwarnings("error", r"""^struct.*""", DeprecationWarning) - warnings.filterwarnings("error", r""".*format requires.*""", DeprecationWarning) + warnings.filterwarnings("error", r""".*format requires.*""", + DeprecationWarning) try: try: func(*args) @@ -65,7 +69,7 @@ def deprecated_err(func, *args): raise TestFailed, "%s%s did not raise error" % ( func.__name__, args) finally: - warnings.resetwarnings() + warnings.filters[:] = save_warnings_filters[:] simple_err(struct.calcsize, 'Z') -- cgit v0.12