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.
This commit is contained in:
Tim Peters 2006-05-30 02:25:25 +00:00
parent 6067f20172
commit aba19bc45f
1 changed files with 6 additions and 2 deletions

View File

@ -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')