Exemplo n.º 1
0
    def test_request_dispatch_verification_failure_throw_exception(self):
        self.test_app.config[VERIFY_SIGNATURE_APP_CONFIG] = False
        self.test_app.config[VERIFY_TIMESTAMP_APP_CONFIG] = False
        self.test_app.logger.setLevel(logging.CRITICAL)

        mocked_handler = mock.MagicMock(spec=WebserviceSkillHandler)
        mocked_handler.verify_request_and_dispatch.side_effect = \
            VerificationException("test")
        with mock.patch(
                "flask_ask_sdk.skill_adapter.WebserviceSkillHandler",
                return_value=mocked_handler):
            test_skill_adapter = SkillAdapter(
                skill=self.mock_skill, skill_id=self.skill_id,
                app=self.test_app)

            self.test_app.add_url_rule(
                "/", "index", test_skill_adapter.dispatch_request,
                methods=["POST"])

            self.test_app.testing = True
            with self.test_app.test_client() as c:
                test_response = c.post(
                    "/", data={}, content_type="application/json")

                self.assertEqual(
                    test_response.status_code, 400,
                    "SkillAdapter didn't raise bad request when input "
                    "verification failed")
Exemplo n.º 2
0
    def test_request_dispatch_verification_failure_throw_exception(self):
        mocked_handler = mock.MagicMock(spec=WebserviceSkillHandler)
        mocked_handler.verify_request_and_dispatch.side_effect = \
            VerificationException("test")
        with mock.patch("django_ask_sdk.skill_adapter.WebserviceSkillHandler",
                        return_value=mocked_handler):
            test_http_response = SkillAdapter.as_view(skill=self.mock_skill)(
                self.mock_http_request)

            self.assertEqual(
                test_http_response.status_code, 400,
                "SkillAdapter didn't raise bad request when input "
                "verification failed")
Exemplo n.º 3
0
    def test_request_verification_for_invalid_request(self):
        with mock.patch.object(RequestVerifier,
                               '_retrieve_and_validate_certificate_chain'):
            with mock.patch.object(RequestVerifier,
                                   '_valid_request_body',
                                   side_effect=VerificationException(
                                       'Request body is not valid')):
                self.headers[
                    SIGNATURE_CERT_CHAIN_URL_HEADER] = self.PREPOPULATED_CERT_URL
                self.headers[SIGNATURE_HEADER] = self.generate_private_key()

                with self.assertRaises(VerificationException) as exc:
                    RequestVerifier().verify(
                        headers=self.headers,
                        serialized_request_env="test",
                        deserialized_request_env=RequestEnvelope())

                self.assertIn("Request body is not valid", str(exc.exception))
Exemplo n.º 4
0
    def test_webservice_skill_handler_dispatch_verification_failure_throw_exc(
            self):
        self.mock_verifier.verify.side_effect = VerificationException(
            "test verification exception")
        test_webservice_skill_handler = WebserviceSkillHandler(
            skill=self.mock_skill, verify_signature=False,
            verify_timestamp=False, verifiers=[self.mock_verifier])

        with self.assertRaises(VerificationException) as exc:
            test_webservice_skill_handler.verify_request_and_dispatch(
                http_request_headers=None, http_request_body=None)

        self.assertIn(
            "test verification exception", str(exc.exception),
            "Webservice skill handler didn't raise verification exception "
            "during skill dispatch")

        self.assertFalse(
            self.mock_skill.invoke.called,
            "Webservice skill handler called skill invoke when request "
            "verification failed")