@@ -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