aboutsummaryrefslogtreecommitdiffstats
path: root/tests/panels/test_logger.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/panels/test_logger.py')
-rw-r--r--tests/panels/test_logger.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/panels/test_logger.py b/tests/panels/test_logger.py
new file mode 100644
index 0000000..477d100
--- /dev/null
+++ b/tests/panels/test_logger.py
@@ -0,0 +1,53 @@
+from __future__ import unicode_literals
+
+import logging
+
+from debug_toolbar.panels.logger import (
+ LoggingPanel, MESSAGE_IF_STRING_REPRESENTATION_INVALID)
+
+from ..base import BaseTestCase
+
+
+class LoggingPanelTestCase(BaseTestCase):
+
+ def test_happy_case(self):
+ logger = logging.getLogger(__name__)
+ logger.info('Nothing to see here, move along!')
+
+ logging_panel = self.toolbar.get_panel(LoggingPanel)
+ logging_panel.process_response(None, None)
+ records = logging_panel.get_stats()['records']
+
+ self.assertEqual(1, len(records))
+ self.assertEqual('Nothing to see here, move along!',
+ records[0]['message'])
+
+ def test_formatting(self):
+ logger = logging.getLogger(__name__)
+ logger.info('There are %d %s', 5, 'apples')
+
+ logging_panel = self.toolbar.get_panel(LoggingPanel)
+ logging_panel.process_response(None, None)
+ records = logging_panel.get_stats()['records']
+
+ self.assertEqual(1, len(records))
+ self.assertEqual('There are 5 apples',
+ records[0]['message'])
+
+ def test_failing_formatting(self):
+ class BadClass(object):
+ def __str__(self):
+ raise Exception('Please not stringify me!')
+
+ logger = logging.getLogger(__name__)
+
+ # should not raise exception, but fail silently
+ logger.debug('This class is misbehaving: %s', BadClass())
+
+ logging_panel = self.toolbar.get_panel(LoggingPanel)
+ logging_panel.process_response(None, None)
+ records = logging_panel.get_stats()['records']
+
+ self.assertEqual(1, len(records))
+ self.assertEqual(MESSAGE_IF_STRING_REPRESENTATION_INVALID,
+ records[0]['message'])