def test_log_entries_paging(self): # noinspection PyTypeChecker log_manager = ExecuteLogManager() finish_time_1 = datetime.now(pytz.utc) finish_time_2 = finish_time_1 + timedelta(seconds=10) finish_time_3 = finish_time_2 + timedelta(seconds=10) log_manager.started(finish_time_1) log_manager.log_entry(u'Message 1', 'info') log_manager.finished(finish_time_1, None) log_manager.started(finish_time_2) log_manager.log_entry(u'Download 2', 'downloaded') log_manager.finished(finish_time_2, None) log_manager.started(finish_time_3) log_manager.log_entry(u'Failed 3', 'failed') log_manager.finished(finish_time_3, None) entries, count = log_manager.get_log_entries(0, 1) self.assertEqual(len(entries), 1) self.assertEqual(count, 3) execute = entries[0] self.assertEqual(execute['downloaded'], 0) self.assertEqual(execute['failed'], 1) self.assertEqual(execute['status'], 'finished') entries, count = log_manager.get_log_entries(1, 1) self.assertEqual(len(entries), 1) self.assertEqual(count, 3) execute = entries[0] self.assertEqual(execute['downloaded'], 1) self.assertEqual(execute['failed'], 0) self.assertEqual(execute['status'], 'finished') entries, count = log_manager.get_log_entries(2, 1) self.assertEqual(len(entries), 1) self.assertEqual(count, 3) execute = entries[0] self.assertEqual(execute['downloaded'], 0) self.assertEqual(execute['failed'], 0) self.assertEqual(execute['status'], 'finished')
def test_log_entries_paging(self): log_manager = ExecuteLogManager() finish_time_1 = datetime.now(pytz.utc) finish_time_2 = finish_time_1 + timedelta(seconds=10) finish_time_3 = finish_time_2 + timedelta(seconds=10) log_manager.started(finish_time_1) log_manager.log_entry(u'Message 1', 'info') log_manager.finished(finish_time_1, None) log_manager.started(finish_time_2) log_manager.log_entry(u'Download 2', 'downloaded') log_manager.finished(finish_time_2, None) log_manager.started(finish_time_3) log_manager.log_entry(u'Failed 3', 'failed') log_manager.finished(finish_time_3, None) entries, count = log_manager.get_log_entries(0, 1) self.assertEqual(len(entries), 1) self.assertEqual(count, 3) execute = entries[0] self.assertEqual(execute['downloaded'], 0) self.assertEqual(execute['failed'], 1) self.assertEqual(execute['status'], 'finished') entries, count = log_manager.get_log_entries(1, 1) self.assertEqual(len(entries), 1) self.assertEqual(count, 3) execute = entries[0] self.assertEqual(execute['downloaded'], 1) self.assertEqual(execute['failed'], 0) self.assertEqual(execute['status'], 'finished') entries, count = log_manager.get_log_entries(2, 1) self.assertEqual(len(entries), 1) self.assertEqual(count, 3) execute = entries[0] self.assertEqual(execute['downloaded'], 0) self.assertEqual(execute['failed'], 0) self.assertEqual(execute['status'], 'finished')
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')
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(self): log_manager = ExecuteLogManager() log_manager.started(datetime.now(pytz.utc)) log_manager.log_entry(u'Message 1', 'info') log_manager.log_entry(u'Message 2', 'downloaded') log_manager.log_entry(u'Message 3', 'downloaded') log_manager.log_entry(u'Message 4', 'failed') log_manager.log_entry(u'Message 5', 'failed') log_manager.log_entry(u'Message 6', 'failed') log_manager.finished(datetime.now(pytz.utc), None) entries, count = log_manager.get_log_entries(0, 5) self.assertEqual(len(entries), 1) self.assertEqual(count, 1) self.assertEqual(entries[0]['downloaded'], 2) self.assertEqual(entries[0]['failed'], 3) execute = entries[0] self.assertEqual(execute['status'], 'finished')