Skip to content

Commit

Permalink
LogMessage: Handle non-string messages
Browse files Browse the repository at this point in the history
This will allow anyone to do logging without converting all arguments
to str every time, especially the bears can do self.debug(5).

Fixes #556
  • Loading branch information
sils committed May 25, 2015
1 parent a9ac349 commit 3954aea
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
3 changes: 2 additions & 1 deletion coalib/processes/communication/LogMessage.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ def __init__(self, log_level, *messages, delimiter=" "):
if log_level not in LOG_LEVEL.reverse:
raise ValueError("log_level has to be a valid LOG_LEVEL.")

self.message = str(delimiter).join(messages).rstrip()
str_messages = [str(message) for message in messages]
self.message = str(delimiter).join(str_messages).rstrip()
if self.message == "":
raise ValueError("Empty log messages are not allowed.")

Expand Down
4 changes: 2 additions & 2 deletions coalib/tests/processes/communication/LogMessageTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ def test_construction(self):
self.assertEqual(self.uut.message, "test message")

# see that arguments are processed right
self.uut = LogMessage(LOG_LEVEL.WARNING, " a msg ")
self.uut = LogMessage(LOG_LEVEL.WARNING, " a msg ", 5, " ")
self.assertEqual(self.uut.log_level, LOG_LEVEL.WARNING)
self.assertEqual(self.uut.message, " a msg")
self.assertEqual(self.uut.message, " a msg 5")

self.assertRaises(ValueError, LogMessage, LOG_LEVEL.DEBUG, "")
self.assertRaises(ValueError, LogMessage, 5, "test")
Expand Down

0 comments on commit 3954aea

Please sign in to comment.