Skip to content

Commit 3ae260f

Browse files
committed
style: apply black formatting to deploy_context and test_ecr_policy_helpers
1 parent 26fe0a7 commit 3ae260f

2 files changed

Lines changed: 28 additions & 26 deletions

File tree

samcli/commands/deploy/deploy_context.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,7 @@ def run(self):
167167
self.deployer = Deployer(cloudformation_client, client_sleep=self.poll_delay)
168168

169169
if self.image_repositories or self.image_repository:
170-
ecr_client = boto3.client(
171-
"ecr", region_name=self.region if self.region else None, config=boto_config
172-
)
170+
ecr_client = boto3.client("ecr", region_name=self.region if self.region else None, config=boto_config)
173171
_ensure_ecr_lambda_pull_policy(
174172
ecr_client,
175173
self.image_repositories if isinstance(self.image_repositories, dict) else None,
@@ -361,7 +359,6 @@ def merge_parameters(template_dict: Dict, parameter_overrides: Dict) -> List[Dic
361359
return parameter_values
362360

363361

364-
365362
def _extract_ecr_repo_name(ecr_uri: str) -> str:
366363
"""
367364
Extract the ECR repository name from a full ECR URI.
@@ -410,7 +407,7 @@ def _upsert_ecr_lambda_policy(ecr_client, repo_name: str) -> None:
410407
Soft-fails on AccessDenied so users who have manually pre-configured
411408
policies or whose IAM principal lacks ecr:SetRepositoryPolicy are not blocked.
412409
"""
413-
# Step 1: Fetch current policy (if any)
410+
414411
existing_statements = []
415412
try:
416413
response = ecr_client.get_repository_policy(repositoryName=repo_name)
@@ -430,16 +427,13 @@ def _upsert_ecr_lambda_policy(ecr_client, repo_name: str) -> None:
430427
return
431428
raise deploy_exceptions.ECRPolicySetError(repo_name=repo_name, msg=str(ex)) from ex
432429

433-
# Step 2: Remove any existing SAM-owned statement (idempotent upsert)
434430
filtered = [s for s in existing_statements if s.get("Sid") != _SAM_ECR_POLICY_SID]
435431

436-
# Step 3: Build merged policy
437432
merged_policy = {
438433
"Version": "2012-10-17",
439434
"Statement": filtered + [_LAMBDA_ECR_POLICY_STATEMENT],
440435
}
441436

442-
# Step 4: Write the merged policy back
443437
try:
444438
ecr_client.set_repository_policy(
445439
repositoryName=repo_name,

tests/unit/commands/deploy/test_ecr_policy_helpers.py

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ def _make_ecr_client(existing_policy_doc=None, get_side_effect=None, set_side_ef
4949
if get_side_effect is not None:
5050
ecr_client.get_repository_policy.side_effect = get_side_effect
5151
elif existing_policy_doc is not None:
52-
ecr_client.get_repository_policy.return_value = {
53-
"policyText": json.dumps(existing_policy_doc)
54-
}
52+
ecr_client.get_repository_policy.return_value = {"policyText": json.dumps(existing_policy_doc)}
5553
else:
5654
ecr_client.get_repository_policy.return_value = {"policyText": "{}"}
5755

@@ -118,9 +116,7 @@ def test_empty_dict_and_none_returns_early(self):
118116
@patch("samcli.commands.deploy.deploy_context._upsert_ecr_lambda_policy")
119117
def test_deduplicates_same_repo(self, mock_upsert):
120118
uri = "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo:latest"
121-
_ensure_ecr_lambda_pull_policy(
122-
MagicMock(), {"FnA": uri, "FnB": uri}, None
123-
)
119+
_ensure_ecr_lambda_pull_policy(MagicMock(), {"FnA": uri, "FnB": uri}, None)
124120
mock_upsert.assert_called_once()
125121

126122
@patch("samcli.commands.deploy.deploy_context._upsert_ecr_lambda_policy")
@@ -137,9 +133,7 @@ def test_two_different_repos_calls_twice(self, mock_upsert):
137133

138134
@patch("samcli.commands.deploy.deploy_context._upsert_ecr_lambda_policy")
139135
def test_singular_image_repository(self, mock_upsert):
140-
_ensure_ecr_lambda_pull_policy(
141-
MagicMock(), None, "123456789012.dkr.ecr.us-east-1.amazonaws.com/single:v2"
142-
)
136+
_ensure_ecr_lambda_pull_policy(MagicMock(), None, "123456789012.dkr.ecr.us-east-1.amazonaws.com/single:v2")
143137
mock_upsert.assert_called_once()
144138

145139

@@ -162,9 +156,10 @@ def test_no_existing_policy_sets_sam_statement(self):
162156
self.assertEqual(policy["Statement"][0]["Sid"], _SAM_ECR_POLICY_SID)
163157

164158
def test_preserves_existing_statements_and_appends_sam(self):
165-
existing = {"Version": "2012-10-17", "Statement": [
166-
{"Sid": "CustomerPolicy", "Effect": "Allow", "Principal": "*", "Action": "ecr:*"}
167-
]}
159+
existing = {
160+
"Version": "2012-10-17",
161+
"Statement": [{"Sid": "CustomerPolicy", "Effect": "Allow", "Principal": "*", "Action": "ecr:*"}],
162+
}
168163
ecr_client = _make_ecr_client(existing_policy_doc=existing)
169164
_upsert_ecr_lambda_policy(ecr_client, "my-repo")
170165

@@ -175,9 +170,17 @@ def test_preserves_existing_statements_and_appends_sam(self):
175170
self.assertEqual(len(policy["Statement"]), 2)
176171

177172
def test_idempotent_replaces_existing_sam_statement(self):
178-
stale = {"Version": "2012-10-17", "Statement": [
179-
{"Sid": _SAM_ECR_POLICY_SID, "Effect": "Deny", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "ecr:*"}
180-
]}
173+
stale = {
174+
"Version": "2012-10-17",
175+
"Statement": [
176+
{
177+
"Sid": _SAM_ECR_POLICY_SID,
178+
"Effect": "Deny",
179+
"Principal": {"Service": "lambda.amazonaws.com"},
180+
"Action": "ecr:*",
181+
}
182+
],
183+
}
181184
ecr_client = _make_ecr_client(existing_policy_doc=stale)
182185
_upsert_ecr_lambda_policy(ecr_client, "my-repo")
183186

@@ -271,9 +274,14 @@ def test_race_condition_without_fix(self):
271274
def cf_handler(function_name: str):
272275
current = json.loads(json.dumps(policy_store["doc"]))
273276
time.sleep(0.01)
274-
current["Statement"] = [{"Sid": f"Grant_{function_name}", "Effect": "Allow",
275-
"Principal": {"Service": "lambda.amazonaws.com"},
276-
"Action": ["ecr:GetDownloadUrlForLayer"]}]
277+
current["Statement"] = [
278+
{
279+
"Sid": f"Grant_{function_name}",
280+
"Effect": "Allow",
281+
"Principal": {"Service": "lambda.amazonaws.com"},
282+
"Action": ["ecr:GetDownloadUrlForLayer"],
283+
}
284+
]
277285
policy_store["doc"] = current
278286

279287
threads = [threading.Thread(target=cf_handler, args=(n,)) for n in SEVEN_FUNCTIONS_SAME_REPO]

0 commit comments

Comments
 (0)