@@ -379,7 +379,29 @@ def test_version_creation(self, LogicalIdGeneratorMock):
379
379
self .assertEqual (version .get_resource_attribute ("DeletionPolicy" ), "Retain" )
380
380
381
381
expected_prefix = self .sam_func .logical_id + "Version"
382
- LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code )
382
+ LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code , None )
383
+ generator_mock .gen .assert_called_once_with ()
384
+ self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_once_with (self .lambda_func .Code )
385
+
386
+ @patch ("samtranslator.translator.logical_id_generator.LogicalIdGenerator" )
387
+ def test_version_creation_with_code_sha (self , LogicalIdGeneratorMock ):
388
+ generator_mock = LogicalIdGeneratorMock .return_value
389
+ prefix = "SomeLogicalId"
390
+ hash_code = "6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b"
391
+ id_val = "{}{}" .format (prefix , hash_code [:10 ])
392
+ generator_mock .gen .return_value = id_val
393
+
394
+ self .intrinsics_resolver_mock .resolve_parameter_refs .return_value = self .lambda_func .Code
395
+ self .sam_func .AutoPublishCodeSha256 = hash_code
396
+ version = self .sam_func ._construct_version (self .lambda_func , self .intrinsics_resolver_mock , hash_code )
397
+
398
+ self .assertEqual (version .logical_id , id_val )
399
+ self .assertEqual (version .Description , None )
400
+ self .assertEqual (version .FunctionName , {"Ref" : self .lambda_func .logical_id })
401
+ self .assertEqual (version .get_resource_attribute ("DeletionPolicy" ), "Retain" )
402
+
403
+ expected_prefix = self .sam_func .logical_id + "Version"
404
+ LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code , hash_code )
383
405
generator_mock .gen .assert_called_once_with ()
384
406
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_once_with (self .lambda_func .Code )
385
407
@@ -397,7 +419,7 @@ def test_version_creation_without_s3_object_version(self, LogicalIdGeneratorMock
397
419
self .assertEqual (version .logical_id , id_val )
398
420
399
421
expected_prefix = self .sam_func .logical_id + "Version"
400
- LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code )
422
+ LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code , None )
401
423
generator_mock .gen .assert_called_once_with ()
402
424
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_once_with (self .lambda_func .Code )
403
425
@@ -421,7 +443,7 @@ def test_version_creation_intrinsic_function_in_code_s3key(self, LogicalIdGenera
421
443
self .assertEqual (version .logical_id , id_val )
422
444
423
445
expected_prefix = self .sam_func .logical_id + "Version"
424
- LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code )
446
+ LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code , None )
425
447
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_once_with (self .lambda_func .Code )
426
448
427
449
@patch ("samtranslator.translator.logical_id_generator.LogicalIdGenerator" )
@@ -437,7 +459,7 @@ def test_version_creation_intrinsic_function_in_code_s3bucket(self, LogicalIdGen
437
459
self .assertEqual (version .logical_id , id_val )
438
460
439
461
expected_prefix = self .sam_func .logical_id + "Version"
440
- LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code )
462
+ LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code , None )
441
463
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_once_with (self .lambda_func .Code )
442
464
443
465
@patch ("samtranslator.translator.logical_id_generator.LogicalIdGenerator" )
@@ -453,7 +475,7 @@ def test_version_creation_intrinsic_function_in_code_s3version(self, LogicalIdGe
453
475
self .assertEqual (version .logical_id , id_val )
454
476
455
477
expected_prefix = self .sam_func .logical_id + "Version"
456
- LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code )
478
+ LogicalIdGeneratorMock .assert_called_once_with (expected_prefix , self .lambda_func .Code , None )
457
479
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_once_with (self .lambda_func .Code )
458
480
459
481
@patch ("samtranslator.translator.logical_id_generator.LogicalIdGenerator" )
@@ -467,15 +489,15 @@ def test_version_logical_id_changes(self, LogicalIdGeneratorMock):
467
489
self .intrinsics_resolver_mock .resolve_parameter_refs .return_value = self .lambda_func .Code
468
490
self .sam_func ._construct_version (self .lambda_func , self .intrinsics_resolver_mock )
469
491
470
- LogicalIdGeneratorMock .assert_called_once_with (prefix , self .lambda_func .Code )
492
+ LogicalIdGeneratorMock .assert_called_once_with (prefix , self .lambda_func .Code , None )
471
493
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_with (self .lambda_func .Code )
472
494
473
495
# Modify Code of the lambda function
474
496
self .lambda_func .Code ["S3ObjectVersion" ] = "new object version"
475
497
new_code = self .lambda_func .Code .copy ()
476
498
self .intrinsics_resolver_mock .resolve_parameter_refs .return_value = new_code
477
499
self .sam_func ._construct_version (self .lambda_func , self .intrinsics_resolver_mock )
478
- LogicalIdGeneratorMock .assert_called_with (prefix , new_code )
500
+ LogicalIdGeneratorMock .assert_called_with (prefix , new_code , None )
479
501
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_with (new_code )
480
502
481
503
@patch ("samtranslator.translator.logical_id_generator.LogicalIdGenerator" )
@@ -490,14 +512,14 @@ def test_version_logical_id_changes_with_intrinsic_functions(self, LogicalIdGene
490
512
self .intrinsics_resolver_mock .resolve_parameter_refs .return_value = self .lambda_func .Code
491
513
self .sam_func ._construct_version (self .lambda_func , self .intrinsics_resolver_mock )
492
514
493
- LogicalIdGeneratorMock .assert_called_once_with (prefix , self .lambda_func .Code )
515
+ LogicalIdGeneratorMock .assert_called_once_with (prefix , self .lambda_func .Code , None )
494
516
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_with (self .lambda_func .Code )
495
517
496
518
# Now, just let the intrinsics resolver return a different value. Let's make sure the new value gets wired up properly
497
519
new_code = {"S3Bucket" : "bucket" , "S3Key" : "some new value" }
498
520
self .intrinsics_resolver_mock .resolve_parameter_refs .return_value = new_code
499
521
self .sam_func ._construct_version (self .lambda_func , self .intrinsics_resolver_mock )
500
- LogicalIdGeneratorMock .assert_called_with (prefix , new_code )
522
+ LogicalIdGeneratorMock .assert_called_with (prefix , new_code , None )
501
523
self .intrinsics_resolver_mock .resolve_parameter_refs .assert_called_with (self .lambda_func .Code )
502
524
503
525
def test_alias_creation (self ):
0 commit comments