diff options
author | Éric Araujo <merwok@netwok.org> | 2011-06-02 12:53:59 (GMT) |
---|---|---|
committer | Éric Araujo <merwok@netwok.org> | 2011-06-02 12:53:59 (GMT) |
commit | 78af7d8392b5671f6877b259df34c36b884dc103 (patch) | |
tree | d5ff0e1fec689fb7981062dbbafddea48cb0b745 | |
parent | 5da37be7f25f07a48229dd1d409447c3ffbf3952 (diff) | |
download | cpython-78af7d8392b5671f6877b259df34c36b884dc103.zip cpython-78af7d8392b5671f6877b259df34c36b884dc103.tar.gz cpython-78af7d8392b5671f6877b259df34c36b884dc103.tar.bz2 |
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.
-rw-r--r-- | Lib/packaging/tests/support.py | 20 | ||||
-rw-r--r-- | Lib/packaging/tests/test_command_check.py | 11 | ||||
-rw-r--r-- | Lib/packaging/tests/test_manifest.py | 3 |
3 files changed, 19 insertions, 15 deletions
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 @@ class LoggingCatcher: 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 @@ class CheckTestCase(support.LoggingCatcher, # 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 @@ class CheckTestCase(support.LoggingCatcher, 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 @@ class CheckTestCase(support.LoggingCatcher, '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 @@ class CheckTestCase(support.LoggingCatcher, 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 @@ class CheckTestCase(support.LoggingCatcher, 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 @@ class ManifestTestCase(support.TempdirManager, 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) |