Merge pull request #67 from pre-commit/logging_handler_26_compat_66

LoggingHandler 2.6 compat
This commit is contained in:
Anthony Sottile 2014-04-07 17:08:55 -07:00
commit f31f092f9b
2 changed files with 39 additions and 1 deletions

View file

@ -16,7 +16,7 @@ LOG_LEVEL_COLORS = {
class LoggingHandler(logging.Handler):
def __init__(self, use_color):
super(LoggingHandler, self).__init__()
logging.Handler.__init__(self)
self.use_color = use_color
def emit(self, record):

View file

@ -0,0 +1,38 @@
import __builtin__
import mock
import pytest
from pre_commit import color
from pre_commit.logging_handler import LoggingHandler
@pytest.yield_fixture
def print_mock():
with mock.patch.object(__builtin__, 'print', autospec=True) as print_mock:
yield print_mock
class FakeLogRecord(object):
def __init__(self, message, levelname, levelno):
self.message = message
self.levelname = levelname
self.levelno = levelno
def getMessage(self):
return self.message
def test_logging_handler_color(print_mock):
handler = LoggingHandler(True)
handler.emit(FakeLogRecord('hi', 'WARNING', 30))
print_mock.assert_called_once_with(
color.YELLOW + '[WARNING]' + color.NORMAL + ' hi',
)
def test_logging_handler_no_color(print_mock):
handler = LoggingHandler(False)
handler.emit(FakeLogRecord('hi', 'WARNING', 30))
print_mock.assert_called_once_with(
'[WARNING] hi',
)