def test_latest_plain(self): """Test correct return latest plain-log file""" file_info = la.get_latest_logfile_info('./tests/log_plain') self.assertEqual( join('./tests/log_plain', 'nginx-access-ui.log-20190103'), file_info.path) self.assertEqual('20190103', file_info.date.strftime('%Y%m%d'))
def test_get_latest_logfile_info(self): """ Получение последнего лог-файла :return: """ logfile_info = log_analyzer.get_latest_logfile_info(self.log_dir) self.assertEqual( logfile_info.path_to_file, os.path.join(self.log_dir, 'nginx-access-ui.log-20170630.gz')) self.assertEqual(logfile_info.date_file.strftime('%Y.%m.%d'), '2017.06.30') self.assertEqual(logfile_info.format_file, 'gz')
def test_analyze(self): """Check correct analyze test log file""" # file contains 6 correct requests. 2 url's are the same. file_info = la.get_latest_logfile_info('./tests/log_generate_report') data = la.analyse_log_file(file_info.path) sdb = sorted(data, key=lambda p: p['url']) self.assertEqual( 5, len(sdb), msg='Test log file contains 5 corrected unique requests') self.assertEqual(sdb[0]['url'], '1_test_url', msg='Url check') self.assertEqual(sdb[0]['count'], 1, msg='Count check') self.assertAlmostEqual(sdb[0]['time_sum'], 0.5, delta=0.001, msg='Time_sum check') self.assertAlmostEqual(sdb[0]['time_avg'], 0.5, delta=0.001, msg='Time_avg_check') self.assertAlmostEqual(sdb[0]['count_perc'], 100 / 6, delta=0.001, msg='Count_perc check') self.assertAlmostEqual(sdb[0]['time_perc'], 0.5 * 100 / 3, delta=0.001, msg='Time_perc check') self.assertEqual(sdb[4]['url'], '5_double_url', msg='Url check') self.assertEqual(sdb[4]['count'], 2, msg='Count check') self.assertAlmostEqual(sdb[4]['count_perc'], 2 * 100 / 6, delta=0.001, msg='Count_perc check') self.assertAlmostEqual(sdb[4]['time_sum'], 0.5, delta=0.001, msg='Time_sum check') self.assertAlmostEqual(sdb[4]['time_avg'], 0.25, delta=0.001, msg='Time_avg_check') self.assertAlmostEqual(sdb[4]['time_perc'], 0.5 * 100 / 3, delta=0.001, msg='Time_perc check')
def test_no_correct_filename(self): """Test correct return when no valid files names in folder""" file_info = la.get_latest_logfile_info('./tests/log_no_file') self.assertIsNone(file_info.path)
def test_empty_folder(self): """Test correct function return when empty folder""" file_info = la.get_latest_logfile_info('./tests/log_empty') self.assertIsNone(file_info.path) pass
def test_file_format_error(self): """Test error generated when most of lines couldn't be parsed""" file_info = la.get_latest_logfile_info('./tests/log_bad_format') with self.assertRaises(UserWarning): la.analyse_log_file(file_info.path, 40)