From 511ad18ea343238053208313a411392380f1a12b Mon Sep 17 00:00:00 2001 From: Santeri Paavolainen Date: Sun, 30 Sep 2012 06:54:31 +0300 Subject: Format captured log records immediately to have consistent formatting of mutables. This is a fix for https://github.com/nose-devs/nose/issues/561 --- unit_tests/test_logcapture_plugin.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'unit_tests') diff --git a/unit_tests/test_logcapture_plugin.py b/unit_tests/test_logcapture_plugin.py index f53f233..63d1f8b 100644 --- a/unit_tests/test_logcapture_plugin.py +++ b/unit_tests/test_logcapture_plugin.py @@ -77,7 +77,24 @@ class TestLogCapturePlugin(object): log.debug("Hello") c.end() eq_(1, len(c.handler.buffer)) - eq_("Hello", c.handler.buffer[0].msg) + eq_("foobar.something: DEBUG: Hello", c.handler.buffer[0]) + + def test_consistent_mutables(self): + c = LogCapture() + parser = OptionParser() + c.addOptions(parser) + c.start() + log = logging.getLogger("mutable") + mutable = { 'value': 1 } + log.debug("%r", mutable) + repr_1 = repr(mutable) + mutable['value'] = 2 + log.debug("%r", mutable) + repr_2 = repr(mutable) + c.end() + records = c.formatLogRecords() + eq_("mutable: DEBUG: %s" % (repr_1,), records[0]) + eq_("mutable: DEBUG: %s" % (repr_2,), records[1]) def test_loglevel(self): c = LogCapture() @@ -92,7 +109,7 @@ class TestLogCapturePlugin(object): c.end() records = c.formatLogRecords() eq_(1, len(c.handler.buffer)) - eq_("Goodbye", c.handler.buffer[0].msg) + eq_("loglevel: INFO: Goodbye", c.handler.buffer[0]) eq_("loglevel: INFO: Goodbye", records[0]) def test_clears_all_existing_log_handlers(self): -- cgit v1.2.1