コード例 #1
0
    def test_must_raise_user_exception_on_invalid_env_vars(
            self, get_event_mock, InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        ctx_mock = Mock()
        ctx_mock.region = self.region_name

        InvokeContextMock.side_effect = OverridesNotWellDefinedError(
            "bad env vars")

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(ctx=ctx_mock,
                       function_identifier=self.function_id,
                       template=self.template,
                       event=self.eventfile,
                       no_event=self.no_event,
                       env_vars=self.env_vars,
                       debug_port=self.debug_port,
                       debug_args=self.debug_args,
                       debugger_path=self.debugger_path,
                       docker_volume_basedir=self.docker_volume_basedir,
                       docker_network=self.docker_network,
                       log_file=self.log_file,
                       skip_pull_image=self.skip_pull_image,
                       parameter_overrides=self.parameter_overrides,
                       layer_cache_basedir=self.layer_cache_basedir,
                       force_image_build=self.force_image_build)

        msg = str(ex_ctx.exception)
        self.assertEquals(msg, "bad env vars")
コード例 #2
0
ファイル: test_cli.py プロジェクト: zsc347/aws-sam-cli
    def test_must_raise_user_exception_on_function_not_found(
            self, get_event_mock, InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        # Mock the __enter__ method to return a object inside a context manager
        context_mock = Mock()
        InvokeContextMock.return_value.__enter__.return_value = context_mock

        context_mock.local_lambda_runner.invoke.side_effect = FunctionNotFound(
            "not found")

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(ctx=None,
                       function_identifier=self.function_id,
                       template=self.template,
                       event=self.eventfile,
                       env_vars=self.env_vars,
                       debug_port=self.debug_port,
                       debug_args=self.debug_args,
                       docker_volume_basedir=self.docker_volume_basedir,
                       docker_network=self.docker_network,
                       log_file=self.log_file,
                       skip_pull_image=self.skip_pull_image,
                       profile=self.profile)

        msg = str(ex_ctx.exception)
        self.assertEquals(
            msg, "Function {} not found in template".format(self.function_id))
コード例 #3
0
    def test_must_raise_user_exception_on_no_event_and_event(
            self, get_event_mock, InvokeContextMock):
        self.no_event = True

        ctx_mock = Mock()
        ctx_mock.region = self.region_name

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(ctx=ctx_mock,
                       function_identifier=self.function_id,
                       template=self.template,
                       event=self.eventfile,
                       no_event=self.no_event,
                       env_vars=self.env_vars,
                       debug_port=self.debug_port,
                       debug_args=self.debug_args,
                       debugger_path=self.debugger_path,
                       docker_volume_basedir=self.docker_volume_basedir,
                       docker_network=self.docker_network,
                       log_file=self.log_file,
                       skip_pull_image=self.skip_pull_image,
                       parameter_overrides=self.parameter_overrides,
                       layer_cache_basedir=self.layer_cache_basedir,
                       force_image_build=self.force_image_build)

        msg = str(ex_ctx.exception)
        self.assertEquals(
            msg,
            "no_event and event cannot be used together. Please provide only one."
        )
コード例 #4
0
ファイル: test_cli.py プロジェクト: wchengru/aws-sam-cli
    def test_cli_must_setup_context_and_invoke(self, get_event_mock,
                                               InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        ctx_mock = Mock()
        ctx_mock.region = self.region_name
        ctx_mock.profile = self.profile

        # Mock the __enter__ method to return a object inside a context manager
        context_mock = Mock()
        InvokeContextMock.return_value.__enter__.return_value = context_mock

        invoke_cli(
            ctx=ctx_mock,
            function_identifier=self.function_id,
            template=self.template,
            event=self.eventfile,
            no_event=self.no_event,
            env_vars=self.env_vars,
            debug_port=self.debug_ports,
            debug_args=self.debug_args,
            debugger_path=self.debugger_path,
            container_env_vars=self.container_env_vars,
            docker_volume_basedir=self.docker_volume_basedir,
            docker_network=self.docker_network,
            log_file=self.log_file,
            skip_pull_image=self.skip_pull_image,
            parameter_overrides=self.parameter_overrides,
            layer_cache_basedir=self.layer_cache_basedir,
            force_image_build=self.force_image_build,
            shutdown=self.shutdown,
        )

        InvokeContextMock.assert_called_with(
            template_file=self.template,
            function_identifier=self.function_id,
            env_vars_file=self.env_vars,
            docker_volume_basedir=self.docker_volume_basedir,
            docker_network=self.docker_network,
            log_file=self.log_file,
            skip_pull_image=self.skip_pull_image,
            debug_ports=self.debug_ports,
            debug_args=self.debug_args,
            debugger_path=self.debugger_path,
            container_env_vars_file=self.container_env_vars,
            parameter_overrides=self.parameter_overrides,
            layer_cache_basedir=self.layer_cache_basedir,
            force_image_build=self.force_image_build,
            shutdown=self.shutdown,
            aws_region=self.region_name,
            aws_profile=self.profile,
        )

        context_mock.local_lambda_runner.invoke.assert_called_with(
            context_mock.function_identifier,
            event=event_data,
            stdout=context_mock.stdout,
            stderr=context_mock.stderr)
        get_event_mock.assert_called_with(self.eventfile)
コード例 #5
0
ファイル: test_cli.py プロジェクト: zsc347/aws-sam-cli
    def test_must_raise_user_exception_on_invalid_sam_template(
            self, get_event_mock, InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        InvokeContextMock.side_effect = InvalidSamDocumentException(
            "bad template")

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(ctx=None,
                       function_identifier=self.function_id,
                       template=self.template,
                       event=self.eventfile,
                       env_vars=self.env_vars,
                       debug_port=self.debug_port,
                       debug_args=self.debug_args,
                       docker_volume_basedir=self.docker_volume_basedir,
                       docker_network=self.docker_network,
                       log_file=self.log_file,
                       skip_pull_image=self.skip_pull_image,
                       profile=self.profile)

        msg = str(ex_ctx.exception)
        self.assertEquals(msg, "bad template")
コード例 #6
0
ファイル: test_cli.py プロジェクト: Frameio/aws-sam-cli
    def test_must_raise_user_exception_on_invalid_env_vars(self, get_event_mock, InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        ctx_mock = Mock()
        ctx_mock.region = self.region_name

        InvokeContextMock.side_effect = OverridesNotWellDefinedError("bad env vars")

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(ctx=ctx_mock,
                       function_identifier=self.function_id,
                       template=self.template,
                       event=self.eventfile,
                       no_event=self.no_event,
                       env_vars=self.env_vars,
                       debug_port=self.debug_port,
                       debug_args=self.debug_args,
                       debugger_path=self.debugger_path,
                       docker_volume_basedir=self.docker_volume_basedir,
                       docker_network=self.docker_network,
                       log_file=self.log_file,
                       skip_pull_image=self.skip_pull_image,
                       parameter_overrides=self.parameter_overrides,
                       layer_cache_basedir=self.layer_cache_basedir,
                       force_image_build=self.force_image_build)

        msg = str(ex_ctx.exception)
        self.assertEquals(msg, "bad env vars")
コード例 #7
0
ファイル: test_cli.py プロジェクト: Frameio/aws-sam-cli
    def test_must_raise_user_exception_on_no_event_and_event(self, get_event_mock, InvokeContextMock):
        self.no_event = True

        ctx_mock = Mock()
        ctx_mock.region = self.region_name

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(ctx=ctx_mock,
                       function_identifier=self.function_id,
                       template=self.template,
                       event=self.eventfile,
                       no_event=self.no_event,
                       env_vars=self.env_vars,
                       debug_port=self.debug_port,
                       debug_args=self.debug_args,
                       debugger_path=self.debugger_path,
                       docker_volume_basedir=self.docker_volume_basedir,
                       docker_network=self.docker_network,
                       log_file=self.log_file,
                       skip_pull_image=self.skip_pull_image,
                       parameter_overrides=self.parameter_overrides,
                       layer_cache_basedir=self.layer_cache_basedir,
                       force_image_build=self.force_image_build)

        msg = str(ex_ctx.exception)
        self.assertEquals(msg, "no_event and event cannot be used together. Please provide only one.")
コード例 #8
0
    def test_must_raise_user_exception_on_function_not_found(
            self, side_effect_exception, expected_exectpion_message,
            get_event_mock, InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        # Mock the __enter__ method to return a object inside a context manager
        context_mock = Mock()
        InvokeContextMock.return_value.__enter__.return_value = context_mock

        context_mock.local_lambda_runner.invoke.side_effect = side_effect_exception

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(ctx=None,
                       function_identifier=self.function_id,
                       template=self.template,
                       event=self.eventfile,
                       no_event=self.no_event,
                       env_vars=self.env_vars,
                       debug_port=self.debug_port,
                       debug_args=self.debug_args,
                       debugger_path=self.debugger_path,
                       docker_volume_basedir=self.docker_volume_basedir,
                       docker_network=self.docker_network,
                       log_file=self.log_file,
                       skip_pull_image=self.skip_pull_image,
                       profile=self.profile,
                       region=self.region,
                       parameter_overrides=self.parameter_overrides)

        msg = str(ex_ctx.exception)
        self.assertEquals(msg, expected_exectpion_message)
コード例 #9
0
    def test_cli_must_invoke_with_no_event(self, get_event_mock, InvokeContextMock):
        self.no_event = True

        ctx_mock = Mock()
        ctx_mock.region = self.region_name
        ctx_mock.profile = self.profile

        # Mock the __enter__ method to return a object inside a context manager
        context_mock = Mock()
        InvokeContextMock.return_value.__enter__.return_value = context_mock
        invoke_cli(
            ctx=ctx_mock,
            function_identifier=self.function_id,
            template=self.template,
            event=STDIN_FILE_NAME,
            no_event=self.no_event,
            env_vars=self.env_vars,
            debug_port=self.debug_port,
            debug_args=self.debug_args,
            debugger_path=self.debugger_path,
            docker_volume_basedir=self.docker_volume_basedir,
            docker_network=self.docker_network,
            log_file=self.log_file,
            skip_pull_image=self.skip_pull_image,
            parameter_overrides=self.parameter_overrides,
            layer_cache_basedir=self.layer_cache_basedir,
            force_image_build=self.force_image_build,
        )

        InvokeContextMock.assert_called_with(
            template_file=self.template,
            function_identifier=self.function_id,
            env_vars_file=self.env_vars,
            docker_volume_basedir=self.docker_volume_basedir,
            docker_network=self.docker_network,
            log_file=self.log_file,
            skip_pull_image=self.skip_pull_image,
            debug_port=self.debug_port,
            debug_args=self.debug_args,
            debugger_path=self.debugger_path,
            parameter_overrides=self.parameter_overrides,
            layer_cache_basedir=self.layer_cache_basedir,
            force_image_build=self.force_image_build,
            aws_region=self.region_name,
            aws_profile=self.profile,
        )

        context_mock.local_lambda_runner.invoke.assert_called_with(
            context_mock.function_name, event="{}", stdout=context_mock.stdout, stderr=context_mock.stderr
        )
        get_event_mock.assert_not_called()
コード例 #10
0
ファイル: test_cli.py プロジェクト: Frameio/aws-sam-cli
    def test_cli_must_setup_context_and_invoke(self, get_event_mock, InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        ctx_mock = Mock()
        ctx_mock.region = self.region_name

        # Mock the __enter__ method to return a object inside a context manager
        context_mock = Mock()
        InvokeContextMock.return_value.__enter__.return_value = context_mock

        invoke_cli(ctx=ctx_mock,
                   function_identifier=self.function_id,
                   template=self.template,
                   event=self.eventfile,
                   no_event=self.no_event,
                   env_vars=self.env_vars,
                   debug_port=self.debug_port,
                   debug_args=self.debug_args,
                   debugger_path=self.debugger_path,
                   docker_volume_basedir=self.docker_volume_basedir,
                   docker_network=self.docker_network,
                   log_file=self.log_file,
                   skip_pull_image=self.skip_pull_image,
                   parameter_overrides=self.parameter_overrides,
                   layer_cache_basedir=self.layer_cache_basedir,
                   force_image_build=self.force_image_build)

        InvokeContextMock.assert_called_with(template_file=self.template,
                                             function_identifier=self.function_id,
                                             env_vars_file=self.env_vars,
                                             docker_volume_basedir=self.docker_volume_basedir,
                                             docker_network=self.docker_network,
                                             log_file=self.log_file,
                                             skip_pull_image=self.skip_pull_image,
                                             debug_port=self.debug_port,
                                             debug_args=self.debug_args,
                                             debugger_path=self.debugger_path,
                                             parameter_overrides=self.parameter_overrides,
                                             layer_cache_basedir=self.layer_cache_basedir,
                                             force_image_build=self.force_image_build,
                                             aws_region=self.region_name)

        context_mock.local_lambda_runner.invoke.assert_called_with(context_mock.function_name,
                                                                   event=event_data,
                                                                   stdout=context_mock.stdout,
                                                                   stderr=context_mock.stderr)
        get_event_mock.assert_called_with(self.eventfile)
コード例 #11
0
ファイル: test_cli.py プロジェクト: devopseze/aws-sam
    def test_cli_must_setup_context_and_invoke(self, get_event_mock,
                                               InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        # Mock the __enter__ method to return a object inside a context manager
        context_mock = Mock()
        InvokeContextMock.return_value.__enter__.return_value = context_mock

        invoke_cli(ctx=None,
                   function_identifier=self.function_id,
                   template=self.template,
                   event=self.eventfile,
                   env_vars=self.env_vars,
                   debug_port=self.debug_port,
                   debug_args=self.debug_args,
                   debugger_path=self.debugger_path,
                   docker_volume_basedir=self.docker_volume_basedir,
                   docker_network=self.docker_network,
                   log_file=self.log_file,
                   skip_pull_image=self.skip_pull_image,
                   profile=self.profile,
                   region=self.region)

        InvokeContextMock.assert_called_with(
            template_file=self.template,
            function_identifier=self.function_id,
            env_vars_file=self.env_vars,
            docker_volume_basedir=self.docker_volume_basedir,
            docker_network=self.docker_network,
            log_file=self.log_file,
            skip_pull_image=self.skip_pull_image,
            aws_profile=self.profile,
            debug_port=self.debug_port,
            debug_args=self.debug_args,
            debugger_path=self.debugger_path,
            aws_region=self.region)

        context_mock.local_lambda_runner.invoke.assert_called_with(
            context_mock.function_name,
            event=event_data,
            stdout=context_mock.stdout,
            stderr=context_mock.stderr)
        get_event_mock.assert_called_with(self.eventfile)
コード例 #12
0
    def test_must_raise_user_exception_on_function_no_free_ports(
            self, side_effect_exception, expected_exectpion_message,
            get_event_mock, InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        ctx_mock = Mock()
        ctx_mock.region = self.region_name
        ctx_mock.profile = self.profile

        # Mock the __enter__ method to return a object inside a context manager
        context_mock = Mock()
        InvokeContextMock.return_value.__enter__.return_value = context_mock

        context_mock.local_lambda_runner.invoke.side_effect = side_effect_exception

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(
                ctx=ctx_mock,
                function_identifier=self.function_id,
                template=self.template,
                event=self.eventfile,
                no_event=self.no_event,
                env_vars=self.env_vars,
                debug_port=self.debug_ports,
                debug_args=self.debug_args,
                debugger_path=self.debugger_path,
                container_env_vars=self.container_env_vars,
                docker_volume_basedir=self.docker_volume_basedir,
                docker_network=self.docker_network,
                log_file=self.log_file,
                skip_pull_image=self.skip_pull_image,
                parameter_overrides=self.parameter_overrides,
                layer_cache_basedir=self.layer_cache_basedir,
                force_image_build=self.force_image_build,
                shutdown=self.shutdown,
                container_host=self.container_host,
                container_host_interface=self.container_host_interface,
            )

        msg = str(ex_ctx.exception)
        self.assertEqual(msg, expected_exectpion_message)
コード例 #13
0
    def test_must_raise_user_exception_on_invalid_sam_template(
            self, exeception_to_raise, execption_message, get_event_mock,
            InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        ctx_mock = Mock()
        ctx_mock.region = self.region_name
        ctx_mock.profile = self.profile

        InvokeContextMock.side_effect = exeception_to_raise

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(
                ctx=ctx_mock,
                function_identifier=self.function_id,
                template=self.template,
                event=self.eventfile,
                no_event=self.no_event,
                env_vars=self.env_vars,
                debug_port=self.debug_ports,
                debug_args=self.debug_args,
                debugger_path=self.debugger_path,
                container_env_vars=self.container_env_vars,
                docker_volume_basedir=self.docker_volume_basedir,
                docker_network=self.docker_network,
                log_file=self.log_file,
                skip_pull_image=self.skip_pull_image,
                parameter_overrides=self.parameter_overrides,
                layer_cache_basedir=self.layer_cache_basedir,
                force_image_build=self.force_image_build,
                shutdown=self.shutdown,
                container_host=self.container_host,
                container_host_interface=self.container_host_interface,
            )

        msg = str(ex_ctx.exception)
        self.assertEqual(msg, execption_message)
コード例 #14
0
ファイル: test_cli.py プロジェクト: Frameio/aws-sam-cli
    def test_must_raise_user_exception_on_function_not_found(self,
                                                             side_effect_exception,
                                                             expected_exectpion_message,
                                                             get_event_mock,
                                                             InvokeContextMock):
        event_data = "data"
        get_event_mock.return_value = event_data

        ctx_mock = Mock()
        ctx_mock.region = self.region_name

        # Mock the __enter__ method to return a object inside a context manager
        context_mock = Mock()
        InvokeContextMock.return_value.__enter__.return_value = context_mock

        context_mock.local_lambda_runner.invoke.side_effect = side_effect_exception

        with self.assertRaises(UserException) as ex_ctx:

            invoke_cli(ctx=ctx_mock,
                       function_identifier=self.function_id,
                       template=self.template,
                       event=self.eventfile,
                       no_event=self.no_event,
                       env_vars=self.env_vars,
                       debug_port=self.debug_port,
                       debug_args=self.debug_args,
                       debugger_path=self.debugger_path,
                       docker_volume_basedir=self.docker_volume_basedir,
                       docker_network=self.docker_network,
                       log_file=self.log_file,
                       skip_pull_image=self.skip_pull_image,
                       parameter_overrides=self.parameter_overrides,
                       layer_cache_basedir=self.layer_cache_basedir,
                       force_image_build=self.force_image_build)

        msg = str(ex_ctx.exception)
        self.assertEquals(msg, expected_exectpion_message)