def testEmitEmptyEphemeral_closesEphemeralState(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('BOO! %(message)s')) handler.emit(make_ephemeral_record(logging.INFO, 'hi')) handler.emit(make_ephemeral_record(logging.INFO, '')) self.assertEqual('hi\n', stream.getvalue())
def testLogErrorToTerminal_isRed(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('BOO! %(message)s')) handler.emit(make_record(logging.ERROR, 'hi')) self.assertEqual(util.Ansi.RED + 'BOO! hi\n' + util.Ansi.RESET, stream.getvalue())
def testLogEphemeralAndNormal_ressurectsEphemeralRecord(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('BOO! %(message)s')) handler.emit(make_ephemeral_record(logging.INFO, 'hi')) handler.emit(make_record(logging.INFO, 'yo')) self.assertEqual('hi\r \rBOO! yo\nhi', stream.getvalue())
def testLogEphemeralTwice_overwritesPreviousLine(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('BOO! %(message)s')) handler.emit(make_ephemeral_record(logging.INFO, 'hi')) handler.emit(make_ephemeral_record(logging.INFO, 'hi')) self.assertEqual('hi\r \rhi', stream.getvalue())
def testCloseEphemeralAndLogNormal_doesntRessurect(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('BOO! %(message)s')) handler.emit(make_ephemeral_record(logging.INFO, 'hi')) handler.emit(make_ephemeral_record(logging.INFO, '')) handler.emit(make_record(logging.INFO, 'yo')) self.assertEqual('hi\nBOO! yo\n', stream.getvalue())
def testLogEphemeral_doesntCallFormatterOrInsertLineFeed(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('BOO! %(message)s')) handler.emit(make_ephemeral_record(logging.INFO, 'hi')) self.assertEqual('hi', stream.getvalue())
def testLogInfoToTerminal_doesNothingFancy(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('BOO! %(message)s')) handler.emit(make_record(logging.INFO, 'hi')) self.assertEqual('BOO! hi\n', stream.getvalue())
def testLogEphemeralOnNonTerminal_doesNothing(self): stream = six.StringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('%(message)s')) handler.emit(make_ephemeral_record(logging.INFO, 'hi')) self.assertEqual('', stream.getvalue())
def testLogAnsiCodesWhenLoggingToATerminal_keepsAnsiCodes(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('%(message)s')) handler.emit(make_record(logging.INFO, util.Ansi.RED + 'hi')) self.assertEqual(util.Ansi.RED + 'hi\n', stream.getvalue())
def testCloseEphemeralWithNoEphemeralState_doesNothing(self): stream = TerminalStringIO() handler = util.LogHandler(stream) handler.setFormatter(logging.Formatter('BOO! %(message)s')) handler.emit(make_ephemeral_record(logging.INFO, '')) self.assertEqual('', stream.getvalue())