Make packaging.tests.support.LoggingCatcher.get_logs flush the log handler.

This removes the need to call flush manually in each test, except when
testing code that creates warning without checking them.
diff --git a/Lib/packaging/tests/support.py b/Lib/packaging/tests/support.py
index 66b5583..ae65a1d 100644
--- a/Lib/packaging/tests/support.py
+++ b/Lib/packaging/tests/support.py
@@ -90,17 +90,23 @@
     def get_logs(self, *levels):
         """Return all log messages with level in *levels*.
 
-        Without explicit levels given, returns all messages.
-        *levels* defaults to all levels.  For log calls with arguments (i.e.
-        logger.info('bla bla %s', arg)), the messages
-        Returns a list.
+        Without explicit levels given, returns all messages.  *levels* defaults
+        to all levels.  For log calls with arguments (i.e.
+        logger.info('bla bla %r', arg)), the messages will be formatted before
+        being returned (e.g. "bla bla 'thing'").
+
+        Returns a list.  Automatically flushes the loghandler after being
+        called.
 
         Example: self.get_logs(logging.WARN, logging.DEBUG).
         """
         if not levels:
-            return [log.getMessage() for log in self.loghandler.buffer]
-        return [log.getMessage() for log in self.loghandler.buffer
-                if log.levelno in levels]
+            messages = [log.getMessage() for log in self.loghandler.buffer]
+        else:
+            messages = [log.getMessage() for log in self.loghandler.buffer
+                        if log.levelno in levels]
+        self.loghandler.flush()
+        return messages
 
 
 class TempdirManager:
diff --git a/Lib/packaging/tests/test_command_check.py b/Lib/packaging/tests/test_command_check.py
index 8b32673..0bdd616 100644
--- a/Lib/packaging/tests/test_command_check.py
+++ b/Lib/packaging/tests/test_command_check.py
@@ -36,7 +36,6 @@
         # now let's add the required fields
         # and run it again, to make sure we don't get
         # any warning anymore
-        self.loghandler.flush()
         metadata = {'home_page': 'xxx', 'author': 'xxx',
                     'author_email': 'xxx',
                     'name': 'xxx', 'version': '4.2',
@@ -50,8 +49,10 @@
         self.assertRaises(PackagingSetupError, self._run,
             {'name': 'xxx', 'version': 'xxx'}, **{'strict': 1})
 
-        # and of course, no error when all metadata fields are present
+        # clear warnings from the previous calls
         self.loghandler.flush()
+
+        # and of course, no error when all metadata fields are present
         cmd = self._run(metadata, strict=True)
         self.assertEqual([], self.get_logs(logging.WARNING))
 
@@ -70,7 +71,6 @@
                     'name': 'xxx', 'version': '4.2',
                     'requires_python': '2.4',
                     }
-        self.loghandler.flush()
         cmd = self._run(metadata)
         self.assertEqual([], self.get_logs(logging.WARNING))
 
@@ -85,9 +85,11 @@
         self.assertRaises(PackagingSetupError, self._run, metadata,
             **{'strict': 1})
 
+        # clear warnings from the previous calls
+        self.loghandler.flush()
+
         # now with correct version format again
         metadata['version'] = '4.2'
-        self.loghandler.flush()
         cmd = self._run(metadata, strict=True)
         self.assertEqual([], self.get_logs(logging.WARNING))
 
@@ -100,7 +102,6 @@
         cmd.check_restructuredtext()
         self.assertEqual(len(self.get_logs(logging.WARNING)), 1)
 
-        self.loghandler.flush()
         pkg_info, dist = self.create_dist(description='title\n=====\n\ntest')
         cmd = check(dist)
         cmd.check_restructuredtext()
diff --git a/Lib/packaging/tests/test_manifest.py b/Lib/packaging/tests/test_manifest.py
index 9fb8b63..e0bcbbc 100644
--- a/Lib/packaging/tests/test_manifest.py
+++ b/Lib/packaging/tests/test_manifest.py
@@ -50,9 +50,6 @@
         for warning in warnings:
             self.assertIn('no files found matching', warning)
 
-        # reset logs for the next assert
-        self.loghandler.flush()
-
         # manifest also accepts file-like objects
         with open(MANIFEST) as f:
             manifest.read_template(f)