@@ -187,6 +187,10 @@ def test_create_lambda_happycase1(sagemaker_session):
187
187
Code = code ,
188
188
Timeout = 120 ,
189
189
MemorySize = 128 ,
190
+ Architectures = None ,
191
+ VpcConfig = None ,
192
+ Environment = None ,
193
+ Layers = None ,
190
194
)
191
195
192
196
@@ -212,6 +216,45 @@ def test_create_lambda_happycase2(sagemaker_session):
212
216
Code = code ,
213
217
Timeout = 120 ,
214
218
MemorySize = 128 ,
219
+ Architectures = None ,
220
+ VpcConfig = None ,
221
+ Environment = None ,
222
+ Layers = None ,
223
+ )
224
+
225
+
226
+ @patch ("sagemaker.lambda_helper._zip_lambda_code" , return_value = ZIPPED_CODE )
227
+ def test_create_lambda_happycase3 (sagemaker_session ):
228
+ lambda_obj = lambda_helper .Lambda (
229
+ function_name = FUNCTION_NAME ,
230
+ execution_role_arn = EXECUTION_ROLE ,
231
+ script = SCRIPT ,
232
+ handler = HANDLER ,
233
+ session = sagemaker_session ,
234
+ architectures = ["x86_64" ],
235
+ environment = {"Name" : "my-test-lambda" },
236
+ vpc_config = {
237
+ "SubnetIds" : ["test-subnet-1" ],
238
+ "SecurityGroupIds" : ["sec-group-1" ],
239
+ },
240
+ layers = ["my-test-layer-1" , "my-test-layer-2" ],
241
+ )
242
+
243
+ lambda_obj .create ()
244
+ code = {"ZipFile" : ZIPPED_CODE }
245
+
246
+ sagemaker_session .lambda_client .create_function .assert_called_with (
247
+ FunctionName = FUNCTION_NAME ,
248
+ Runtime = "python3.8" ,
249
+ Handler = HANDLER ,
250
+ Role = EXECUTION_ROLE ,
251
+ Code = code ,
252
+ Timeout = 120 ,
253
+ MemorySize = 128 ,
254
+ Architectures = ["x86_64" ],
255
+ VpcConfig = {"SubnetIds" : ["test-subnet-1" ], "SecurityGroupIds" : ["sec-group-1" ]},
256
+ Environment = {"Name" : "my-test-lambda" },
257
+ Layers = ["my-test-layer-1" , "my-test-layer-2" ],
215
258
)
216
259
217
260
@@ -241,7 +284,12 @@ def test_create_lambda_client_error(sagemaker_session):
241
284
session = sagemaker_session ,
242
285
)
243
286
sagemaker_session .lambda_client .create_function .side_effect = ClientError (
244
- {"Error" : {"Code" : "ResourceConflictException" , "Message" : "Function already exists" }},
287
+ {
288
+ "Error" : {
289
+ "Code" : "ResourceConflictException" ,
290
+ "Message" : "Function already exists" ,
291
+ }
292
+ },
245
293
"CreateFunction" ,
246
294
)
247
295
@@ -264,7 +312,9 @@ def test_update_lambda_happycase1(sagemaker_session):
264
312
lambda_obj .update ()
265
313
266
314
sagemaker_session .lambda_client .update_function_code .assert_called_with (
267
- FunctionName = FUNCTION_NAME , ZipFile = ZIPPED_CODE
315
+ FunctionName = FUNCTION_NAME ,
316
+ ZipFile = ZIPPED_CODE ,
317
+ Architectures = None ,
268
318
)
269
319
270
320
@@ -282,7 +332,35 @@ def test_update_lambda_happycase2(sagemaker_session):
282
332
lambda_obj .update ()
283
333
284
334
sagemaker_session .lambda_client .update_function_code .assert_called_with (
285
- FunctionName = LAMBDA_ARN , S3Bucket = S3_BUCKET , S3Key = S3_KEY
335
+ FunctionName = LAMBDA_ARN ,
336
+ S3Bucket = S3_BUCKET ,
337
+ S3Key = S3_KEY ,
338
+ Architectures = None ,
339
+ )
340
+
341
+
342
+ @patch ("sagemaker.lambda_helper._zip_lambda_code" , return_value = ZIPPED_CODE )
343
+ def test_update_lambda_happycase3 (sagemaker_session ):
344
+ lambda_obj = lambda_helper .Lambda (
345
+ function_name = FUNCTION_NAME ,
346
+ execution_role_arn = EXECUTION_ROLE ,
347
+ script = SCRIPT ,
348
+ handler = HANDLER ,
349
+ session = sagemaker_session ,
350
+ architectures = ["x86_64" ],
351
+ environment = {"Name" : "my-test-lambda" },
352
+ vpc_config = {
353
+ "SubnetIds" : ["test-subnet-1" ],
354
+ "SecurityGroupIds" : ["sec-group-1" ],
355
+ },
356
+ )
357
+
358
+ lambda_obj .update ()
359
+
360
+ sagemaker_session .lambda_client .update_function_code .assert_called_with (
361
+ FunctionName = FUNCTION_NAME ,
362
+ ZipFile = ZIPPED_CODE ,
363
+ Architectures = ["x86_64" ],
286
364
)
287
365
288
366
@@ -302,6 +380,7 @@ def test_update_lambda_s3bucket_not_provided(s3_upload, sagemaker_session):
302
380
FunctionName = LAMBDA_ARN ,
303
381
S3Bucket = sagemaker_session .default_bucket (),
304
382
S3Key = s3_upload .return_value ,
383
+ Architectures = None ,
305
384
)
306
385
307
386
@@ -346,6 +425,10 @@ def test_upsert_lambda_happycase1(sagemaker_session):
346
425
Code = code ,
347
426
Timeout = 120 ,
348
427
MemorySize = 128 ,
428
+ Architectures = None ,
429
+ VpcConfig = None ,
430
+ Environment = None ,
431
+ Layers = None ,
349
432
)
350
433
351
434
@@ -360,14 +443,19 @@ def test_upsert_lambda_happycase2(sagemaker_session):
360
443
)
361
444
362
445
sagemaker_session .lambda_client .create_function .side_effect = ClientError (
363
- {"Error" : {"Code" : "ResourceConflictException" , "Message" : "Lambda already exists" }},
446
+ {
447
+ "Error" : {
448
+ "Code" : "ResourceConflictException" ,
449
+ "Message" : "Lambda already exists" ,
450
+ }
451
+ },
364
452
"CreateFunction" ,
365
453
)
366
454
367
455
lambda_obj .upsert ()
368
456
369
457
sagemaker_session .lambda_client .update_function_code .assert_called_once_with (
370
- FunctionName = FUNCTION_NAME , ZipFile = ZIPPED_CODE
458
+ FunctionName = FUNCTION_NAME , ZipFile = ZIPPED_CODE , Architectures = None
371
459
)
372
460
373
461
@@ -382,12 +470,22 @@ def test_upsert_lambda_client_error(sagemaker_session):
382
470
)
383
471
384
472
sagemaker_session .lambda_client .create_function .side_effect = ClientError (
385
- {"Error" : {"Code" : "ResourceConflictException" , "Message" : "Lambda already exists" }},
473
+ {
474
+ "Error" : {
475
+ "Code" : "ResourceConflictException" ,
476
+ "Message" : "Lambda already exists" ,
477
+ }
478
+ },
386
479
"CreateFunction" ,
387
480
)
388
481
389
482
sagemaker_session .lambda_client .update_function_code .side_effect = ClientError (
390
- {"Error" : {"Code" : "ResourceConflictException" , "Message" : "Cannot update code" }},
483
+ {
484
+ "Error" : {
485
+ "Code" : "ResourceConflictException" ,
486
+ "Message" : "Cannot update code" ,
487
+ }
488
+ },
391
489
"UpdateFunctionCode" ,
392
490
)
393
491
@@ -410,7 +508,8 @@ def test_invoke_lambda_client_error(sagemaker_session):
410
508
lambda_obj = lambda_helper .Lambda (function_arn = LAMBDA_ARN , session = sagemaker_session )
411
509
412
510
sagemaker_session .lambda_client .invoke .side_effect = ClientError (
413
- {"Error" : {"Code" : "InvalidCodeException" , "Message" : "invoke failed" }}, "Invoke"
511
+ {"Error" : {"Code" : "InvalidCodeException" , "Message" : "invoke failed" }},
512
+ "Invoke" ,
414
513
)
415
514
with pytest .raises (ValueError ) as error :
416
515
lambda_obj .invoke ()
0 commit comments