aboutsummaryrefslogtreecommitdiffstats
path: root/tests/panels/test_logging.py
diff options
context:
space:
mode:
authorAymeric Augustin2013-11-24 10:42:43 +0100
committerAymeric Augustin2013-11-24 11:01:44 +0100
commitfe3df822111d3b56000deca354b0bceed7bde9cc (patch)
tree8fe21689037cd975f83e7f70480b96e0ba2e3b6a /tests/panels/test_logging.py
parent7d24008ac3d70796c1502215c665311d2f21d6fd (diff)
downloaddjango-debug-toolbar-fe3df822111d3b56000deca354b0bceed7bde9cc.tar.bz2
Rename all panels consistently.
Enforce absolute imports to avoid clashing with built-in package names. Thanks Jannis for his feedback.
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'])