3737
3838DEPLOYMENT_NAME = "test-deployment"
3939CONTAINER_NAME = "test-container"
40- COMPUTE_RESOURCE_NAME = "test-compute"
40+ COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE = "General Compute"
41+ COMPUTE_RESOURCE_NAME_H100 = "H100"
4142SECRET_NAME = "test-secret"
4243SECRET_VALUE = "test-secret-value"
4344REGISTRY_CREDENTIAL_NAME = "test-credential"
8283 }
8384 ],
8485 "compute" : {
85- "name" : COMPUTE_RESOURCE_NAME ,
86+ "name" : COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE ,
8687 "size" : 1 ,
8788 "is_available" : True
8889 },
118119# Sample compute resources data
119120COMPUTE_RESOURCES_DATA = [
120121 {
121- "name" : COMPUTE_RESOURCE_NAME ,
122+ "name" : COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE ,
122123 "size" : 1 ,
123124 "is_available" : True
124125 },
125126 {
126- "name" : "large-compute" ,
127+ "name" : COMPUTE_RESOURCE_NAME_H100 ,
127128 "size" : 4 ,
128129 "is_available" : True
129130 }
@@ -218,7 +219,7 @@ def test_get_deployments(self, containers_service, deployments_endpoint):
218219 assert len (deployment .containers ) == 1
219220 assert type (deployment .containers [0 ]) == Container
220221 assert type (deployment .compute ) == ComputeResource
221- assert deployment .compute .name == COMPUTE_RESOURCE_NAME
222+ assert deployment .compute .name == COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE
222223 assert responses .assert_call_count (deployments_endpoint , 1 ) is True
223224
224225 @responses .activate
@@ -240,7 +241,7 @@ def test_get_deployment_by_name(self, containers_service, deployments_endpoint):
240241 assert deployment .name == DEPLOYMENT_NAME
241242 assert len (deployment .containers ) == 1
242243 assert deployment .containers [0 ].name == CONTAINER_NAME
243- assert deployment .compute .name == COMPUTE_RESOURCE_NAME
244+ assert deployment .compute .name == COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE
244245 assert responses .assert_call_count (url , 1 ) is True
245246
246247 @responses .activate
@@ -285,7 +286,8 @@ def test_create_deployment(self, containers_service, deployments_endpoint):
285286 type = VolumeMountType .SCRATCH , mount_path = "/data" )]
286287 )
287288
288- compute = ComputeResource (name = COMPUTE_RESOURCE_NAME , size = 1 )
289+ compute = ComputeResource (
290+ name = COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE , size = 1 )
289291
290292 container_registry_settings = ContainerRegistrySettings (
291293 is_private = False )
@@ -307,7 +309,7 @@ def test_create_deployment(self, containers_service, deployments_endpoint):
307309 assert created_deployment .name == DEPLOYMENT_NAME
308310 assert len (created_deployment .containers ) == 1
309311 assert created_deployment .containers [0 ].name == CONTAINER_NAME
310- assert created_deployment .compute .name == COMPUTE_RESOURCE_NAME
312+ assert created_deployment .compute .name == COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE
311313 assert responses .assert_call_count (deployments_endpoint , 1 ) is True
312314
313315 @responses .activate
@@ -331,7 +333,8 @@ def test_update_deployment(self, containers_service, deployments_endpoint):
331333 container_registry_settings = ContainerRegistrySettings (
332334 is_private = False )
333335
334- compute = ComputeResource (name = COMPUTE_RESOURCE_NAME , size = 1 )
336+ compute = ComputeResource (
337+ name = COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE , size = 1 )
335338
336339 deployment = Deployment (
337340 name = DEPLOYMENT_NAME ,
@@ -349,7 +352,7 @@ def test_update_deployment(self, containers_service, deployments_endpoint):
349352 assert updated_deployment .name == DEPLOYMENT_NAME
350353 assert len (updated_deployment .containers ) == 1
351354 assert updated_deployment .containers [0 ].name == CONTAINER_NAME
352- assert updated_deployment .compute .name == COMPUTE_RESOURCE_NAME
355+ assert updated_deployment .compute .name == COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE
353356 assert responses .assert_call_count (url , 1 ) is True
354357
355358 @responses .activate
@@ -648,7 +651,73 @@ def test_get_compute_resources(self, containers_service, compute_resources_endpo
648651 assert type (resources ) == list
649652 assert len (resources ) == 2
650653 assert type (resources [0 ]) == ComputeResource
651- assert resources [0 ].name == COMPUTE_RESOURCE_NAME
654+ assert resources [0 ].name == COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE
655+ assert resources [0 ].size == 1
656+ assert resources [0 ].is_available == True
657+ assert responses .assert_call_count (
658+ compute_resources_endpoint , 1 ) is True
659+
660+ @responses .activate
661+ def test_get_compute_resources_filter_by_size (self , containers_service , compute_resources_endpoint ):
662+ # arrange - add response mock
663+ responses .add (
664+ responses .GET ,
665+ compute_resources_endpoint ,
666+ json = [COMPUTE_RESOURCES_DATA ],
667+ status = 200
668+ )
669+
670+ # act
671+ resources = containers_service .get_compute_resources (size = 4 )
672+
673+ # assert
674+ assert type (resources ) == list
675+ assert len (resources ) == 1
676+ assert type (resources [0 ]) == ComputeResource
677+ assert resources [0 ].name == COMPUTE_RESOURCE_NAME_H100
678+ assert resources [0 ].size == 4
679+ assert resources [0 ].is_available == True
680+ assert responses .assert_call_count (
681+ compute_resources_endpoint , 1 ) is True
682+
683+ @responses .activate
684+ def test_get_compute_resources_filter_by_availability (self , containers_service , compute_resources_endpoint ):
685+ # arrange - add response mock
686+ responses .add (
687+ responses .GET ,
688+ compute_resources_endpoint ,
689+ json = [COMPUTE_RESOURCES_DATA ],
690+ status = 200
691+ )
692+
693+ # act
694+ resources = containers_service .get_compute_resources (is_available = True )
695+
696+ # assert
697+ assert type (resources ) == list
698+ assert len (resources ) == 2
699+ assert all (r .is_available == True for r in resources )
700+ assert responses .assert_call_count (
701+ compute_resources_endpoint , 1 ) is True
702+
703+ @responses .activate
704+ def test_get_compute_resources_filter_by_size_and_availability (self , containers_service , compute_resources_endpoint ):
705+ # arrange - add response mock
706+ responses .add (
707+ responses .GET ,
708+ compute_resources_endpoint ,
709+ json = [COMPUTE_RESOURCES_DATA ],
710+ status = 200
711+ )
712+
713+ # act
714+ resources = containers_service .get_compute_resources (
715+ size = 1 , is_available = True )
716+
717+ # assert
718+ assert type (resources ) == list
719+ assert len (resources ) == 1
720+ assert resources [0 ].name == COMPUTE_RESOURCE_NAME_GENERAL_COMPUTE
652721 assert resources [0 ].size == 1
653722 assert resources [0 ].is_available == True
654723 assert responses .assert_call_count (
0 commit comments