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
74
75
|
#
# Copyright (C) 2009-2013 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())
|