From de61bcb80ec4a930b34312f68e35fcba321754f4 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 30 Jan 2016 13:23:35 -0500 Subject: [PATCH] Additional testing for logger component Added an additional test for the logger component the validates the filtering logic of the filters that were created during setup. --- tests/components/test_logger.py | 42 ++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/tests/components/test_logger.py b/tests/components/test_logger.py index 96aecc73a0e..5e3aeda88d3 100644 --- a/tests/components/test_logger.py +++ b/tests/components/test_logger.py @@ -4,22 +4,30 @@ tests.test_logger Tests logger component. """ +from collections import namedtuple import logging import unittest from homeassistant.components import logger +RECORD = namedtuple('record', ('name', 'levelno')) + class TestUpdater(unittest.TestCase): """ Test logger component. """ - def test_logger(self): - """ Uses logger to create a logging filter """ - config = {'logger': - {'default': 'warning', - 'logs': {'test': 'info'}}} + def setUp(self): + """ Create default config """ + self.log_config = {'logger': + {'default': 'warning', 'logs': {'test': 'info'}}} - logger.setup(None, config) + def tearDown(self): + """ Reset logs """ + del logging.root.handlers[-1] + + def test_logger_setup(self): + """ Uses logger to create a logging filter """ + logger.setup(None, self.log_config) self.assertTrue(len(logging.root.handlers) > 0) handler = logging.root.handlers[-1] @@ -29,3 +37,25 @@ class TestUpdater(unittest.TestCase): self.assertEqual(log_filter['default'], logging.WARNING) self.assertEqual(log_filter['logs']['test'], logging.INFO) + + def test_logger_test_filters(self): + """ Tests resulting filter operation """ + logger.setup(None, self.log_config) + + log_filter = logging.root.handlers[-1].filters[0] + + # blocked default record + record = RECORD('asdf', logging.DEBUG) + self.assertFalse(log_filter.filter(record)) + + # allowed default record + record = RECORD('asdf', logging.WARNING) + self.assertTrue(log_filter.filter(record)) + + # blocked named record + record = RECORD('test', logging.DEBUG) + self.assertFalse(log_filter.filter(record)) + + # allowed named record + record = RECORD('test', logging.INFO) + self.assertTrue(log_filter.filter(record))