diff options
author | John Szakmeister <john@szakmeister.net> | 2014-02-12 11:15:05 -0500 |
---|---|---|
committer | John Szakmeister <john@szakmeister.net> | 2014-02-12 11:15:05 -0500 |
commit | 2fed072081d8aa3a235ca0bfad8894150d3f2aae (patch) | |
tree | 9ac84dc6cc29e103ad9bc81121f7cb77bb3e221c | |
parent | 03747e5925cbe599d7b90477623964ae2ddfc7c8 (diff) | |
parent | a22588c93f76746a2e7a973c6ade30349170353f (diff) | |
download | nose-2fed072081d8aa3a235ca0bfad8894150d3f2aae.tar.gz |
Merge pull request #727 from malthe/fix-builtin-filtering
Fixed issue with builtin filtering.
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | nose/plugins/logcapture.py | 3 | ||||
-rw-r--r-- | unit_tests/test_logcapture_plugin.py | 20 |
3 files changed, 24 insertions, 1 deletions
@@ -1,5 +1,7 @@ In Development +- The log capture plugin now correctly applies filters that were added + using `addFilter`. - Corrected a reference to the multiprocessing plugin in the documentation. Patch by Nick Loadholtes. - Fixed #447: doctests fail when getpackage() returns None diff --git a/nose/plugins/logcapture.py b/nose/plugins/logcapture.py index 30b4a96..101b335 100644 --- a/nose/plugins/logcapture.py +++ b/nose/plugins/logcapture.py @@ -85,7 +85,8 @@ class MyMemoryHandler(Handler): def truncate(self): self.buffer = [] def filter(self, record): - return self.filterset.allow(record.name) + if self.filterset.allow(record.name): + return Handler.filter(self, record) def __getstate__(self): state = self.__dict__.copy() del state['lock'] diff --git a/unit_tests/test_logcapture_plugin.py b/unit_tests/test_logcapture_plugin.py index 63d1f8b..63aa651 100644 --- a/unit_tests/test_logcapture_plugin.py +++ b/unit_tests/test_logcapture_plugin.py @@ -155,6 +155,26 @@ class TestLogCapturePlugin(object): eq_(1, len(records)) eq_("++Hello++", records[0]) + def test_builtin_logging_filtering(self): + c = LogCapture() + c.logformat = '++%(message)s++' + c.start() + log = logging.getLogger("foobar.something") + filtered = [] + class filter(object): + def filter(record): + filtered.append(record) + return len(filtered) == 1 + filter = staticmethod(filter) + c.handler.addFilter(filter) + log.debug("Hello") + log.debug("World") + c.end() + eq_(2, len(filtered)) + records = c.formatLogRecords() + eq_(1, len(records)) + eq_("++Hello++", records[0]) + def test_logging_filter(self): env = {'NOSE_LOGFILTER': 'foo,bar'} c = LogCapture() |