def test_log_entries_details_after(self): # noinspection PyTypeChecker log_manager = ExecuteLogManager() message1 = u'Message 1' message2 = u'Downloaded 1' message3 = u'Failed 1' finish_time_1 = datetime.now(pytz.utc) log_manager.started(finish_time_1) log_manager.log_entry(message1, 'info') entries = log_manager.get_execute_log_details(1) self.assertEqual(len(entries), 1) self.assertEqual(entries[0]['level'], 'info') self.assertEqual(entries[0]['message'], message1) log_manager.log_entry(message2, 'downloaded') log_manager.log_entry(message3, 'failed') log_manager.finished(finish_time_1, None) entries = log_manager.get_execute_log_details(1, after=entries[0]['id']) self.assertEqual(len(entries), 2) self.assertEqual(entries[0]['level'], 'downloaded') self.assertEqual(entries[0]['message'], message2) self.assertEqual(entries[1]['level'], 'failed') self.assertEqual(entries[1]['message'], message3)
def test_log_entries_details_after(self): log_manager = ExecuteLogManager() message1 = u'Message 1' message2 = u'Downloaded 1' message3 = u'Failed 1' finish_time_1 = datetime.now(pytz.utc) log_manager.started(finish_time_1) log_manager.log_entry(message1, 'info') entries = log_manager.get_execute_log_details(1) self.assertEqual(len(entries), 1) self.assertEqual(entries[0]['level'], 'info') self.assertEqual(entries[0]['message'], message1) log_manager.log_entry(message2, 'downloaded') log_manager.log_entry(message3, 'failed') log_manager.finished(finish_time_1, None) entries = log_manager.get_execute_log_details(1, after=entries[0]['id']) self.assertEqual(len(entries), 2) self.assertEqual(entries[0]['level'], 'downloaded') self.assertEqual(entries[0]['message'], message2) self.assertEqual(entries[1]['level'], 'failed') self.assertEqual(entries[1]['message'], message3)
def test_remove_old_entries_keep_all(self): # noinspection PyTypeChecker log_manager = ExecuteLogManager() now = datetime.now(pytz.utc) message11 = u'Message 1' start1 = now - timedelta(days=9) log_manager.started(start1) log_manager.log_entry(message11 + ' 1', 'info') log_manager.finished(start1, None) start2 = now - timedelta(days=8) log_manager.started(start2) log_manager.log_entry(message11 + ' 2', 'info') log_manager.finished(start2, None) log_manager.remove_old_entries(10) entries, count = log_manager.get_log_entries(0, 10) self.assertEqual(count, 2) self.assertEqual(len(entries), 2) self.assertEqual(entries[0]['start_time'], start2) self.assertEqual(entries[0]['finish_time'], start2) self.assertEqual(entries[1]['start_time'], start1) self.assertEqual(entries[1]['finish_time'], start1) execute_id = entries[0]['id'] details = log_manager.get_execute_log_details(execute_id) self.assertEqual(len(details), 1) self.assertEqual(details[0]['level'], 'info') self.assertEqual(details[0]['message'], message11 + ' 2') execute_id = entries[1]['id'] details = log_manager.get_execute_log_details(execute_id) self.assertEqual(len(details), 1) self.assertEqual(details[0]['level'], 'info') self.assertEqual(details[0]['message'], message11 + ' 1')
def test_remove_old_entries_keep_all(self): log_manager = ExecuteLogManager() now = datetime.now(pytz.utc) message11 = u'Message 1' start1 = now - timedelta(days=9) log_manager.started(start1) log_manager.log_entry(message11 + ' 1', 'info') log_manager.finished(start1, None) start2 = now - timedelta(days=8) log_manager.started(start2) log_manager.log_entry(message11 + ' 2', 'info') log_manager.finished(start2, None) log_manager.remove_old_entries(10) entries, count = log_manager.get_log_entries(0, 10) self.assertEqual(count, 2) self.assertEqual(len(entries), 2) self.assertEqual(entries[0]['start_time'], start2) self.assertEqual(entries[0]['finish_time'], start2) self.assertEqual(entries[1]['start_time'], start1) self.assertEqual(entries[1]['finish_time'], start1) execute_id = entries[0]['id'] details = log_manager.get_execute_log_details(execute_id) self.assertEqual(len(details), 1) self.assertEqual(details[0]['level'], 'info') self.assertEqual(details[0]['message'], message11 + ' 2') execute_id = entries[1]['id'] details = log_manager.get_execute_log_details(execute_id) self.assertEqual(len(details), 1) self.assertEqual(details[0]['level'], 'info') self.assertEqual(details[0]['message'], message11 + ' 1')
def test_log_entries_details_multiple_execute(self): # noinspection PyTypeChecker log_manager = ExecuteLogManager() message11 = u'Message 1' message12 = u'Downloaded 1' message13 = u'Failed 1' message21 = u'Failed 2' message22 = u'Downloaded 2' message23 = u'Message 2' finish_time_1 = datetime.now(pytz.utc) finish_time_2 = datetime.now(pytz.utc) + timedelta(minutes=60) log_manager.started(finish_time_1) log_manager.log_entry(message11, 'info') log_manager.log_entry(message12, 'downloaded') log_manager.log_entry(message13, 'failed') log_manager.finished(finish_time_1, None) log_manager.started(finish_time_2) log_manager.log_entry(message21, 'failed') log_manager.log_entry(message22, 'downloaded') log_manager.log_entry(message23, 'info') log_manager.finished(finish_time_2, None) entries = log_manager.get_execute_log_details(1) self.assertEqual(len(entries), 3) self.assertEqual(entries[0]['level'], 'info') self.assertEqual(entries[1]['level'], 'downloaded') self.assertEqual(entries[2]['level'], 'failed') self.assertEqual(entries[0]['message'], message11) self.assertEqual(entries[1]['message'], message12) self.assertEqual(entries[2]['message'], message13) entries = log_manager.get_execute_log_details(2) self.assertEqual(len(entries), 3) self.assertEqual(entries[0]['level'], 'failed') self.assertEqual(entries[1]['level'], 'downloaded') self.assertEqual(entries[2]['level'], 'info') self.assertEqual(entries[0]['message'], message21) self.assertEqual(entries[1]['message'], message22) self.assertEqual(entries[2]['message'], message23)
def test_log_entries_details_multiple_execute(self): log_manager = ExecuteLogManager() message11 = u'Message 1' message12 = u'Downloaded 1' message13 = u'Failed 1' message21 = u'Failed 2' message22 = u'Downloaded 2' message23 = u'Message 2' finish_time_1 = datetime.now(pytz.utc) finish_time_2 = datetime.now(pytz.utc) + timedelta(minutes=60) log_manager.started(finish_time_1) log_manager.log_entry(message11, 'info') log_manager.log_entry(message12, 'downloaded') log_manager.log_entry(message13, 'failed') log_manager.finished(finish_time_1, None) log_manager.started(finish_time_2) log_manager.log_entry(message21, 'failed') log_manager.log_entry(message22, 'downloaded') log_manager.log_entry(message23, 'info') log_manager.finished(finish_time_2, None) entries = log_manager.get_execute_log_details(1) self.assertEqual(len(entries), 3) self.assertEqual(entries[0]['level'], 'info') self.assertEqual(entries[1]['level'], 'downloaded') self.assertEqual(entries[2]['level'], 'failed') self.assertEqual(entries[0]['message'], message11) self.assertEqual(entries[1]['message'], message12) self.assertEqual(entries[2]['message'], message13) entries = log_manager.get_execute_log_details(2) self.assertEqual(len(entries), 3) self.assertEqual(entries[0]['level'], 'failed') self.assertEqual(entries[1]['level'], 'downloaded') self.assertEqual(entries[2]['level'], 'info') self.assertEqual(entries[0]['message'], message21) self.assertEqual(entries[1]['message'], message22) self.assertEqual(entries[2]['message'], message23)
def test_remove_old_entries(self): # noinspection PyTypeChecker log_manager = ExecuteLogManager() now = datetime.now(pytz.utc) message11 = u'Message 1' start1 = now - timedelta(days=13) log_manager.started(start1) log_manager.log_entry(message11 + ' 1', 'info') log_manager.finished(start1, None) start2 = now - timedelta(days=12) log_manager.started(start2) log_manager.log_entry(message11 + ' 2', 'info') log_manager.finished(start2, None) start3 = now - timedelta(days=11) log_manager.started(start3) log_manager.log_entry(message11 + ' 3', 'info') log_manager.finished(start3, None) # This should be deleted as well it was exactly 10 days before start4 = now - timedelta(days=10) log_manager.started(start4) log_manager.log_entry(message11 + ' 4', 'info') log_manager.finished(start4, None) start5 = now - timedelta(days=5) log_manager.started(start5) log_manager.log_entry(message11 + ' 5', 'info') log_manager.log_entry(message11 + ' 6', 'info') log_manager.finished(start5, None) log_manager.remove_old_entries(10) entries, count = log_manager.get_log_entries(0, 10) self.assertEqual(count, 1) self.assertEqual(len(entries), 1) self.assertEqual(entries[0]['start_time'], start5) self.assertEqual(entries[0]['finish_time'], start5) execute_id = entries[0]['id'] details = log_manager.get_execute_log_details(execute_id) self.assertEqual(len(details), 2) self.assertEqual(details[0]['level'], 'info') self.assertEqual(details[0]['message'], message11 + ' 5') self.assertEqual(details[1]['level'], 'info') self.assertEqual(details[1]['message'], message11 + ' 6')
def test_remove_old_entries(self): log_manager = ExecuteLogManager() now = datetime.now(pytz.utc) message11 = u'Message 1' start1 = now - timedelta(days=13) log_manager.started(start1) log_manager.log_entry(message11 + ' 1', 'info') log_manager.finished(start1, None) start2 = now - timedelta(days=12) log_manager.started(start2) log_manager.log_entry(message11 + ' 2', 'info') log_manager.finished(start2, None) start3 = now - timedelta(days=11) log_manager.started(start3) log_manager.log_entry(message11 + ' 3', 'info') log_manager.finished(start3, None) # This should be deleted as well it was exactly 10 days before start4 = now - timedelta(days=10) log_manager.started(start4) log_manager.log_entry(message11 + ' 4', 'info') log_manager.finished(start4, None) start5 = now - timedelta(days=5) log_manager.started(start5) log_manager.log_entry(message11 + ' 5', 'info') log_manager.log_entry(message11 + ' 6', 'info') log_manager.finished(start5, None) log_manager.remove_old_entries(10) entries, count = log_manager.get_log_entries(0, 10) self.assertEqual(count, 1) self.assertEqual(len(entries), 1) self.assertEqual(entries[0]['start_time'], start5) self.assertEqual(entries[0]['finish_time'], start5) execute_id = entries[0]['id'] details = log_manager.get_execute_log_details(execute_id) self.assertEqual(len(details), 2) self.assertEqual(details[0]['level'], 'info') self.assertEqual(details[0]['message'], message11 + ' 5') self.assertEqual(details[1]['level'], 'info') self.assertEqual(details[1]['message'], message11 + ' 6')