Modify the interface between LogSources and LogSinks such that log

messages are keyed dictionaries as opposed to tuples.
This commit is contained in:
Joshua Harrison 2015-01-08 19:58:16 -08:00
parent a1165e3f90
commit 6add99aeef
2 changed files with 26 additions and 8 deletions

View File

@ -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)

View File

@ -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)