From 3954aea4aaff79b429b9db9567e0c27f025bdf2d Mon Sep 17 00:00:00 2001 From: Lasse Schuirmann Date: Mon, 25 May 2015 20:08:06 +0200 Subject: [PATCH] LogMessage: Handle non-string messages This will allow anyone to do logging without converting all arguments to str every time, especially the bears can do self.debug(5). Fixes https://github.com/coala-analyzer/coala/issues/556 --- coalib/processes/communication/LogMessage.py | 3 ++- coalib/tests/processes/communication/LogMessageTest.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/coalib/processes/communication/LogMessage.py b/coalib/processes/communication/LogMessage.py index c65832c306..55a4134096 100644 --- a/coalib/processes/communication/LogMessage.py +++ b/coalib/processes/communication/LogMessage.py @@ -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.") diff --git a/coalib/tests/processes/communication/LogMessageTest.py b/coalib/tests/processes/communication/LogMessageTest.py index b728c7fe55..3ab7ff3d96 100644 --- a/coalib/tests/processes/communication/LogMessageTest.py +++ b/coalib/tests/processes/communication/LogMessageTest.py @@ -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")