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'))
示例#2
0
 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)