@@ -359,3 +359,38 @@ def test_with_builder_options():
359359 "existing_builder_option_1" : "existing_builder_option_value_1" ,
360360 "new_builder_option_1" : "new_builder_option_value_1"
361361 }
362+
363+ def test_noop_builder_updates_image_name_mapping ():
364+ from flytekit .image_spec .noop_builder import NoOpBuilder
365+
366+ # Clear any existing mappings to ensure clean test state
367+ ImageBuildEngine ._REGISTRY .pop ("noop" , None )
368+ ImageBuildEngine ._IMAGE_NAME_TO_REAL_NAME .clear ()
369+
370+ # Register NoOpBuilder
371+ ImageBuildEngine .register ("noop" , NoOpBuilder ())
372+
373+ # Create an image spec with NoOpBuilder
374+ expected_image_name = "localhost:30000/test_image:latest"
375+ image_spec = ImageSpec (
376+ name = "test_image" ,
377+ builder = "noop" ,
378+ base_image = expected_image_name
379+ )
380+
381+ # Get the image name before building
382+ img_name = image_spec .image_name ()
383+
384+ # Build the image
385+ ImageBuildEngine .build (image_spec )
386+
387+ # Verify that the mapping was created in _IMAGE_NAME_TO_REAL_NAME
388+ assert img_name in ImageBuildEngine ._IMAGE_NAME_TO_REAL_NAME
389+
390+ # Verify the mapping value is correct
391+ actual_real_name = ImageBuildEngine ._IMAGE_NAME_TO_REAL_NAME [img_name ]
392+ assert actual_real_name == expected_image_name
393+
394+ # Clean up
395+ ImageBuildEngine ._REGISTRY .pop ("noop" , None )
396+ ImageBuildEngine ._IMAGE_NAME_TO_REAL_NAME .clear ()
0 commit comments