def test_ensure_file_is_good_file_is_good(self): with open('log.log', 'wb') as f: f.write('Some file contents!') f.seek(10) reader = LogReader(0, 'log.log', Log4jParser(), FakeReceiver()) reader.logfile = f reader.logfile_id = get_device_and_inode_string(os.fstat(f.fileno())) reader._ensure_file_is_good() self.assertFalse(f.closed) self.assertEqual(reader.logfile, f) self.assertEqual(f.tell(), 10) self.assertEqual(self.fake_logging.log, [])
def test_ensure_file_is_good_file_has_been_rotated(self): with open('log.log', 'wb') as f: f.write('Some file contents!') reader = LogReader(0, 'log.log', Log4jParser(), FakeReceiver()) reader.logfile = f reader.logfile_id = 'not matching' reader._ensure_file_is_good() self.assertTrue(f.closed) self.assertNotEqual(reader.logfile, f) self.assertFalse(reader.logfile.closed) self.assertEqual(reader.logfile.readline(), 'Some file contents!') self.assertEqual(self.fake_logging.log, ['[INFO] The file log.log has been rotated.', '[INFO] Closed log.log.', '[INFO] Opened log.log.'])
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_ensure_file_is_good_file_does_not_exist(self): reader = LogReader(0, 'no.such.file', Log4jParser(), FakeReceiver()) reader._ensure_file_is_good() self.assertEqual(self.fake_logging.log, ['[INFO] The file no.such.file has been removed.'])