summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2011-01-24 10:59:31 +0000
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2011-01-24 10:59:31 +0000
commitd108c4c729ac945d48ca4b9d5ebeb5f790d3d983 (patch)
tree53a0aa33a4366041da56138c07c652d8f4cc12f8 /tests
parent14f26112d8088fa84072b3c0a18878ead768bd69 (diff)
downloadlogutils-d108c4c729ac945d48ca4b9d5ebeb5f790d3d983.tar.gz
More changes for 0.3.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_formatter.py72
-rw-r--r--tests/test_messages.py35
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')
+
+