diff options
Diffstat (limited to 'tests/test_formatter.py')
-rw-r--r-- | tests/test_formatter.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/test_formatter.py b/tests/test_formatter.py new file mode 100644 index 0000000..2c05428 --- /dev/null +++ b/tests/test_formatter.py @@ -0,0 +1,72 @@ +import logging +import logutils +import os +import sys +import unittest + +class FormatterTest(unittest.TestCase): + def setUp(self): + self.common = { + 'name': 'formatter.test', + 'level': logging.DEBUG, + 'pathname': os.path.join('path', 'to', 'dummy.ext'), + 'lineno': 42, + 'exc_info': None, + 'func': None, + 'msg': 'Message with %d %s', + 'args': (2, 'placeholders'), + } + self.variants = { + } + + def get_record(self, name=None): + result = dict(self.common) + if name is not None: + result.update(self.variants[name]) + return logging.makeLogRecord(result) + + def test_percent(self): + "Test %-formatting" + r = self.get_record() + f = logutils.Formatter('${%(message)s}') + self.assertEqual(f.format(r), '${Message with 2 placeholders}') + f = logutils.Formatter('%(random)s') + self.assertRaises(KeyError, f.format, r) + self.assertFalse(f.usesTime()) + f = logutils.Formatter('%(asctime)s') + self.assertTrue(f.usesTime()) + f = logutils.Formatter('asctime') + self.assertFalse(f.usesTime()) + + if sys.version_info[:2] >= (2, 6): + def test_braces(self): + "Test {}-formatting" + r = self.get_record() + f = logutils.Formatter('$%{message}%$', style='{') + self.assertEqual(f.format(r), '$%Message with 2 placeholders%$') + f = logutils.Formatter('{random}', style='{') + self.assertRaises(KeyError, f.format, r) + self.assertFalse(f.usesTime()) + f = logutils.Formatter('{asctime}', style='{') + self.assertTrue(f.usesTime()) + f = logutils.Formatter('asctime', style='{') + self.assertFalse(f.usesTime()) + + def test_dollars(self): + "Test $-formatting" + r = self.get_record() + f = logutils.Formatter('$message', style='$') + self.assertEqual(f.format(r), 'Message with 2 placeholders') + f = logutils.Formatter('$$%${message}%$$', style='$') + self.assertEqual(f.format(r), '$%Message with 2 placeholders%$') + f = logutils.Formatter('${random}', style='$') + self.assertRaises(KeyError, f.format, r) + self.assertFalse(f.usesTime()) + f = logutils.Formatter('${asctime}', style='$') + self.assertTrue(f.usesTime()) + f = logutils.Formatter('$asctime', style='$') + self.assertTrue(f.usesTime()) + f = logutils.Formatter('asctime', style='$') + self.assertFalse(f.usesTime()) + + |