diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2011-01-24 10:59:31 +0000 |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2011-01-24 10:59:31 +0000 |
commit | d108c4c729ac945d48ca4b9d5ebeb5f790d3d983 (patch) | |
tree | 53a0aa33a4366041da56138c07c652d8f4cc12f8 /tests | |
parent | 14f26112d8088fa84072b3c0a18878ead768bd69 (diff) | |
download | logutils-d108c4c729ac945d48ca4b9d5ebeb5f790d3d983.tar.gz |
More changes for 0.3.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_formatter.py | 72 | ||||
-rw-r--r-- | tests/test_messages.py | 35 |
2 files changed, 107 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()) + + diff --git a/tests/test_messages.py b/tests/test_messages.py new file mode 100644 index 0000000..6ceed42 --- /dev/null +++ b/tests/test_messages.py @@ -0,0 +1,35 @@ +import logutils +import sys +import unittest + +class MessageTest(unittest.TestCase): + if sys.version_info[:2] >= (2, 6): + def test_braces(self): + "Test whether brace-formatting works." + __ = logutils.BraceMessage + m = __('Message with {0} {1}', 2, 'placeholders') + self.assertEqual(str(m), 'Message with 2 placeholders') + m = __('Message with {0:d} {1}', 2, 'placeholders') + self.assertEqual(str(m), 'Message with 2 placeholders') + m = __('Message without {0:x} {1}', 16, 'placeholders') + self.assertEqual(str(m), 'Message without 10 placeholders') + + class Dummy: + pass + + dummy = Dummy() + dummy.x, dummy.y = 0.0, 1.0 + m = __('Message with coordinates: ({point.x:.2f}, {point.y:.2f})', + point=dummy) + self.assertEqual(str(m), 'Message with coordinates: (0.00, 1.00)') + + def test_dollars(self): + "Test whether dollar-formatting works." + __ = logutils.DollarMessage + m = __('Message with $num ${what}', num=2, what='placeholders') + self.assertEqual(str(m), 'Message with 2 placeholders') + ignored = object() + self.assertRaises(TypeError, __, 'Message with $num ${what}', + ignored, num=2, what='placeholders') + + |