Skip to content

Commit 7a06d21

Browse files
committed
fix_firewall_test
1 parent 5bf5aea commit 7a06d21

1 file changed

Lines changed: 37 additions & 28 deletions

File tree

test/integration/models/firewall/test_firewall.py

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,43 @@
88

99

1010
@pytest.fixture(scope="session")
11-
def linode_fw(test_linode_client):
11+
def linode_fw(test_linode_client, test_firewall):
1212
client = test_linode_client
1313
region = get_region(client, {"Linodes", "Cloud Firewall"}, site_type="core")
1414
label = get_test_label()
1515

16-
linode_instance, password = client.linode.instance_create(
16+
linode_instance, _ = client.linode.instance_create(
1717
"g6-nanode-1", region, image="linode/debian12", label=label
1818
)
1919

20-
yield linode_instance
20+
for fw in linode_instance.firewalls():
21+
fw_device = next((d for d in fw.devices if d.entity.id == linode_instance.id), None)
22+
if fw_device:
23+
fw_device.delete()
24+
25+
firewall = client.networking.firewall_create(
26+
label=f"{label}-fw",
27+
rules={
28+
"inbound": [],
29+
"inbound_policy": "DROP",
30+
"outbound": [],
31+
"outbound_policy": "ACCEPT",
32+
},
33+
)
34+
35+
client.post(
36+
f"/networking/firewalls/{firewall.id}/devices",
37+
data={"id": linode_instance.id, "type": "linode"},
38+
)
2139

22-
linode_instance.delete()
40+
try:
41+
yield linode_instance, firewall
42+
finally:
43+
for obj, name in ((firewall, "firewall"), (linode_instance, "Linode")):
44+
try:
45+
obj.delete()
46+
except Exception as e:
47+
print(f"Warning: failed to delete {name} {obj.id}: {e}")
2348

2449

2550
@pytest.mark.smoke
@@ -64,34 +89,18 @@ def test_update_firewall_rules(test_linode_client, test_firewall):
6489

6590

6691
def test_get_devices(test_linode_client, linode_fw):
67-
linode = linode_fw
68-
69-
firewalls = list(linode.firewalls())
70-
assert len(firewalls) > 0
71-
72-
firewall = test_linode_client.load(Firewall, firewalls[0].id)
73-
74-
devices = list(firewall.devices)
92+
linode, firewall = linode_fw
93+
devices = list(test_linode_client.load(Firewall, firewall.id).devices)
7594
assert any(d.entity.id == linode.id for d in devices)
7695

7796

7897
def test_get_device(test_linode_client, linode_fw):
79-
linode = linode_fw
80-
81-
firewalls = list(linode.firewalls())
82-
assert firewalls, "No firewalls found on Linode"
83-
84-
firewall = test_linode_client.load(Firewall, firewalls[0].id)
85-
86-
devices = list(firewall.devices)
98+
linode, firewall = linode_fw
99+
devices = list(test_linode_client.load(Firewall, firewall.id).devices)
87100
assert devices, "No devices found on Firewall"
88101

89-
device = next((d for d in devices if d.entity.id == linode.id), None)
90-
assert device is not None, f"No FirewallDevice found for Linode {linode.id}"
91-
92-
firewall_device = test_linode_client.load(
93-
FirewallDevice, device.id, firewall.id
94-
)
102+
device = next(d for d in devices if d.entity.id == linode.id)
103+
fw_device = test_linode_client.load(FirewallDevice, device.id, firewall.id)
95104

96-
assert firewall_device.entity.type == "linode"
97-
assert f"/v4/linode/instances/{linode.id}" in firewall_device.entity.url
105+
assert fw_device.entity.type == "linode"
106+
assert f"/v4/linode/instances/{linode.id}" in fw_device.entity.url

0 commit comments

Comments
 (0)