Skip to content

Commit f2f2aad

Browse files
author
Ruslan Gainutdinov
committed
fix: tests
1 parent db27741 commit f2f2aad

File tree

2 files changed

+30
-11
lines changed

2 files changed

+30
-11
lines changed
Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import logging
12
import os
3+
import time
24

35
import pytest
46

@@ -7,6 +9,8 @@
79

810
IN_GITHUB_ACTIONS = os.getenv('GITHUB_ACTIONS') == 'true'
911

12+
logging.basicConfig(level=logging.DEBUG)
13+
logger = logging.getLogger()
1014

1115
@pytest.mark.skipif(IN_GITHUB_ACTIONS, reason="Test doesn't work in Github Actions.")
1216
@pytest.mark.withoutresponses
@@ -19,20 +23,35 @@ def test_create_instance(self, verda_client: VerdaClient):
1923
instance = verda_client.instances.create(
2024
hostname='test-instance',
2125
location=Locations.FIN_03,
22-
instance_type='CPU.4V',
23-
description='test instance',
24-
image='ubuntu-18.04',
26+
instance_type='CPU.4V.16G',
27+
description='test cpu instance',
28+
image='ubuntu-22.04',
2529
ssh_key_ids=[ssh_key.id],
30+
os_volume={'name': 'test-os-volume-cpu', 'size': 55},
2631
)
2732

2833
# assert instance is created
2934
assert instance.id is not None
3035
assert instance.status == verda_client.constants.instance_status.PROVISIONING
3136

32-
# delete instance
33-
verda_client.instances.action(instance.id, 'delete')
37+
while instance.status != verda_client.constants.instance_status.RUNNING:
38+
time.sleep(2)
39+
logger.debug('Waiting for instance to be running... %s', instance.status)
40+
instance = verda_client.instances.get_by_id(instance.id)
41+
42+
logger.debug('Instance is running... %s', instance.status)
43+
logger.debug('Instance ID: %s', instance.id)
44+
logger.debug('Instance OS Volume ID: %s', instance.os_volume_id)
45+
logger.debug('Instance IP: %s', instance.ip)
46+
47+
# assert os volume is created
48+
assert instance.os_volume_id is not None
3449

35-
# permanently delete all volumes in trash
36-
trash = verda_client.volumes.get_in_trash()
37-
for volume in trash:
38-
verda_client.volumes.delete(volume.id, is_permanent=True)
50+
# get os volume
51+
os_volume = verda_client.volumes.get_by_id(instance.os_volume_id)
52+
assert os_volume.id is not None
53+
assert os_volume.name == 'test-os-volume-cpu'
54+
assert os_volume.size == 55
55+
56+
# delete instance
57+
verda_client.instances.action(instance.id, 'delete', volume_ids=[instance.os_volume_id], delete_permanently=True)

verda/instances/_instances.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def create(
142142
startup_script_id: str | None = None,
143143
volumes: list[dict] | None = None,
144144
existing_volumes: list[str] | None = None,
145-
os_volume: OSVolume | None = None,
145+
os_volume: OSVolume | dict | None = None,
146146
is_spot: bool = False,
147147
contract: Contract | None = None,
148148
pricing: Pricing | None = None,
@@ -189,7 +189,7 @@ def create(
189189
'hostname': hostname,
190190
'description': description,
191191
'location_code': location,
192-
'os_volume': os_volume,
192+
'os_volume': os_volume if isinstance(os_volume, dict) else os_volume.to_dict() if os_volume else None,
193193
'volumes': volumes or [],
194194
'existing_volumes': existing_volumes or [],
195195
'is_spot': is_spot,

0 commit comments

Comments
 (0)