@@ -118,6 +118,36 @@ def test_cluster_apply_scale_up_scale_down(mocker):
118
118
cluster .down ()
119
119
120
120
121
+ def test_cluster_apply_with_file (mocker ):
122
+ mocker .patch ("kubernetes.client.ApisApi.get_api_versions" )
123
+ mocker .patch ("kubernetes.config.load_kube_config" , return_value = "ignore" )
124
+ mock_dynamic_client = mocker .Mock ()
125
+ mocker .patch ("codeflare_sdk.ray.cluster.cluster.Cluster._throw_for_no_raycluster" )
126
+ mocker .patch (
127
+ "kubernetes.dynamic.DynamicClient.resources" , new_callable = mocker .PropertyMock
128
+ )
129
+ mocker .patch (
130
+ "codeflare_sdk.ray.cluster.cluster.Cluster.create_resource" ,
131
+ return_value = "./tests/test_cluster_yamls/ray/default-ray-cluster.yaml" ,
132
+ )
133
+ mocker .patch ("kubernetes.config.load_kube_config" , return_value = "ignore" )
134
+ mocker .patch (
135
+ "kubernetes.client.CustomObjectsApi.get_cluster_custom_object" ,
136
+ return_value = {"spec" : {"domain" : "apps.cluster.awsroute.org" }},
137
+ )
138
+
139
+ # Step 1: Create cluster with initial workers
140
+ cluster = create_cluster (mocker , 1 , write_to_file = True )
141
+ patch_cluster_with_dynamic_client (mocker , cluster , mock_dynamic_client )
142
+ mocker .patch (
143
+ "kubernetes.client.CustomObjectsApi.list_namespaced_custom_object" ,
144
+ return_value = get_obj_none ("ray.io" , "v1" , "ns" , "rayclusters" ),
145
+ )
146
+ cluster .apply ()
147
+ # Tear down
148
+ cluster .down ()
149
+
150
+
121
151
def test_cluster_up_down_no_mcad (mocker ):
122
152
mocker .patch ("codeflare_sdk.ray.cluster.cluster.Cluster._throw_for_no_raycluster" )
123
153
mocker .patch ("kubernetes.config.load_kube_config" , return_value = "ignore" )
0 commit comments