def test_maybe_do_housekeeping_first_time(self): called = [] reader = LogReader(0, 'log.log', Log4jParser(), FakeReceiver(), progress_file_path_prefix='progress') reader._ensure_file_is_good = lambda: called.append('_ensure_file_is_good') reader._save_progress = lambda: called.append('_save_progress') reader._adjust_loglevel_suppression = lambda: called.append('_adjust_loglevel_suppression') reader._maybe_do_housekeeping(23) self.assertEqual(called, ['_ensure_file_is_good', '_save_progress', '_adjust_loglevel_suppression']) self.assertEqual(reader.last_ensure_file_is_good_call_timestamp, 23) self.assertEqual(reader.last_save_progress_call_timestamp, 23) self.assertEqual(reader.last_adjust_loglevel_suppression_call_timestamp, 23)
def test_run_with_loglevel_suppression(self): with open('log.log', 'wb') as f: f.write('2000-01-01 00:00:00,000 FlowID INFO Thread C.m(C.java:23) Info!\n') f.write('2000-01-01 00:00:01,000 FlowID ERROR Thread C.m(C.java:23) Error!\n') f.write('2000-01-01 00:00:02,000 FlowID TRACE Thread C.m(C.java:23) Trace!\n') f.write('2000-01-01 00:00:03,000 FlowID WARNING Thread C.m(C.java:23) Warning!\n') f.write('2000-01-01 00:00:04,000 FlowID FATAL Thread C.m(C.java:23) Fatal!') f.write('2000-01-01 00:00:05,000 FlowID DEBUG Thread C.m(C.java:23) Debug!') reader = LogReader(0, 'log.log', Log4jParser(), FakeReceiver()) reader.suppressed_log_level = 1 reader._maybe_do_housekeeping = lambda self: None reader.run() self.assertEqual(reader.receiver.entries[0].level, LogLevel.INFO) self.assertEqual(reader.receiver.entries[1].level, LogLevel.ERROR) self.assertEqual(reader.receiver.entries[2].level, LogLevel.WARN) self.assertEqual(reader.receiver.entries[3].level, LogLevel.FATAL) self.assertEqual(reader.receiver.entries[4], 'EOF 0') self.assertEqual(len(reader.receiver.entries), 5)