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.
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 @@
             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 @@
             raise TestFailed, "%s%s did not raise error" % (
                 func.__name__, args)
     finally:
-        warnings.resetwarnings()
+        warnings.filters[:] = save_warnings_filters[:]
 
 simple_err(struct.calcsize, 'Z')