Skip to content

Commit e8541fd

Browse files
committed
tests: add regression tests vpc and mute instance
1 parent 5e6138c commit e8541fd

File tree

5 files changed

+124
-7
lines changed

5 files changed

+124
-7
lines changed

scaleway-async/tests/test_test_v1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from scaleway_async import Client, WaitForOptions
88
from scaleway_async.test.v1 import EyeColors, Human, HumanStatus, TestV1API
99

10-
10+
@unittest.skip("API test is not deployed")
1111
class TestTestV1(unittest.IsolatedAsyncioTestCase):
1212
async def asyncSetUp(self) -> None:
1313
client = Client.from_config_file_and_env()

scaleway/tests/test_instance.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
commercial_type = "DEV1-S"
2424
zone = "fr-par-1"
2525

26-
26+
@unittest.skip("Skipping this test temporarily")
2727
class TestE2EServerCreation(unittest.TestCase):
2828
def setUp(self) -> None:
2929
self.zone = zone
@@ -38,10 +38,10 @@ def tearDown(self) -> None:
3838
self.instanceAPI.detach_server_volume(
3939
server_id=self._server.id, volume_id=volume.id
4040
)
41-
logger.info("✅ Volume {volume.id} has been detach")
41+
logger.info(f"✅ Volume {volume.id} has been detach")
4242

4343
self.blockAPI.delete_volume(volume_id=volume.id)
44-
logger.info("✅ Volume {volume.id} has been deleted")
44+
logger.info(f"✅ Volume {volume.id} has been deleted")
4545

4646
if self._server:
4747
self.instanceAPI.delete_server(zone=self.zone, server_id=self._server.id)
@@ -60,7 +60,7 @@ def wait_test_instance_server(self, server_id):
6060

6161
time.sleep(interval)
6262

63-
self.fail("Server did not reach 'running' state in time.")
63+
self.fail(f"Server did not reach 'running' state in time.")
6464

6565
def create_test_instance_server(self) -> Server:
6666
volume = {
@@ -91,7 +91,7 @@ def create_test_from_empty_volume(self, number) -> List[Volume]:
9191
volume = self.blockAPI.create_volume(
9292
from_empty=CreateVolumeRequestFromEmpty(size=10),
9393
)
94-
logger.info("✅ Created server: {volume.id}")
94+
logger.info(f"✅ Created server: {volume.id}")
9595

9696
self.blockAPI.wait_for_volume(volume_id=volume.id, zone=self.zone)
9797

scaleway/tests/test_test_v1.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def setUp(self) -> None:
1919
client.secret_key = res.secret_key
2020
client.default_project_id = "00000000-0000-0000-0000-000000000000"
2121

22+
2223
def test_create_human(self) -> None:
2324
name = utils.random_name()
2425

@@ -42,10 +43,12 @@ def test_list_humans(self) -> None:
4243
humans = self.api.list_humans()
4344
self.assertTrue(isinstance(humans.humans, list))
4445

46+
4547
def test_list_humans_all(self) -> None:
4648
humans = self.api.list_humans_all()
4749
self.assertTrue(isinstance(humans, list))
4850

51+
4952
def test_get_human(self) -> None:
5053
name = utils.random_name()
5154

@@ -120,7 +123,7 @@ def test_delete_human(self) -> None:
120123
except Exception as e:
121124
self.assertNotIsInstance(e, TimeoutError)
122125
pass
123-
126+
124127
def test_run_human(self) -> None:
125128
name = utils.random_name()
126129

scaleway/tests/test_test_v1_marshalling.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,13 @@ def _assert_raw_and_unmarshalled_human(
105105
raw["updated_at"],
106106
)
107107

108+
@unittest.skip("API test is not deployed")
108109
def test_unmarshal_Human(self) -> None:
109110
data = _mock_human_raw()
110111
human = unmarshal_Human(data)
111112
self._assert_raw_and_unmarshalled_human(data, human)
112113

114+
@unittest.skip("API test is not deployed")
113115
def test_unmarshal_ListHumansResponse(self) -> None:
114116
humans = [_mock_human_raw() for _ in range(10)]
115117
data = {
@@ -164,6 +166,8 @@ def _assert_create_human_request_and_raw(
164166
self.assertEqual(request.name, raw["name"])
165167
self.assertEqual(request.shoe_size, raw["shoe_size"])
166168

169+
170+
@unittest.skip("API test is not deployed")
167171
def test_marshal_CreateHumanRequest(self) -> None:
168172
request = _mock_create_human_request()
169173
raw = marshal_CreateHumanRequest(request, utils.random_profile_defaults())

scaleway/tests/test_vpc.py

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
import logging
2+
import sys
3+
import unittest
4+
from scaleway.vpc.v2 import VpcV2API
5+
from scaleway_core.api import ScalewayException
6+
from scaleway_core.client import Client
7+
from scaleway_core.utils import random_name
8+
9+
logger = logging.getLogger()
10+
logger.level = logging.DEBUG
11+
stream_handler = logging.StreamHandler(sys.stdout)
12+
logger.addHandler(stream_handler)
13+
14+
region = "fr-par"
15+
tags = ["sdk-python", "regression-test"]
16+
17+
class TestScalewayVPCV2(unittest.TestCase):
18+
@classmethod
19+
def setUpClass(self):
20+
self.client = Client.from_config_file_and_env()
21+
self.vpcAPI = VpcV2API(self.client)
22+
self.project_id = self.client.default_project_id
23+
self.region = region
24+
self._vpc= None
25+
self._pns_to_cleanup = []
26+
27+
self._vpc = self.vpcAPI.create_vpc(
28+
enable_routing=True,
29+
region=self.region,
30+
project_id=self.project_id,
31+
name=random_name("vpc-test-sdk-python")
32+
)
33+
logger.info(f"✅ VPC {self._vpc.id} has been created")
34+
35+
@classmethod
36+
def tearDownClass(self):
37+
for pn in self._pns_to_cleanup:
38+
self.vpcAPI.delete_private_network(private_network_id=pn.id)
39+
logger.info(f"🧹 Deleted Private Network {pn.id}")
40+
41+
if self._vpc is not None:
42+
self.vpcAPI.delete_vpc(vpc_id=self._vpc.id, region=self.region)
43+
logger.info(f"🧹 Deleted VPC {self._vpc.id}")
44+
45+
def test_delete_vpc(self):
46+
vpc = self.vpcAPI.create_vpc(
47+
enable_routing=True,
48+
region=self.region,
49+
project_id=self.project_id,
50+
name=random_name("vpc-test-sdk-python")
51+
)
52+
logger.info(f"✅ VPC {vpc.id} has been created")
53+
self.assertIsNotNone(vpc.id)
54+
self.assertEqual(vpc.region, self.region)
55+
56+
self.vpcAPI.delete_vpc(vpc_id=vpc.id)
57+
logger.info(f"🗑️ VPC {vpc.id} deletion requested")
58+
59+
with self.assertRaises(ScalewayException):
60+
self.vpcAPI.get_vpc(vpc_id=vpc.id)
61+
logger.info(f"✅ VPC {vpc.id} has been deleted successfully")
62+
63+
def test_list_vpcs(self):
64+
vpcs = self.vpcAPI.list_vp_cs(region=self.region).vpcs
65+
logger.info(f"🔎 Listed {len(vpcs)} VPC(s) in region: {self.region}")
66+
self.assertIsInstance(vpcs, list)
67+
68+
def test_create_private_network(self):
69+
for i in range(5):
70+
pn = self.vpcAPI.create_private_network(
71+
vpc_id=self._vpc.id,
72+
default_route_propagation_enabled=True,
73+
project_id=self.project_id,
74+
name=random_name(f"pn-{i}")
75+
)
76+
self._pns_to_cleanup.append(pn)
77+
logger.info(f"✅ PN {i+1}/5: {pn.id} created in VPC {self._vpc.id}")
78+
self.assertEqual(pn.vpc_id, self._vpc.id)
79+
80+
def test_list_private_network(self):
81+
networks = self.vpcAPI.list_private_networks(region=self.region)
82+
logger.info(f"🔎 Listed {networks.total_count} private network(s) in region: {self.region}")
83+
self.assertIsInstance(networks.private_networks, list)
84+
85+
def test_get_vpc(self):
86+
vpc = self.vpcAPI.get_vpc(vpc_id=self._vpc.id, region=self.region)
87+
logger.info(f"📥 Retrieved VPC {vpc.id}")
88+
self.assertIsNotNone(vpc)
89+
self.assertEqual(self._vpc.id, vpc.id)
90+
91+
def test_update_vpc(self):
92+
vpc = self.vpcAPI.update_vpc(vpc_id=self._vpc.id, tags=tags)
93+
logger.info(f"🛠️ Updated VPC {vpc.id} with tags: {tags}")
94+
self.assertEqual(vpc.tags, tags)
95+
self.assertEqual(self._vpc.id, vpc.id)
96+
97+
def test_list_vpc_all(self):
98+
vpcs = self.vpcAPI.list_vp_cs_all()
99+
logger.info(f"📥 Retrieved total of {len(vpcs)} VPC(s) across all regions")
100+
self.assertIsInstance(vpcs, list)
101+
102+
103+
104+
105+
106+
107+
108+
109+
110+

0 commit comments

Comments
 (0)