diff --git a/pre_commit/logging_handler.py b/pre_commit/logging_handler.py index 11736d1b..70b61e73 100644 --- a/pre_commit/logging_handler.py +++ b/pre_commit/logging_handler.py @@ -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): diff --git a/tests/logging_handler_test.py b/tests/logging_handler_test.py new file mode 100644 index 00000000..d2fed418 --- /dev/null +++ b/tests/logging_handler_test.py @@ -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', + )