aboutsummaryrefslogtreecommitdiffstats
path: root/tests/panels/test_logging.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/panels/test_logging.py')
-rw-r--r--tests/panels/test_logging.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/panels/test_logging.py b/tests/panels/test_logging.py
new file mode 100644
index 0000000..342e673
--- /dev/null
+++ b/tests/panels/test_logging.py
@@ -0,0 +1,50 @@
+from __future__ import absolute_import, unicode_literals
+
+import logging
+
+from debug_toolbar.panels.logging import MESSAGE_IF_STRING_REPRESENTATION_INVALID
+
+from ..base import BaseTestCase
+
+
+class LoggingPanelTestCase(BaseTestCase):
+
+ def setUp(self):
+ super(LoggingPanelTestCase, self).setUp()
+ self.panel = self.toolbar.get_panel_by_id('LoggingPanel')
+ self.logger = logging.getLogger(__name__)
+
+ def test_happy_case(self):
+ self.logger.info('Nothing to see here, move along!')
+
+ self.panel.process_response(self.request, self.response)
+ records = self.panel.get_stats()['records']
+
+ self.assertEqual(1, len(records))
+ self.assertEqual('Nothing to see here, move along!',
+ records[0]['message'])
+
+ def test_formatting(self):
+ self.logger.info('There are %d %s', 5, 'apples')
+
+ self.panel.process_response(self.request, self.response)
+ records = self.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!')
+
+ # should not raise exception, but fail silently
+ self.logger.debug('This class is misbehaving: %s', BadClass())
+
+ self.panel.process_response(self.request, self.response)
+ records = self.panel.get_stats()['records']
+
+ self.assertEqual(1, len(records))
+ self.assertEqual(MESSAGE_IF_STRING_REPRESENTATION_INVALID,
+ records[0]['message'])