@@ -2952,170 +2952,3 @@ def test_from_create_model_deployment_details(self):
29522952 model_group_config_no_ft .model_dump ()
29532953 == TestDataset .multi_model_deployment_group_config_no_ft
29542954 )
2955-
2956-
2957- class TestSingleModelParamResolution (TestAquaDeployment ):
2958- def setUp (self ):
2959- super ().setUp ()
2960-
2961- self .app .get_container_config = MagicMock ()
2962- self .app .get_container_image = MagicMock (return_value = "docker/image:latest" )
2963-
2964- mock_shape = MagicMock ()
2965- mock_shape .name = "VM.GPU.A10.1"
2966- self .app .list_shapes = MagicMock (return_value = [mock_shape ])
2967-
2968- self .mock_config = MagicMock ()
2969- self .mock_config .configuration .get .return_value .parameters .get .return_value = (
2970- "--default-param 100"
2971- )
2972- self .app .get_deployment_config = MagicMock (return_value = self .mock_config )
2973-
2974- self .mock_container_item = MagicMock ()
2975- self .mock_container_item .spec .cli_param = "--mandatory-param 1"
2976- self .mock_container_item .spec .restricted_params = []
2977- self .app .get_container_config_item = MagicMock (
2978- return_value = self .mock_container_item
2979- )
2980-
2981- @patch ("ads.model.deployment.model_deployment.ModelDeployment" )
2982- @patch ("ads.aqua.model.AquaModelApp" )
2983- def test_case_1_none_loads_defaults (self , mock_model_app , mock_deploy ):
2984- details = CreateModelDeploymentDetails (
2985- model_id = "ocid1.model..." ,
2986- instance_shape = "VM.GPU.A10.1" ,
2987- env_var = {},
2988- )
2989-
2990- with patch .object (self .app , "_create_deployment" ) as mock_create_internal :
2991- self .app .create (create_deployment_details = details )
2992-
2993- call_args = mock_create_internal .call_args [1 ]
2994- final_params = call_args ["env_var" ]["PARAMS" ]
2995-
2996- self .assertIn ("--mandatory-param 1" , final_params )
2997- self .assertIn ("--default-param 100" , final_params )
2998-
2999- @patch ("ads.model.deployment.model_deployment.ModelDeployment" )
3000- @patch ("ads.aqua.model.AquaModelApp" )
3001- def test_case_2_empty_clears_defaults (self , mock_model_app , mock_deploy ):
3002- details = CreateModelDeploymentDetails (
3003- model_id = "ocid1.model..." ,
3004- instance_shape = "VM.GPU.A10.1" ,
3005- env_var = {"PARAMS" : "" },
3006- )
3007-
3008- with patch .object (self .app , "_create_deployment" ) as mock_create_internal :
3009- self .app .create (create_deployment_details = details )
3010-
3011- call_args = mock_create_internal .call_args [1 ]
3012- final_params = call_args ["env_var" ]["PARAMS" ]
3013-
3014- self .assertIn ("--mandatory-param 1" , final_params )
3015- self .assertNotIn ("--default-param 100" , final_params )
3016-
3017- @patch ("ads.model.deployment.model_deployment.ModelDeployment" )
3018- @patch ("ads.aqua.model.AquaModelApp" )
3019- def test_case_3_value_overrides_defaults (self , mock_model_app , mock_deploy ):
3020- details = CreateModelDeploymentDetails (
3021- model_id = "ocid1.model..." ,
3022- instance_shape = "VM.GPU.A10.1" ,
3023- env_var = {"PARAMS" : "--user-override 99" },
3024- )
3025-
3026- with patch .object (self .app , "_create_deployment" ) as mock_create_internal :
3027- self .app .create (create_deployment_details = details )
3028-
3029- call_args = mock_create_internal .call_args [1 ]
3030- final_params = call_args ["env_var" ]["PARAMS" ]
3031-
3032- self .assertIn ("--mandatory-param 1" , final_params )
3033- self .assertIn ("--user-override 99" , final_params )
3034- self .assertNotIn ("--default-param 100" , final_params )
3035-
3036- @patch ("ads.model.deployment.model_deployment.ModelDeployment" )
3037- @patch ("ads.aqua.model.AquaModelApp" )
3038- def test_validation_blocks_restricted_params (self , mock_model_app , mock_deploy ):
3039- restricted_mock_item = MagicMock ()
3040- restricted_mock_item .spec .cli_param = "--mandatory 1"
3041- restricted_mock_item .spec .restricted_params = ["--seed" ]
3042-
3043- self .app .get_container_config_item = MagicMock (
3044- return_value = restricted_mock_item
3045- )
3046-
3047- details = CreateModelDeploymentDetails (
3048- model_id = "ocid1.model..." ,
3049- instance_shape = "VM.GPU.A10.1" ,
3050- env_var = {"PARAMS" : "--seed 999" },
3051- )
3052-
3053- with self .assertRaises (AquaValueError ) as context :
3054- self .app .create (create_deployment_details = details )
3055-
3056- self .assertIn ("Parameters ['--seed'] are set by Aqua" , str (context .exception ))
3057-
3058-
3059- class TestMultiModelParamResolution (unittest .TestCase ):
3060- def setUp (self ):
3061- self .mock_config_summary = MagicMock ()
3062- self .mock_deploy_config = MagicMock ()
3063-
3064- self .mock_deploy_config .configuration .get .return_value .parameters .get .return_value = (
3065- "--smm-default 500"
3066- )
3067- self .mock_config_summary .deployment_config .get .return_value = (
3068- self .mock_deploy_config
3069- )
3070-
3071- self .mock_details = MagicMock ()
3072- self .mock_details .instance_shape = "VM.GPU.A10.2"
3073-
3074- self .container_params = "--mandatory 1"
3075-
3076- def test_case_1_none_loads_defaults (self ):
3077- model = AquaMultiModelRef (model_id = "ocid1..." , gpu_count = 1 , params = None )
3078-
3079- result = ModelGroupConfig ._merge_gpu_count_params (
3080- model ,
3081- self .mock_config_summary ,
3082- self .mock_details ,
3083- "container_key" ,
3084- self .container_params ,
3085- )
3086-
3087- self .assertIn ("--mandatory 1" , result )
3088- self .assertIn ("--smm-default 500" , result )
3089-
3090- def test_case_2_empty_clears_defaults (self ):
3091- model = AquaMultiModelRef (model_id = "ocid1..." , gpu_count = 1 , params = {})
3092-
3093- result = ModelGroupConfig ._merge_gpu_count_params (
3094- model ,
3095- self .mock_config_summary ,
3096- self .mock_details ,
3097- "container_key" ,
3098- self .container_params ,
3099- )
3100-
3101- self .assertIn ("--mandatory 1" , result )
3102- self .assertNotIn ("--smm-default 500" , result )
3103-
3104- def test_case_3_value_overrides_defaults (self ):
3105- model = AquaMultiModelRef (
3106- model_id = "ocid1..." ,
3107- gpu_count = 1 ,
3108- params = {"--custom" : "99" },
3109- )
3110-
3111- result = ModelGroupConfig ._merge_gpu_count_params (
3112- model ,
3113- self .mock_config_summary ,
3114- self .mock_details ,
3115- "container_key" ,
3116- self .container_params ,
3117- )
3118-
3119- self .assertIn ("--mandatory 1" , result )
3120- self .assertIn ("--custom 99" , result )
3121- self .assertNotIn ("--smm-default 500" , result )
0 commit comments