diff options
author | Jonathan Lange <jml@canonical.com> | 2012-12-13 15:40:48 +0000 |
---|---|---|
committer | Jonathan Lange <jml@canonical.com> | 2012-12-13 15:40:48 +0000 |
commit | 5306c96b61e499e36e1658ee0893986a5182f13b (patch) | |
tree | 9dda5c8339a7c9d837a3a275146855b99dcea75c | |
parent | f67cb5ae95d46231d9c93666bc31f351fe3d3644 (diff) | |
download | fixtures-5306c96b61e499e36e1658ee0893986a5182f13b.tar.gz |
Rest of the tests for LogHandler.
-rw-r--r-- | lib/fixtures/tests/_fixtures/test_logger.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/fixtures/tests/_fixtures/test_logger.py b/lib/fixtures/tests/_fixtures/test_logger.py index d464d5c..c3d23fb 100644 --- a/lib/fixtures/tests/_fixtures/test_logger.py +++ b/lib/fixtures/tests/_fixtures/test_logger.py @@ -143,3 +143,37 @@ class LogHandlerTest(TestCase, TestWithFixtures): fixture = self.useFixture(LogHandler(self.CustomHandler())) logging.info("some message") self.assertEqual(["some message"], fixture.handler.msgs) + + def test_replace_and_restore_handlers(self): + stream = StringIO() + logger = logging.getLogger() + logger.addHandler(logging.StreamHandler(stream)) + logger.setLevel(logging.INFO) + logging.info("one") + fixture = LogHandler(self.CustomHandler()) + with fixture: + logging.info("two") + logging.info("three") + self.assertEqual(["two"], fixture.handler.msgs) + self.assertEqual("one\nthree\n", stream.getvalue()) + + def test_preserving_existing_handlers(self): + stream = StringIO() + self.logger.addHandler(logging.StreamHandler(stream)) + self.logger.setLevel(logging.INFO) + fixture = LogHandler(self.CustomHandler(), nuke_handlers=False) + with fixture: + logging.info("message") + self.assertEqual(["message"], fixture.handler.msgs) + self.assertEqual("message\n", stream.getvalue()) + + def test_logging_level_restored(self): + self.logger.setLevel(logging.DEBUG) + fixture = LogHandler(self.CustomHandler(), level=logging.WARNING) + with fixture: + # The fixture won't capture this, because the DEBUG level + # is lower than the WARNING one + logging.debug("debug message") + self.assertEqual(logging.WARNING, self.logger.level) + self.assertEqual([], fixture.handler.msgs) + self.assertEqual(logging.DEBUG, self.logger.level) |