def test_get_report(self): """ Test get report merged from multiple files into one """ # arrange vals = { (datetime(2018, 4, 5), datetime(2018, 4, 5, 23, 59, 59)): { 'module_1': { 'a': 1, 'c': 1 }, 'module_2': { 'x': 1, 'y': 2 } }, (datetime(2018, 4, 4), datetime(2018, 4, 4, 23, 59, 59)): { 'module_1': { 'b': 2, 'c': 2 }, 'module_2': { 'x': 2 } } } def side_effect(*args): return vals[args] mock_report_builder = report_builder.ErrorReportBuilder('env', 'user', 'password') mock_report_builder.build_report = mock.MagicMock(side_effect=side_effect) qed1week = reporter.ErrorCompareReporter('env', datetime.today(), 'safeid_user', 'safeid_password', 'smtp_user', 'smtp_password') dates = [ (datetime(2018, 4, 5), datetime(2018, 4, 5, 23, 59, 59)), (datetime(2018, 4, 4), datetime(2018, 4, 4, 23, 59, 59)) ] # act report = qed1week._get_report(mock_report_builder, dates) # assert self.assertEqual(report, { 'module_1': { 'a': [1], 'b': [2], 'c': [1, 2] }, 'module_2': { 'x': [1, 2], 'y': [2] } })
def test_build_report_report_exist(self, mock_open, mock_pickle, mock_os): # arrange builder = report_builder.ErrorReportBuilder('some_env', 'user', 'password') builder._get_history_data_path = mock.MagicMock(return_value='history_data') mock_os.path.join.return_value = 'path_exists' mock_os.path.isfile.return_value = True mock_pickle.load.return_value = { 'module': { 'key': 1 } } mock_open.return_value = True start_time = datetime(2018, 4, 8) end_time = datetime(2018, 4, 8, 23, 59, 59) # act report = builder.build_report(start_time, end_time) # assert self.assertEqual(report, { 'module': { 'key': 1 } }) mock_os.path.join.assert_called_with('history_data', '2018_04_08_00_00__2018_04_08_23_59.pkl') mock_os.path.isfile.assert_called_with('path_exists') mock_open.assert_called_with('path_exists', 'rb') mock_pickle.load.assert_called_with(True)
def test_process_html(self): # arrange builder = report_builder.ErrorReportBuilder('some_env', 'user', 'password') html_path = os.path.join( os.path.dirname(inspect.getfile(self.__class__)), 'test_fixture', 'sample_errorgui_page.html') with open(html_path, 'r') as f: content = f.read() html = pq(content) # act report = builder._process_html(html) # assert self.assertEqual( report, { 'Document': { 'document_error_key_1': 1, 'document_error_key_2': 2 }, 'Search': { 'search_error_key': 2 }, 'Website': { 'website_error_key_1': 3, 'website_error_key_2': 5 } } )
def test_get_history_data_path_dir_not_exist(self, mock_os): # arrange builder = report_builder.ErrorReportBuilder('some_env', 'user', 'password') mock_os.path.join.return_value = 'history_data' mock_os.path.isdir.return_value = False mock_os.makedirs.return_value = True # act history_dir = builder._get_history_data_path() # assert expected_dir = 'history_data' self.assertEqual(history_dir, expected_dir) mock_os.path.isdir.assert_called_with(expected_dir) mock_os.makedirs.assert_called_with(expected_dir)
def test_load_report(self): # arrange builder = report_builder.ErrorReportBuilder('some_env', 'user', 'password') builder.report_retriever.get_html = mock.MagicMock(return_value='<html></html>') builder._process_html = mock.MagicMock(return_value={ 'module': { 'key': 1 } }) start_time = datetime(2018, 4, 8) end_time = datetime(2018, 4, 8, 23, 59, 59) # act report = builder._load_report(start_time, end_time) # assert self.assertEqual(report, { 'module': { 'key': 1 } }) builder.report_retriever.get_html.assert_called_with(start_time, end_time)