Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
    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)
Пример #6
0
    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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
    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)