Move the functionality for catching warnings in test_warnings.py into a separate
class to that reusing the functionality in test_structmembers.py doesn't rerun
the tests from test_warnings.py.
diff --git a/Lib/test/test_structmembers.py b/Lib/test/test_structmembers.py
index 93dd2ac..5dc2175 100644
--- a/Lib/test/test_structmembers.py
+++ b/Lib/test/test_structmembers.py
@@ -39,7 +39,7 @@
         ts.T_ULONG=ULONG_MAX
         self.assertEquals(ts.T_ULONG, ULONG_MAX)
 
-class TestWarnings(test.test_warnings.TestModule):
+class TestWarnings(test.test_warnings.CatchWarningTest):
     def has_warned(self):
         self.assertEqual(test.test_warnings.msg.category,
                          exceptions.RuntimeWarning.__name__)
diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py
index a7ccb6b..0ad83ed 100644
--- a/Lib/test/test_warnings.py
+++ b/Lib/test/test_warnings.py
@@ -20,7 +20,7 @@
     msg.filename = os.path.basename(filename)
     msg.lineno = lineno
 
-class TestModule(unittest.TestCase):
+class CatchWarningTest(unittest.TestCase):
 
     def setUp(self):
         global msg
@@ -35,6 +35,8 @@
         warnings.filters = self._filters[:]
         warnings.showwarning = self._showwarning
 
+class TestModule(CatchWarningTest):
+
     def test_warn_default_category(self):
         for i in range(4):
             text = 'multi %d' %i    # Different text on each call