Skip to content

Commit ae5934d

Browse files
committed
test(instance): fix logic and retrieve client from env or config file
1 parent 7bb15b7 commit ae5934d

File tree

2 files changed

+29
-24
lines changed

2 files changed

+29
-24
lines changed

scaleway/tests/test_instance.py

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,24 @@
55

66
from scaleway_core.client import Client
77
from scaleway.instance.v1.api import InstanceV1API
8+
from scaleway.instance.v1.types import VolumeVolumeType, BootType
89
from scaleway.block.v1alpha1 import BlockV1Alpha1API
910
from scaleway.instance.v1.types import Server, VolumeServerTemplate
1011
from scaleway.block.v1alpha1.types import Volume, CreateVolumeRequestFromEmpty
1112

1213

1314
server_name = f"test-sdk-python-{uuid.uuid4().hex[:6]}"
1415
max_retry = 10
15-
interval = 0.1
16-
volume_size = 10
16+
interval = 0.01
17+
volume_size = 10000000000
1718
commercial_type = "DEV1-S"
1819
zone = "fr-par-1"
1920

2021

21-
@unittest.skip("Skipping this test temporarily")
2222
class TestE2EServerCreation(unittest.TestCase):
2323
def setUp(self) -> None:
2424
self.zone = zone
25-
self.client = Client.from_env()
25+
self.client = Client.from_config_file_and_env()
2626
self.instanceAPI = InstanceV1API(self.client, bypass_validation=True)
2727
self.blockAPI = BlockV1Alpha1API(self.client, bypass_validation=True)
2828
self._server = None
@@ -33,39 +33,44 @@ def tearDown(self) -> None:
3333
self.instanceAPI.detach_server_volume(
3434
server_id=self._server.id, volume_id=volume.id
3535
)
36-
36+
self.blockAPI.wait_for_volume(volume_id=volume.id)
3737
self.blockAPI.delete_volume(volume_id=volume.id)
3838

3939
if self._server:
4040
self.instanceAPI.delete_server(zone=self.zone, server_id=self._server.id)
4141

4242
def wait_test_instance_server(self, server_id):
43-
interval = interval
43+
int = interval
4444

4545
for i in range(1, max_retry):
46-
interval *= i
46+
int *= i
4747
s = self.instanceAPI.get_server(zone=self.zone, server_id=server_id)
4848

49-
if s.state == "running":
50-
break
49+
if s.server.state == "running" or s.server.state == "stopped":
50+
return s
5151

52-
time.sleep(interval)
52+
time.sleep(int)
5353

5454
self.fail("Server did not reach 'running' state in time.")
5555

5656
def create_test_instance_server(self) -> Server:
57-
volume = {
57+
volumes = dict[str, VolumeServerTemplate]()
58+
volumes = {
5859
"0": VolumeServerTemplate(
59-
volume_type="sbs_volume", name="my-volume", size=volume_size
60+
volume_type=VolumeVolumeType.L_SSD,
61+
size=volume_size,
62+
boot=False,
6063
)
6164
}
62-
6365
server = self.instanceAPI._create_server(
6466
commercial_type=commercial_type,
6567
zone=self.zone,
6668
name=server_name,
67-
dynamic_ip_required=True,
68-
volumes=volume,
69+
dynamic_ip_required=False,
70+
volumes=volumes,
71+
protected=False,
72+
boot_type=BootType.LOCAL,
73+
image="c00ae53c-1e29-4087-a384-47f3c5c1cd84",
6974
)
7075

7176
self._server = server.server
@@ -77,38 +82,38 @@ def create_test_instance_server(self) -> Server:
7782
def create_test_from_empty_volume(self, number) -> List[Volume]:
7883
volumes: List[Volume] = {}
7984

80-
for _i in range(number):
85+
for i in range(number):
8186
volume = self.blockAPI.create_volume(
82-
from_empty=CreateVolumeRequestFromEmpty(size=10),
87+
from_empty=CreateVolumeRequestFromEmpty(size=1000000000),
8388
)
8489

8590
self.blockAPI.wait_for_volume(volume_id=volume.id, zone=self.zone)
8691

8792
self._volumes.append(volume) # Ensure cleanup in tearDown
88-
volumes.append(volume)
93+
volumes[i] = volume
8994

9095
return volumes
9196

9297
def test_attach_aditionnal_volume(self):
9398
server = self.create_test_instance_server()
9499
additional_volumes = self.create_test_from_empty_volume(1)
95-
additional_volume = additional_volumes.values()[0]
100+
additional_volume = additional_volumes[0]
96101

97102
self.assertIsNotNone(server.id)
98103
self.assertEqual(server.zone, self.zone)
99104

100105
self.assertIsNotNone(additional_volume.id)
101-
self.assertEqual(additional_volume.size, 10)
106+
self.assertEqual(additional_volume.size, 1000000000)
102107

103108
self.instanceAPI.attach_server_volume(
104-
server_id=server.id, volume_id=additional_volume.id
109+
server_id=server.id, volume_id=additional_volume.id, volume_type=VolumeVolumeType.SBS_VOLUME
105110
)
106111

107112
self.blockAPI.wait_for_volume(volume_id=additional_volume.id, zone=self.zone)
108113

109114
updated_server = self.instanceAPI.get_server(
110115
zone=self.zone, server_id=server.id
111116
)
112-
attached_volumes = updated_server.volumes or {}
113-
attached_volume_ids = [v.volume.id for v in attached_volumes.values()]
117+
attached_volumes = updated_server.server.volumes or {}
118+
attached_volume_ids = [v.id for v in attached_volumes.values()]
114119
self.assertIn(additional_volume.id, attached_volume_ids)

scaleway/tests/test_vpc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
class TestScalewayVPCV2(unittest.TestCase):
1414
@classmethod
1515
def setUpClass(self):
16-
self.client = Client.from_env()
16+
self.client = Client.from_config_file_and_env()
1717
self.vpcAPI = VpcV2API(self.client)
1818
self.project_id = self.client.default_project_id
1919
self.region = region

0 commit comments

Comments
 (0)