Skip to content

Commit b97cb76

Browse files
committed
Merge pull request #139 from nixon/logger_no_msg_handler
dont raise an exception when Logger has no message handler
2 parents e877c7e + 7cd9ed1 commit b97cb76

3 files changed

Lines changed: 49 additions & 1 deletion

File tree

pylibs/ropemode/decorators.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def __call__(self, message, short=None):
1515
self._show(short)
1616

1717
def _show(self, message):
18-
if message is None:
18+
if self.message is None:
1919
print message
2020
else:
2121
self.message(message)

pylibs/ropemode/tests/__init__.py

Whitespace-only changes.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#!/usr/bin/env python
2+
import os
3+
import sys
4+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", ".."))
5+
6+
import unittest
7+
8+
from ropemode.decorators import Logger
9+
10+
11+
class LoggerTests(unittest.TestCase):
12+
def test_Logger_called_with_no_args_doesnt_raise_TypeError(self):
13+
"""
14+
When not initialized with a message display method, Logger
15+
prints the message to stdout without raising an exception.
16+
"""
17+
logger = Logger()
18+
try:
19+
logger("a message")
20+
except TypeError:
21+
self.fail("logger raised TypeError unexpectedly")
22+
23+
24+
class LoggerMessageHandlerTests(unittest.TestCase):
25+
def setUp(self):
26+
self.message = ""
27+
self.logger = Logger()
28+
self.logger.message = self._echo
29+
30+
def _echo(self, message):
31+
self.message += message
32+
33+
def test_message_handler_with_no_short_message(self):
34+
"""Test that message handler is called"""
35+
self.logger("a message")
36+
self.assertEqual(self.message, "a message")
37+
38+
def test_only_short_True(self):
39+
"""Test that only_short=True prints only the short message"""
40+
self.logger.only_short = True
41+
self.logger("a long message", "a short message")
42+
self.assertEqual(self.message, "a short message")
43+
44+
def test_only_short_False(self):
45+
"""Test that only_short=False prints both messages"""
46+
self.logger.only_short = False
47+
self.logger("a long message", "a short message")
48+
self.assertEqual(self.message, "a long messagea short message")

0 commit comments

Comments
 (0)