1414STORAGE_DESCRIPTION = '1800GB NVME'
1515STORAGE_SIZE = 1800
1616INSTANCE_TYPE_DESCRIPTION = 'Dedicated Bare metal Server'
17+ BEST_FOR = ['Large model inference' , 'Multi-GPU training' ]
18+ MODEL = 'V100'
19+ NAME = 'Tesla V100'
20+ P2P = '300 GB/s'
1721PRICE_PER_HOUR = 5.0
1822SPOT_PRICE_PER_HOUR = 2.5
23+ SERVERLESS_PRICE = 1.25
24+ SERVERLESS_SPOT_PRICE = 0.75
1925INSTANCE_TYPE = '8V100.48M'
26+ CURRENCY = 'eur'
27+ MANUFACTURER = 'NVIDIA'
28+ DISPLAY_NAME = 'NVIDIA Tesla V100'
29+ SUPPORTED_OS = ['ubuntu-24.04-cuda-12.8-open-docker' ]
2030
2131
32+ @responses .activate
2233def test_instance_types (http_client ):
2334 # arrange - add response mock
2435 responses .add (
2536 responses .GET ,
26- http_client ._base_url + '/instance-types' ,
37+ http_client ._base_url + '/instance-types?currency=eur ' ,
2738 json = [
2839 {
2940 'id' : TYPE_ID ,
41+ 'best_for' : BEST_FOR ,
3042 'cpu' : {
3143 'description' : CPU_DESCRIPTION ,
3244 'number_of_cores' : NUMBER_OF_CORES ,
3345 },
46+ 'deploy_warning' : 'Use updated drivers' ,
3447 'gpu' : {
3548 'description' : GPU_DESCRIPTION ,
3649 'number_of_gpus' : NUMBER_OF_GPUS ,
@@ -48,9 +61,18 @@ def test_instance_types(http_client):
4861 'size_in_gigabytes' : STORAGE_SIZE ,
4962 },
5063 'description' : INSTANCE_TYPE_DESCRIPTION ,
64+ 'model' : MODEL ,
65+ 'name' : NAME ,
66+ 'p2p' : P2P ,
5167 'price_per_hour' : '5.00' ,
5268 'spot_price' : '2.50' ,
69+ 'serverless_price' : '1.25' ,
70+ 'serverless_spot_price' : '0.75' ,
5371 'instance_type' : INSTANCE_TYPE ,
72+ 'currency' : CURRENCY ,
73+ 'manufacturer' : MANUFACTURER ,
74+ 'display_name' : DISPLAY_NAME ,
75+ 'supported_os' : SUPPORTED_OS ,
5476 }
5577 ],
5678 status = 200 ,
@@ -59,7 +81,7 @@ def test_instance_types(http_client):
5981 instance_types_service = InstanceTypesService (http_client )
6082
6183 # act
62- instance_types = instance_types_service .get ()
84+ instance_types = instance_types_service .get (currency = 'eur' )
6385 instance_type = instance_types [0 ]
6486
6587 # assert
@@ -71,6 +93,17 @@ def test_instance_types(http_client):
7193 assert instance_type .price_per_hour == PRICE_PER_HOUR
7294 assert instance_type .spot_price_per_hour == SPOT_PRICE_PER_HOUR
7395 assert instance_type .instance_type == INSTANCE_TYPE
96+ assert instance_type .best_for == BEST_FOR
97+ assert instance_type .model == MODEL
98+ assert instance_type .name == NAME
99+ assert instance_type .p2p == P2P
100+ assert instance_type .currency == CURRENCY
101+ assert instance_type .manufacturer == MANUFACTURER
102+ assert instance_type .display_name == DISPLAY_NAME
103+ assert instance_type .supported_os == SUPPORTED_OS
104+ assert instance_type .deploy_warning == 'Use updated drivers'
105+ assert instance_type .serverless_price == SERVERLESS_PRICE
106+ assert instance_type .serverless_spot_price == SERVERLESS_SPOT_PRICE
74107 assert isinstance (instance_type .cpu , dict )
75108 assert isinstance (instance_type .gpu , dict )
76109 assert isinstance (instance_type .memory , dict )
0 commit comments