Skip to content

Commit 040de20

Browse files
committed
fixed unit tests
1 parent 1a25531 commit 040de20

File tree

1 file changed

+44
-13
lines changed

1 file changed

+44
-13
lines changed

tests/unitary/with_extras/aqua/test_deployment.py

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2954,9 +2954,7 @@ def test_from_create_model_deployment_details(self):
29542954
)
29552955

29562956

2957-
# ... [Existing code in test_deployment.py] ...
2958-
2959-
2957+
@patch("ads.aqua.app.default_signer")
29602958
class TestSingleModelParamResolution(unittest.TestCase):
29612959
"""Tests strictly for the SMM parameter resolution logic in Single Model."""
29622960

@@ -2980,15 +2978,15 @@ def setUp(self):
29802978
# Mock Container Defaults (The mandatory left-side params)
29812979
self.mock_container_item = MagicMock()
29822980
self.mock_container_item.spec.cli_param = "--mandatory-param 1"
2983-
# Mock restricted params to empty list to pass validation
2981+
# Ensure restricted params are empty by default for this mock
29842982
self.mock_container_item.spec.restricted_params = []
29852983
self.app.get_container_config_item = MagicMock(
29862984
return_value=self.mock_container_item
29872985
)
29882986

2989-
@patch("ads.aqua.app.ModelDeployment")
2990-
@patch("ads.aqua.app.AquaModelApp")
2991-
def test_case_1_none_loads_defaults(self, mock_model_app, mock_deploy):
2987+
@patch("ads.aqua.modeldeployment.deployment.ModelDeployment")
2988+
@patch("ads.aqua.modeldeployment.deployment.AquaModelApp")
2989+
def test_case_1_none_loads_defaults(self, mock_model_app, mock_deploy, mock_signer):
29922990
"""Case 1: User input None -> Should load SMM defaults."""
29932991
details = CreateModelDeploymentDetails(
29942992
model_id="ocid1.model...",
@@ -3008,9 +3006,11 @@ def test_case_1_none_loads_defaults(self, mock_model_app, mock_deploy):
30083006
self.assertIn("--mandatory-param 1", final_params)
30093007
self.assertIn("--default-param 100", final_params)
30103008

3011-
@patch("ads.aqua.app.ModelDeployment")
3012-
@patch("ads.aqua.app.AquaModelApp")
3013-
def test_case_2_empty_clears_defaults(self, mock_model_app, mock_deploy):
3009+
@patch("ads.aqua.modeldeployment.deployment.ModelDeployment")
3010+
@patch("ads.aqua.modeldeployment.deployment.AquaModelApp")
3011+
def test_case_2_empty_clears_defaults(
3012+
self, mock_model_app, mock_deploy, mock_signer
3013+
):
30143014
"""Case 2: User input Empty String -> Should clear SMM defaults."""
30153015
details = CreateModelDeploymentDetails(
30163016
model_id="ocid1.model...",
@@ -3030,9 +3030,11 @@ def test_case_2_empty_clears_defaults(self, mock_model_app, mock_deploy):
30303030
# SMM Default should be GONE
30313031
self.assertNotIn("--default-param 100", final_params)
30323032

3033-
@patch("ads.aqua.app.ModelDeployment")
3034-
@patch("ads.aqua.app.AquaModelApp")
3035-
def test_case_3_value_overrides_defaults(self, mock_model_app, mock_deploy):
3033+
@patch("ads.aqua.modeldeployment.deployment.ModelDeployment")
3034+
@patch("ads.aqua.modeldeployment.deployment.AquaModelApp")
3035+
def test_case_3_value_overrides_defaults(
3036+
self, mock_model_app, mock_deploy, mock_signer
3037+
):
30363038
"""Case 3: User input Value -> Should use exact value (No Merge)."""
30373039
details = CreateModelDeploymentDetails(
30383040
model_id="ocid1.model...",
@@ -3053,6 +3055,35 @@ def test_case_3_value_overrides_defaults(self, mock_model_app, mock_deploy):
30533055
# SMM Default should be GONE
30543056
self.assertNotIn("--default-param 100", final_params)
30553057

3058+
@patch("ads.aqua.modeldeployment.deployment.ModelDeployment")
3059+
@patch("ads.aqua.modeldeployment.deployment.AquaModelApp")
3060+
def test_validation_blocks_restricted_params(
3061+
self, mock_model_app, mock_deploy, mock_signer
3062+
):
3063+
"""Test that restricted params cause error regardless of input source."""
3064+
3065+
# Setup: Override the container config for THIS test only
3066+
# We create a new mock to ensure we don't pollute other tests
3067+
restricted_mock_item = MagicMock()
3068+
restricted_mock_item.spec.cli_param = "--mandatory 1"
3069+
restricted_mock_item.spec.restricted_params = ["--seed"]
3070+
3071+
self.app.get_container_config_item = MagicMock(
3072+
return_value=restricted_mock_item
3073+
)
3074+
3075+
# User tries to override restricted param
3076+
details = CreateModelDeploymentDetails(
3077+
model_id="ocid1.model...",
3078+
instance_shape="VM.GPU.A10.1",
3079+
env_var={"PARAMS": "--seed 999"},
3080+
)
3081+
3082+
with self.assertRaises(AquaValueError) as context:
3083+
self.app.create(create_deployment_details=details)
3084+
3085+
self.assertIn("Parameters ['--seed'] are set by Aqua", str(context.exception))
3086+
30563087

30573088
class TestMultiModelParamResolution(unittest.TestCase):
30583089
"""Tests strictly for the SMM parameter resolution logic in Multi-Model."""

0 commit comments

Comments
 (0)