Example #1
0
 def test_read_multiple_more_than_total(self):
     '''Reading multiple logs from a file with less logs than required
     should just return the number of logs available.'''
     logfile = self.create_logfile()
     logfile.write(json.dumps({'log_entry': 1}) + '\n')
     logfile.flush()
     [log] = read_logs(logfile, 2)
     self.assertEqual(log, {'log_entry': 1})
Example #2
0
 def test_read_single_equal_to_total(self):
     '''Reading a single log from a file with a single log should just
     return that log.'''
     logfile = self.create_logfile()
     logfile.write(json.dumps({'log_entry': 1}) + '\n')
     logfile.flush()
     [log] = read_logs(logfile, 1)
     self.assertEqual(log, {'log_entry': 1})
Example #3
0
    def test_read_single_log_bigger_than_buffer(self):
        '''If a single log entry is greater than the buffer size, it should
        still read the log entry correctly.'''
        logfile = self.create_logfile()
        logfile.write(json.dumps({'log_entry': 1}) + '\n')
        logfile.flush()

        [log] = read_logs(logfile, 2, buf=1)
        self.assertEqual(log, {'log_entry': 1})
Example #4
0
 def test_read_single_less_than_total(self):
     '''Reading a single log from a file with multiple logs should only
     return the last written log.'''
     logfile = self.create_logfile()
     logfile.write(json.dumps({'log_entry': 1}) + '\n')
     logfile.write(json.dumps({'log_entry': 2}) + '\n')
     logfile.flush()
     [log] = read_logs(logfile, 1)
     self.assertEqual(log, {'log_entry': 2})
Example #5
0
    def test_read_log_incomplete_last_entry(self):
        '''If the last log entry does not end in a new line, then discard
        it.'''
        logfile = self.create_logfile()
        logfile.write(json.dumps({'log_entry': 1}) + '\n')
        logfile.write(json.dumps({'log_entry': 2}))
        logfile.flush()

        [log] = read_logs(logfile, 2, buf=1)
        self.assertEqual(log, {'log_entry': 1})
Example #6
0
 def test_read_multiple_equal_than_total(self):
     '''Reading multiple logs from a file with the required amount of logs
     should just return the all of logs available.'''
     logfile = self.create_logfile()
     logfile.write(json.dumps({'log_entry': 1}) + '\n')
     logfile.write(json.dumps({'log_entry': 2}) + '\n')
     logfile.flush()
     [log1, log2] = read_logs(logfile, 2)
     self.assertEqual(log1, {'log_entry': 2})
     self.assertEqual(log2, {'log_entry': 1})
Example #7
0
 def get_logs(self, n):
     '''Returns the last `n` logs. If `n` is greater than the configured
     limit, only returns the configured limit amount of logs. If `n` is
     None, returns the configured limit amount of logs.'''
     if n is None:
         n = self.config.max_logs
     n = min(n, self.config.max_logs)
     logfile = self.transport_worker.getServiceNamed(
         'Junebug Worker Logger').logfile
     return read_logs(logfile, n)
Example #8
0
 def test_read_multiple_less_than_total(self):
     '''Reading multiple logs from a file with more logs than required
     should just return the required number of logs.'''
     logfile = self.create_logfile()
     logfile.write(json.dumps({'log_entry': 1}) + '\n')
     logfile.write(json.dumps({'log_entry': 2}) + '\n')
     logfile.write(json.dumps({'log_entry': 3}) + '\n')
     logfile.flush()
     [log1, log2] = read_logs(logfile, 2)
     self.assertEqual(log1, {'log_entry': 3})
     self.assertEqual(log2, {'log_entry': 2})
Example #9
0
    def test_read_logs_from_multiple_files_less_than_available(self):
        '''If there are not enough logs in the current log, it should check
        the rotated log files for more logs. Total logs less than to required
        logs.'''
        logfile = self.create_logfile()
        logfile.write(json.dumps({'log_entry': 1}) + '\n')
        logfile.rotate()
        logfile.write(json.dumps({'log_entry': 2}) + '\n')
        logfile.flush()

        [log1, log2] = read_logs(logfile, 3)
        self.assertEqual(log1, {'log_entry': 2})
        self.assertEqual(log2, {'log_entry': 1})
Example #10
0
 def test_read_empty_log(self):
     '''Reading an empty log should return an empty list.'''
     logfile = self.create_logfile()
     logs = read_logs(logfile, 10)
     self.assertEqual(logs, [])