def test_extract_bad_payload_not_tar(self, mock_extractall): """Test to verify extracting payload missing report files is not successful.""" fake_account = { "provider_uuid": uuid.uuid4(), "provider_type": "OCP", "schema_name": "testschema" } payload_url = "http://insights-upload.com/quarnantine/file_to_validate" with requests_mock.mock() as m: m.get(payload_url, content=self.bad_tarball_file) fake_dir = tempfile.mkdtemp() fake_pvc_dir = tempfile.mkdtemp() with patch.object(Config, "INSIGHTS_LOCAL_REPORT_DIR", fake_dir): with patch.object(Config, "TMP_DIR", fake_dir): with patch( "masu.external.kafka_msg_handler.get_account_from_cluster_id", return_value=fake_account): with patch( "masu.external.kafka_msg_handler.create_manifest_entries", returns=1): with patch( "masu.external.kafka_msg_handler.record_report_status" ): with self.assertRaises( msg_handler.KafkaMsgHandlerError): msg_handler.extract_payload( payload_url, "test_request_id") shutil.rmtree(fake_dir) shutil.rmtree(fake_pvc_dir)
def test_extract_incomplete_file_payload(self): """Test to verify extracting payload missing report files is successful.""" fake_account = { "provider_uuid": uuid.uuid4(), "provider_type": "OCP", "schema_name": "testschema" } payload_url = "http://insights-upload.com/quarnantine/file_to_validate" with requests_mock.mock() as m: m.get(payload_url, content=self.bad_tarball_file) fake_dir = tempfile.mkdtemp() fake_pvc_dir = tempfile.mkdtemp() with patch.object(Config, "INSIGHTS_LOCAL_REPORT_DIR", fake_dir): with patch.object(Config, "TMP_DIR", fake_dir): with patch( "masu.external.kafka_msg_handler.get_account_from_cluster_id", return_value=fake_account): with patch( "masu.external.kafka_msg_handler.create_manifest_entries", return_value=1): with patch( "masu.external.kafka_msg_handler.record_report_status" ): msg_handler.extract_payload( payload_url, "test_request_id") expected_path = "{}/{}/{}/".format( Config.INSIGHTS_LOCAL_REPORT_DIR, self.cluster_id, self.date_range) self.assertFalse(os.path.isdir(expected_path)) shutil.rmtree(fake_dir) shutil.rmtree(fake_pvc_dir)
def test_extract_payload_dates(self): """Test to verify extracting payload is successful.""" fake_account = { "provider_uuid": uuid.uuid4(), "provider_type": "OCP", "schema_name": "testschema" } payload_url = "http://insights-upload.com/quarnantine/file_to_validate" with requests_mock.mock() as m: m.get(payload_url, content=self.dates_tarball) fake_dir = tempfile.mkdtemp() fake_pvc_dir = tempfile.mkdtemp() with patch.object(Config, "INSIGHTS_LOCAL_REPORT_DIR", fake_dir): with patch.object(Config, "TMP_DIR", fake_dir): with patch( "masu.external.kafka_msg_handler.get_account_from_cluster_id", return_value=fake_account): with patch( "masu.external.kafka_msg_handler.create_manifest_entries", return_value=1): with patch( "masu.external.kafka_msg_handler.record_report_status", returns=None): msg_handler.extract_payload( payload_url, "test_request_id") expected_path = "{}/{}/{}/".format( Config.INSIGHTS_LOCAL_REPORT_DIR, "5997a261-f23e-45d1-8e01-ee3c765f3aec", "20210101-20210201", ) self.assertTrue(os.path.isdir(expected_path)) shutil.rmtree(fake_dir) shutil.rmtree(fake_pvc_dir)
def test_extract_payload_bad_url(self): """Test to verify extracting payload exceptions are handled.""" payload_url = 'http://insights-upload.com/quarnantine/file_to_validate' with requests_mock.mock() as m: m.get(payload_url, exc=HTTPError) with self.assertRaises(msg_handler.KafkaMsgHandlerError): msg_handler.extract_payload(payload_url)
def test_extract_payload_unable_to_open(self): """Test to verify extracting payload exceptions are handled.""" payload_url = 'http://insights-upload.com/quarnantine/file_to_validate' with requests_mock.mock() as m: m.get(payload_url, content=self.tarball_file) with patch('masu.external.kafka_msg_handler.open') as mock_oserror: mock_oserror.side_effect = PermissionError with self.assertRaises(msg_handler.KafkaMsgHandlerError): msg_handler.extract_payload(payload_url)
def test_extract_payload_wrong_file_type(self): """Test to verify extracting payload is successful.""" payload_url = 'http://insights-upload.com/quarnantine/file_to_validate' with requests_mock.mock() as m: payload_file = open('./tests/data/test_cur.csv', 'rb') csv_file = payload_file.read() payload_file.close() m.get(payload_url, content=csv_file) with self.assertRaises(msg_handler.KafkaMsgHandlerError): msg_handler.extract_payload(payload_url)
def test_extract_incomplete_file_payload(self): """Test to verify extracting payload missing report files is successful.""" payload_url = "http://insights-upload.com/quarnantine/file_to_validate" with requests_mock.mock() as m: m.get(payload_url, content=self.bad_tarball_file) fake_dir = tempfile.mkdtemp() fake_pvc_dir = tempfile.mkdtemp() with patch.object(Config, "INSIGHTS_LOCAL_REPORT_DIR", fake_dir): with patch.object(Config, "TMP_DIR", fake_dir): msg_handler.extract_payload(payload_url) shutil.rmtree(fake_dir) shutil.rmtree(fake_pvc_dir)
def test_extract_bad_payload(self): """Test to verify extracting payload missing report files is not successful.""" payload_url = 'http://insights-upload.com/quarnantine/file_to_validate' with requests_mock.mock() as m: m.get(payload_url, content=self.bad_tarball_file) fake_dir = tempfile.mkdtemp() fake_pvc_dir = tempfile.mkdtemp() with patch.object(Config, 'INSIGHTS_LOCAL_REPORT_DIR', fake_dir): with patch.object(Config, 'TMP_DIR', fake_dir): with self.assertRaises(msg_handler.KafkaMsgHandlerError): msg_handler.extract_payload(payload_url) shutil.rmtree(fake_dir) shutil.rmtree(fake_pvc_dir)
def test_extract_payload(self): """Test to verify extracting payload is successful.""" payload_url = 'http://insights-upload.com/quarnantine/file_to_validate' with requests_mock.mock() as m: m.get(payload_url, content=self.tarball_file) fake_dir = tempfile.mkdtemp() with patch.object(Config, 'INSIGHTS_LOCAL_REPORT_DIR', fake_dir): msg_handler.extract_payload(payload_url) expected_path = '{}/{}/{}/'.format( Config.INSIGHTS_LOCAL_REPORT_DIR, self.cluster_id, self.date_range) self.assertTrue(os.path.isdir(expected_path)) shutil.rmtree(fake_dir)
def test_extract_payload_no_account(self): """Test to verify extracting payload when no provider exists.""" payload_url = "http://insights-upload.com/quarnantine/file_to_validate" with requests_mock.mock() as m: m.get(payload_url, content=self.tarball_file) fake_dir = tempfile.mkdtemp() fake_pvc_dir = tempfile.mkdtemp() with patch.object(Config, "INSIGHTS_LOCAL_REPORT_DIR", fake_dir): with patch.object(Config, "TMP_DIR", fake_dir): with patch( "masu.external.kafka_msg_handler.get_account_from_cluster_id", return_value=None): self.assertFalse( msg_handler.extract_payload(payload_url)) shutil.rmtree(fake_dir) shutil.rmtree(fake_pvc_dir)