33
44import pytest
55
6+ from scaleway .instance .v1 import IpType
67from scaleway .instance .v1 .custom_api import InstanceUtilsV1API
78from scaleway_async .instance .v1 import AttachServerVolumeRequestVolumeType
89from scaleway_core .client import Client
9- from scaleway .instance .v1 .types import VolumeVolumeType , BootType , Server , VolumeServerTemplate
10+ from scaleway .instance .v1 .types import (
11+ VolumeVolumeType ,
12+ BootType ,
13+ Server ,
14+ VolumeServerTemplate ,
15+ )
1016from scaleway .block .v1alpha1 import BlockV1Alpha1API
1117from scaleway .block .v1alpha1 .types import Volume , CreateVolumeRequestFromEmpty
1218from vcr_config import scw_vcr
1824commercial_type = "DEV1-S"
1925zone = "fr-par-1"
2026
27+ # mypy: ignore-errors
28+
29+
2130@pytest .fixture (scope = "module" )
2231@scw_vcr .use_cassette
2332def instance_block_api () -> tuple [InstanceUtilsV1API , BlockV1Alpha1API ]:
@@ -26,10 +35,12 @@ def instance_block_api() -> tuple[InstanceUtilsV1API, BlockV1Alpha1API]:
2635 block_api = BlockV1Alpha1API (client )
2736 return instance_api , block_api
2837
38+
2939@pytest .fixture (scope = "module" )
3040@scw_vcr .use_cassette
31- def instance_volume (instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ]) -> Generator [
32- tuple [Server | None , list [Volume ]], None , None ]:
41+ def instance_volume (
42+ instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ],
43+ ) -> Generator [tuple [Server | None , list [Volume ]], None , None ]:
3344 instance_api , block_api = instance_block_api
3445 volumes_list : list [Volume ] = []
3546 volumes = {
@@ -52,40 +63,59 @@ def instance_volume(instance_block_api: tuple[InstanceUtilsV1API, BlockV1Alpha1A
5263 instance_api .wait_test_instance_server (instance .server .id , zone = zone )
5364 yield instance .server , volumes_list
5465 for volume in volumes_list :
55- instance_api .detach_server_volume (server_id = instance .server .id , volume_id = volume .id , zone = zone )
66+ instance_api .detach_server_volume (
67+ server_id = instance .server .id , volume_id = volume .id , zone = zone
68+ )
5669 block_api .wait_for_volume (volume_id = volume .id , zone = zone )
5770 block_api .delete_volume (volume_id = volume .id , zone = zone )
5871 instance_api .delete_server (server_id = instance .server .id , zone = zone )
5972
73+
6074@scw_vcr .use_cassette
61- def test_attach_additionnal_volume (instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ], instance_volume : tuple [Server , list [Volume ]]) -> None :
75+ def test_attach_additionnal_volume (
76+ instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ],
77+ instance_volume : tuple [Server , list [Volume ]],
78+ ) -> None :
6279 instance_api , block_api = instance_block_api
6380 server , volumes_list = instance_volume
6481 additional_volume = block_api .create_volume (
6582 from_empty = CreateVolumeRequestFromEmpty (size = volume_size ),
6683 )
67- updated_volume = block_api .wait_for_volume (volume_id = additional_volume .id , zone = zone )
84+ updated_volume = block_api .wait_for_volume (
85+ volume_id = additional_volume .id , zone = zone
86+ )
6887 volumes_list .append (updated_volume )
6988 assert updated_volume .size == volume_size
7089 assert updated_volume .id is not None
7190
72- instance_api .attach_server_volume (server_id = server .id , volume_id = additional_volume .id , zone = zone , volume_type = AttachServerVolumeRequestVolumeType .SBS_VOLUME )
91+ instance_api .attach_server_volume (
92+ server_id = server .id ,
93+ volume_id = additional_volume .id ,
94+ zone = zone ,
95+ volume_type = AttachServerVolumeRequestVolumeType .SBS_VOLUME ,
96+ )
7397 instance_api .wait_test_instance_server (server_id = server .id , zone = zone )
7498 block_api .wait_for_volume (volume_id = additional_volume .id , zone = zone )
7599
76100 server_details = instance_api .get_server (server_id = server .id , zone = zone ).server
77101 attached_volume_ids = [v .id for v in server_details .volumes .values ()]
78102 assert additional_volume .id in attached_volume_ids
79103
104+
80105@scw_vcr .use_cassette
81- def test_list_server (instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ]) -> None :
106+ def test_list_server (
107+ instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ],
108+ ) -> None :
82109 instance_api , block_api = instance_block_api
83110 servers = instance_api .list_servers (zone = zone )
84- assert len (servers .servers ) = = 1
111+ assert len (servers .servers ) > = 1
85112 assert servers .servers [0 ].name == server_name
86113
114+
87115@scw_vcr .use_cassette
88- def test_create_new_server (instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ]) -> None :
116+ def test_create_new_server (
117+ instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ],
118+ ) -> None :
89119 instance_api , block_api = instance_block_api
90120 server = instance_api ._create_server (
91121 commercial_type = commercial_type ,
@@ -99,10 +129,16 @@ def test_create_new_server(instance_block_api: tuple[InstanceUtilsV1API, BlockV1
99129 assert server .server .id is not None
100130 assert server .server .name == server_name
101131
102- servers = instance_api .list_servers (zone = zone )
103- assert len (servers . servers ) = = 2
132+ servers = instance_api .list_servers_all (zone = zone )
133+ assert len (servers ) > = 2
104134
105135 instance_api .delete_server (server_id = server .server .id , zone = zone )
106136
107137
108-
138+ @scw_vcr .use_cassette
139+ def test_create_ip (
140+ instance_block_api : tuple [InstanceUtilsV1API , BlockV1Alpha1API ],
141+ ) -> None :
142+ instance_api , block_api = instance_block_api
143+ ip = instance_api .create_ip (type_ = IpType .ROUTED_IPV6 ).ip
144+ assert ip .id is not None
0 commit comments