diff options
author | Malthe Borch <mborch@gmail.com> | 2013-08-30 14:04:41 +0200 |
---|---|---|
committer | Malthe Borch <mborch@gmail.com> | 2014-02-12 17:09:09 +0100 |
commit | a22588c93f76746a2e7a973c6ade30349170353f (patch) | |
tree | c49762f39a94518acd55e2bb828f569e369739d6 /unit_tests | |
parent | 7ce321f8cd98318edb889f1dc8ce7e3ab9a8c8a2 (diff) | |
download | nose-a22588c93f76746a2e7a973c6ade30349170353f.tar.gz |
Fixed issue with builtin filtering.
The superclass (which ultimately inherits from 'Handler')
checks against any registered filters, before allowing a
logging record. Nose's logging capture plugin should do the
same, because these filters are allowed to modify the record.
And it can easily happen that the logging format requires
this modification (e.g. add an attribute).
Diffstat (limited to 'unit_tests')
-rw-r--r-- | unit_tests/test_logcapture_plugin.py | 20 |
1 files changed, 20 insertions, 0 deletions
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() |