Skip to content

Commit

Permalink
fix: s3-bucket are ignored with sam deploy --guided (#2607)
Browse files Browse the repository at this point in the history
* fix: s3-bucket are ignored with sam deploy --guided

* remove unused import
  • Loading branch information
wchengru committed Feb 9, 2021
1 parent de3814f commit a9c5e7c
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 3 deletions.
10 changes: 7 additions & 3 deletions samcli/commands/deploy/guided_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,13 @@ def guided_prompts(self, parameter_override_keys):
type=click.STRING,
)

s3_bucket = manage_stack(profile=self.profile, region=region)
click.echo(f"\n\t\tManaged S3 bucket: {s3_bucket}")
click.echo("\t\tA different default S3 bucket can be set in samconfig.toml")
s3_bucket = self.s3_bucket
if s3_bucket:
click.echo(f"\n\t\tUsing defined S3 bucket: {s3_bucket}")
else:
s3_bucket = manage_stack(profile=self.profile, region=region)
click.echo(f"\n\t\tManaged S3 bucket: {s3_bucket}")
click.echo("\t\tA different default S3 bucket can be set in samconfig.toml")

self.guided_stack_name = stack_name
self.guided_s3_bucket = s3_bucket
Expand Down
66 changes: 66 additions & 0 deletions tests/unit/commands/deploy/test_guided_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -716,3 +716,69 @@ def test_guided_prompts_check_default_config_region(
),
]
self.assertEqual(expected_prompt_calls, patched_prompt.call_args_list)

@patch("samcli.commands.deploy.guided_context.get_session")
@patch("samcli.commands.deploy.guided_context.prompt")
@patch("samcli.commands.deploy.guided_context.confirm")
@patch("samcli.commands.deploy.guided_context.manage_stack")
@patch("samcli.commands.deploy.guided_context.auth_per_resource")
@patch("samcli.commands.deploy.guided_context.get_template_data")
@patch("samcli.commands.deploy.guided_context.get_template_artifacts_format")
@patch("samcli.commands.deploy.guided_context.transform_template")
@patch("samcli.commands.deploy.guided_context.signer_config_per_function")
def test_guided_prompts_use_defined_s3_bucket(
self,
patched_signer_config_per_function,
patched_transform_template,
patched_get_template_artifacts_format,
patched_get_template_data,
patchedauth_per_resource,
mocked_manage_stack,
patched_confirm,
patched_prompt,
patched_get_session,
):
self.gc.s3_bucket = "user_defined_s3_b"
patched_transform_template.return_value = {}
patched_get_template_artifacts_format.return_value = [ZIP]
# Series of inputs to confirmations so that full range of questions are asked.
patchedauth_per_resource.return_value = [("HelloWorldFunction", False)]
patched_confirm.side_effect = [True, False, True, True, ""]
patched_signer_config_per_function.return_value = ({}, {})
mocked_manage_stack.return_value = "managed_s3_bucket"
self.gc.guided_prompts(parameter_override_keys=None)
self.assertEqual(self.gc.guided_s3_bucket, "user_defined_s3_b")
mocked_manage_stack.assert_not_called()

@patch("samcli.commands.deploy.guided_context.get_session")
@patch("samcli.commands.deploy.guided_context.prompt")
@patch("samcli.commands.deploy.guided_context.confirm")
@patch("samcli.commands.deploy.guided_context.manage_stack")
@patch("samcli.commands.deploy.guided_context.auth_per_resource")
@patch("samcli.commands.deploy.guided_context.get_template_data")
@patch("samcli.commands.deploy.guided_context.get_template_artifacts_format")
@patch("samcli.commands.deploy.guided_context.transform_template")
@patch("samcli.commands.deploy.guided_context.signer_config_per_function")
def test_guided_prompts_use_managed_s3_bucket(
self,
patched_signer_config_per_function,
patched_transform_template,
patched_get_template_artifacts_format,
patched_get_template_data,
patchedauth_per_resource,
mocked_manage_stack,
patched_confirm,
patched_prompt,
patched_get_session,
):
self.gc.s3_bucket = None
patched_transform_template.return_value = {}
patched_get_template_artifacts_format.return_value = [ZIP]
# Series of inputs to confirmations so that full range of questions are asked.
patchedauth_per_resource.return_value = [("HelloWorldFunction", False)]
patched_confirm.side_effect = [True, False, True, True, ""]
patched_signer_config_per_function.return_value = ({}, {})
mocked_manage_stack.return_value = "managed_s3_bucket"
self.gc.guided_prompts(parameter_override_keys=None)
self.assertEqual(self.gc.guided_s3_bucket, "managed_s3_bucket")
mocked_manage_stack.assert_called_once()

0 comments on commit a9c5e7c

Please sign in to comment.