1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#
# Copyright (C) 2009-2017 Vinay Sajip. See LICENSE.txt for details.
#
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())
|