Skip to content

Commit 2ca53cc

Browse files
committed
Remove test test_try_to_update_linode_alerts_legacy_and_aclp_at_the_same_time and add test test_update_linode_aclp_alerts
1 parent e256458 commit 2ca53cc

File tree

2 files changed

+70
-17
lines changed

2 files changed

+70
-17
lines changed

test/integration/conftest.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,3 +728,64 @@ def test_monitor_client(get_monitor_token_for_db_entities):
728728
)
729729

730730
return client, entity_ids
731+
732+
733+
@pytest.fixture(scope="session")
734+
def create_alert_service_definition(test_linode_client):
735+
rule_criteria = {
736+
"rules": [
737+
{
738+
"aggregate_function": "min",
739+
"dimension_filters": [
740+
{
741+
"dimension_label": "node_type",
742+
"label": "Node Type",
743+
"operator": "eq",
744+
"value": "primary",
745+
}
746+
],
747+
"label": "Memory Usage",
748+
"metric": "memory_usage",
749+
"operator": "eq",
750+
"threshold": 95,
751+
"unit": "percent",
752+
}
753+
]
754+
}
755+
trigger_conditions = {
756+
"criteria_condition": "ALL",
757+
"evaluation_period_seconds": 300,
758+
"polling_interval_seconds": 900,
759+
"trigger_occurrences": 3,
760+
}
761+
channels = list(test_linode_client.monitor.alert_channels())
762+
if len(channels) == 0:
763+
raise Exception(
764+
"No alert channels available for testing. Please create an alert channel and try again."
765+
)
766+
alert = test_linode_client.monitor.create_alert_definition(
767+
service_type="dbaas",
768+
label=get_test_label() + "-service-definition",
769+
severity=1,
770+
description="description",
771+
channel_ids=[channels[0].id],
772+
rule_criteria=rule_criteria,
773+
trigger_conditions=trigger_conditions,
774+
)
775+
776+
yield alert
777+
778+
alert.delete()
779+
780+
781+
def get_system_alerts(client: LinodeClient):
782+
alerts = client.monitor.alert_definitions()
783+
system_alerts = []
784+
for alert in alerts.lists[0]:
785+
if alert.type == "system":
786+
system_alerts.append(alert)
787+
if len(system_alerts) == 0:
788+
raise Exception(
789+
"No system alert definitions found. Cannot run tests dependent on system alert definitions."
790+
)
791+
return system_alerts

test/integration/models/linode/test_linode.py

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import ipaddress
22
import time
3-
from test.integration.conftest import get_region
3+
from test.integration.conftest import get_region, get_system_alerts
44
from test.integration.helpers import (
55
get_test_label,
66
retry_sending_request,
@@ -407,27 +407,19 @@ def test_linode_alerts_workflow(test_linode_client, create_linode):
407407
new_linode.delete()
408408

409409

410-
def test_try_to_update_linode_alerts_legacy_and_aclp_at_the_same_time(
411-
create_linode,
410+
def test_update_linode_aclp_alerts(
411+
test_linode_client, create_linode, create_alert_service_definition
412412
):
413413
linode = create_linode
414+
sample_system_alert = get_system_alerts(test_linode_client)[0].id
414415

415416
linode.alerts = {
416-
"cpu": 50,
417-
"io": 6000,
418-
"network_in": 20,
419-
"network_out": 20,
420-
"transfer_quota": 50,
421-
"system_alerts": [1, 436],
422-
"user_alerts": [555],
417+
"user_alerts": [create_alert_service_definition.id],
418+
"system_alerts": [sample_system_alert],
423419
}
424-
425-
with pytest.raises(ApiError) as err:
426-
linode.save()
427-
assert "Cannot set both legacy and ACLP alerts simultaneously" in str(
428-
err.value
429-
)
430-
assert "[400] alerts" in str(err.value)
420+
linode.save()
421+
assert linode.alerts["user_alerts"] == [create_alert_service_definition.id]
422+
assert linode.alerts["system_alerts"] == [sample_system_alert]
431423

432424

433425
def test_linode_shutdown(create_linode):

0 commit comments

Comments
 (0)