@@ -1749,6 +1749,40 @@ def test_can_build_image_function(self):
17491749
17501750 self .assertEqual (result , "name:Tag" )
17511751
1752+ def test_can_build_image_with_custom_name (self ):
1753+ metadata = {
1754+ "Dockerfile" : "Dockerfile" ,
1755+ "DockerContext" : "context" ,
1756+ "DockerImage" : "custom-Name_With-symbols-v1.2.3" ,
1757+ "DockerTag" : "Tag" ,
1758+ "DockerBuildArgs" : {"a" : "b" },
1759+ }
1760+
1761+ self .container_client_mock .images .build .return_value = (Mock (), [])
1762+
1763+ result = self .builder ._build_lambda_image ("Name" , metadata , X86_64 )
1764+
1765+ self .assertEqual (result , "custom-name_with-symbols-v1.2.3:Tag" )
1766+
1767+ def test_build_lambda_image_raises_for_non_dict_docker_build_args (self ):
1768+ metadata = {
1769+ "Dockerfile" : "Dockerfile" ,
1770+ "DockerContext" : "context" ,
1771+ "DockerTag" : "Tag" ,
1772+ "DockerBuildArgs" : "not-a-dict" ,
1773+ }
1774+ with self .assertRaises (DockerBuildFailed ):
1775+ self .builder ._build_lambda_image ("Name" , metadata , X86_64 )
1776+
1777+ def test_build_lambda_image_uses_latest_tag_when_not_specified (self ):
1778+ metadata = {
1779+ "Dockerfile" : "Dockerfile" ,
1780+ "DockerContext" : "context" ,
1781+ }
1782+ self .container_client_mock .images .build .return_value = (Mock (), [])
1783+ result = self .builder ._build_lambda_image ("Name" , metadata , X86_64 )
1784+ self .assertEqual (result , "name:latest" )
1785+
17521786 @patch ("samcli.lib.build.app_builder.SDKBuildClient" )
17531787 def test_lazy_initialization_creates_sdk_build_client_by_default (self , mock_sdk_build_client_class ):
17541788 """Test that _image_build_client is lazily initialized with SDKBuildClient when use_buildkit is False"""
@@ -3157,6 +3191,14 @@ def setUp(self, mock_get_validated_container_client):
31573191 def tearDown (self ):
31583192 EventTracker .clear_trackers ()
31593193
3194+ def test_must_raise_when_container_manager_is_none (self ):
3195+ self .builder ._container_manager = None
3196+ config = Mock ()
3197+ with self .assertRaises (RuntimeError ):
3198+ self .builder ._build_function_on_container (
3199+ config , "source_dir" , "artifacts_dir" , "manifest_path" , "runtime" , X86_64 , None
3200+ )
3201+
31603202 @patch (
31613203 "samcli.local.docker.container_client_factory.ContainerClientFactory.get_admin_container_preference" ,
31623204 return_value = None ,
0 commit comments