From 6add99aeef2942b9ab187e7c271f8fca3da3da33 Mon Sep 17 00:00:00 2001 From: Joshua Harrison Date: Thu, 8 Jan 2015 19:58:16 -0800 Subject: [PATCH] Modify the interface between LogSources and LogSinks such that log messages are keyed dictionaries as opposed to tuples. --- anvil/build_logging.py | 14 ++++++++++++-- anvil/build_logging_test.py | 20 ++++++++++++++------ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/anvil/build_logging.py b/anvil/build_logging.py index e3f71df..5848a5b 100644 --- a/anvil/build_logging.py +++ b/anvil/build_logging.py @@ -288,7 +288,12 @@ class LogSource(object): self.log_sinks.append(log_sink) for message in self.buffered_messages: - log_sink.log(message) + log_sink.log({ + 'log_level': message[0], + 'time': message[1], + 'name': message[2], + 'message': message[3] + }) def log_debug(self, message, name=None): """Logs a message at DEBUG log level. @@ -388,7 +393,12 @@ class LogSource(object): """ if self.log_sinks: for log_sink in self.log_sinks: - log_sink.log(message) + log_sink.log({ + 'log_level': message[0], + 'time': message[1], + 'name': message[2], + 'message': message[3] + }) else: self.buffered_messages.append(message) diff --git a/anvil/build_logging_test.py b/anvil/build_logging_test.py index 3c4d4e5..98904cb 100644 --- a/anvil/build_logging_test.py +++ b/anvil/build_logging_test.py @@ -16,6 +16,14 @@ from anvil import enums from anvil import util +def _message(log_level, time, name, message): + return { + 'log_level': log_level, + 'time': time, + 'name': name, + 'message': message + } + class WorkUnitTest(unittest2.TestCase): def testRecordWorkUnits(self): @@ -220,10 +228,10 @@ class LogSourceTest(unittest2.TestCase): log_sink = MagicMock() log_source.add_log_sink(log_sink) expected = [ - call.log((enums.LogLevel.DEBUG, 1, 'bar', '[DEBUG] debug')), - call.log((enums.LogLevel.INFO, 2, 'bar', '[INFO] info')), - call.log((enums.LogLevel.WARNING, 3, 'foo', '[WARNING] warning')), - call.log((enums.LogLevel.ERROR, 4, 'foo', '[ERROR] error')) + call.log(_message(enums.LogLevel.DEBUG, 1, 'bar', '[DEBUG] debug')), + call.log(_message(enums.LogLevel.INFO, 2, 'bar', '[INFO] info')), + call.log(_message(enums.LogLevel.WARNING, 3, 'foo', '[WARNING] warning')), + call.log(_message(enums.LogLevel.ERROR, 4, 'foo', '[ERROR] error')) ] self.assertEquals(expected, log_sink.mock_calls) @@ -232,7 +240,7 @@ class LogSourceTest(unittest2.TestCase): mock_timer.side_effect = [5] log_source.log_debug('debug', 'bar') expected = [ - call.log((enums.LogLevel.DEBUG, 5, 'bar', '[DEBUG] debug')) + call.log(_message(enums.LogLevel.DEBUG, 5, 'bar', '[DEBUG] debug')) ] self.assertEquals(expected, log_sink.mock_calls) @@ -247,7 +255,7 @@ class LogSourceTest(unittest2.TestCase): mock_timer.side_effect = [1] child_source.log_debug('debug', 'foo') expected = [ - call.log((enums.LogLevel.DEBUG, 1, 'foo', '[DEBUG] debug')) + call.log(_message(enums.LogLevel.DEBUG, 1, 'foo', '[DEBUG] debug')) ] self.assertEquals(expected, log_sink.mock_calls)