Skip to content

Commit 2736865

Browse files
committed
Create tests for Linode integration with alerts
1 parent e2d958f commit 2736865

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

test/integration/models/linode/test_linode.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,17 @@ def get_status(linode: Instance, status: str):
234234
def instance_type_condition(linode: Instance, type: str):
235235
return type in str(linode.type)
236236

237+
def test_get_linodes_verify_alerts(test_linode_client):
238+
linodes_list = test_linode_client.linode.instances().lists[0]
239+
assert len(linodes_list) > 0
240+
assert linodes_list[0].alerts.cpu >= 0
241+
assert linodes_list[0].alerts.io >= 0
242+
assert linodes_list[0].alerts.network_in >= 0
243+
assert linodes_list[0].alerts.network_out >= 0
244+
assert linodes_list[0].alerts.transfer_quota >= 0
245+
assert isinstance(linodes_list[0].alerts.system_alerts, list)
246+
assert isinstance(linodes_list[0].alerts.user_alerts, list)
247+
237248

238249
def test_get_linode(test_linode_client, linode_with_volume_firewall):
239250
linode = test_linode_client.load(Instance, linode_with_volume_firewall.id)
@@ -283,6 +294,8 @@ def test_linode_rebuild(test_linode_client):
283294

284295
assert linode.status == "rebuilding"
285296
assert linode.image.id == "linode/debian12"
297+
assert linode.alerts.cpu >= 0
298+
assert linode.alerts.io >= 0
286299

287300
assert linode.disk_encryption == InstanceDiskEncryptionType.disabled
288301

@@ -346,6 +359,65 @@ def test_linode_reboot(create_linode):
346359
assert linode.status == "running"
347360

348361

362+
def test_linode_alerts_workflow(test_linode_client, create_linode):
363+
linode = create_linode
364+
parent_linode_id = create_linode.id
365+
assert linode.alerts.cpu == 90
366+
assert linode.alerts.io == 10000
367+
assert linode.alerts.network_in == 10
368+
assert linode.alerts.network_out == 10
369+
assert linode.alerts.transfer_quota == 80
370+
assert isinstance(linode.alerts.system_alerts, list)
371+
assert isinstance(linode.alerts.user_alerts, list)
372+
373+
linode = test_linode_client.load(Instance, parent_linode_id)
374+
assert linode.alerts.cpu == 90
375+
assert linode.alerts.io == 10000
376+
assert linode.alerts.network_in == 10
377+
assert linode.alerts.network_out == 10
378+
assert linode.alerts.transfer_quota == 80
379+
assert isinstance(linode.alerts.system_alerts, list)
380+
assert isinstance(linode.alerts.user_alerts, list)
381+
382+
linode.alerts={
383+
"cpu": 50,
384+
"io": 6000,
385+
"network_in": 20,
386+
"network_out": 20,
387+
"transfer": 80,
388+
}
389+
linode.save()
390+
391+
wait_for_condition(10, 100, get_status, linode, "running")
392+
new_linode = retry_sending_request(5, linode.clone, parent_linode_id)
393+
assert new_linode.alerts.cpu == 50
394+
assert new_linode.alerts.io == 6000
395+
assert new_linode.alerts.network_in == 20
396+
assert new_linode.alerts.network_out == 20
397+
assert new_linode.alerts.transfer_quota == 80
398+
assert isinstance(new_linode.alerts.system_alerts, list)
399+
assert isinstance(new_linode.alerts.user_alerts, list)
400+
401+
402+
def test_try_to_update_linode_alerts_legacy_and_aclp_at_the_same_time(create_linode):
403+
linode = create_linode
404+
405+
linode.alerts={
406+
"cpu": 50,
407+
"io": 6000,
408+
"network_in": 20,
409+
"network_out": 20,
410+
"transfer": 50,
411+
"system_alerts": [1,436],
412+
"user_alerts": [555],
413+
}
414+
415+
with pytest.raises(RuntimeError) as err:
416+
linode.save()
417+
assert "Cannot set both legacy and ACLP alerts simultaneously" in str(err.value)
418+
assert "[400] alerts" in str(err.value)
419+
420+
349421
def test_linode_shutdown(create_linode):
350422
linode = create_linode
351423

0 commit comments

Comments
 (0)