|
| 1 | +import responses # https://github.com/getsentry/responses |
| 2 | + |
| 3 | +from verda.container_types import ContainerType, ContainerTypesService |
| 4 | + |
| 5 | +CONTAINER_TYPE_ID = 'type-c0de-a5d2-4972-ae4e-d429115d055b' |
| 6 | + |
| 7 | + |
| 8 | +@responses.activate |
| 9 | +def test_container_types(http_client): |
| 10 | + endpoint = http_client._base_url + '/container-types?currency=eur' |
| 11 | + responses.add( |
| 12 | + responses.GET, |
| 13 | + endpoint, |
| 14 | + json=[ |
| 15 | + { |
| 16 | + 'id': CONTAINER_TYPE_ID, |
| 17 | + 'model': 'H100', |
| 18 | + 'name': 'H100 SXM5 80GB', |
| 19 | + 'instance_type': '1H100.80S.22V', |
| 20 | + 'cpu': {'description': '22 CPU', 'number_of_cores': 22}, |
| 21 | + 'gpu': {'description': '1x H100 SXM5 80GB', 'number_of_gpus': 1}, |
| 22 | + 'gpu_memory': {'description': '80GB GPU RAM', 'size_in_gigabytes': 80}, |
| 23 | + 'memory': {'description': '187GB RAM', 'size_in_gigabytes': 187}, |
| 24 | + 'serverless_price': '1.75', |
| 25 | + 'serverless_spot_price': '0.87', |
| 26 | + 'currency': 'eur', |
| 27 | + 'manufacturer': 'NVIDIA', |
| 28 | + } |
| 29 | + ], |
| 30 | + status=200, |
| 31 | + ) |
| 32 | + |
| 33 | + service = ContainerTypesService(http_client) |
| 34 | + |
| 35 | + container_types = service.get(currency='eur') |
| 36 | + container_type = container_types[0] |
| 37 | + |
| 38 | + assert isinstance(container_types, list) |
| 39 | + assert len(container_types) == 1 |
| 40 | + assert isinstance(container_type, ContainerType) |
| 41 | + assert container_type.id == CONTAINER_TYPE_ID |
| 42 | + assert container_type.model == 'H100' |
| 43 | + assert container_type.name == 'H100 SXM5 80GB' |
| 44 | + assert container_type.instance_type == '1H100.80S.22V' |
| 45 | + assert container_type.serverless_price == 1.75 |
| 46 | + assert container_type.serverless_spot_price == 0.87 |
| 47 | + assert container_type.currency == 'eur' |
| 48 | + assert container_type.manufacturer == 'NVIDIA' |
| 49 | + assert responses.assert_call_count(endpoint, 1) is True |
0 commit comments