forked from aws-powertools/powertools-lambda-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_cloud_watch_alarm_event.py
58 lines (50 loc) · 2.79 KB
/
test_cloud_watch_alarm_event.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import json
from aws_lambda_powertools.utilities.data_classes.cloud_watch_alarm_event import (
CloudWatchAlarmEvent,
CloudWatchAlarmStateValue,
)
from tests.functional.utils import load_event
def test_cloud_watch_alarm_event():
raw_event = load_event("cloudWatchAlarmEvent.json")
parsed_event = CloudWatchAlarmEvent(raw_event)
assert parsed_event.source == raw_event["source"]
assert parsed_event.region == raw_event["region"]
assert parsed_event.alarm_arn == raw_event["alarmArn"]
assert parsed_event.alarm_description == raw_event["alarmData"]["configuration"]["description"]
assert parsed_event.alarm_name == raw_event["alarmData"]["alarmName"]
assert parsed_event.state.value == CloudWatchAlarmStateValue[raw_event["alarmData"]["state"]["value"]]
assert parsed_event.state.reason == raw_event["alarmData"]["state"]["reason"]
assert parsed_event.state.reason_data == json.loads(raw_event["alarmData"]["state"]["reasonData"])
assert parsed_event.state.timestamp == raw_event["alarmData"]["state"]["timestamp"]
assert (
parsed_event.previous_state.value == CloudWatchAlarmStateValue[raw_event["alarmData"]["previousState"]["value"]]
)
assert parsed_event.previous_state.reason == raw_event["alarmData"]["previousState"]["reason"]
assert parsed_event.previous_state.reason_data == json.loads(raw_event["alarmData"]["previousState"]["reasonData"])
assert parsed_event.previous_state.timestamp == raw_event["alarmData"]["previousState"]["timestamp"]
# test the 'expression' metric
assert parsed_event.alarm_metrics[0].metric_id == raw_event["alarmData"]["configuration"]["metrics"][0]["id"]
assert (
parsed_event.alarm_metrics[0].expression == raw_event["alarmData"]["configuration"]["metrics"][0]["expression"]
)
assert parsed_event.alarm_metrics[0].label == raw_event["alarmData"]["configuration"]["metrics"][0]["label"]
assert (
parsed_event.alarm_metrics[0].return_data == raw_event["alarmData"]["configuration"]["metrics"][0]["returnData"]
)
# test the 'metric' metric
assert parsed_event.alarm_metrics[1].metric_id == raw_event["alarmData"]["configuration"]["metrics"][1]["id"]
assert (
parsed_event.alarm_metrics[1].name
== raw_event["alarmData"]["configuration"]["metrics"][1]["metricStat"]["metric"]["name"]
)
assert (
parsed_event.alarm_metrics[1].namespace
== raw_event["alarmData"]["configuration"]["metrics"][1]["metricStat"]["metric"]["namespace"]
)
assert (
parsed_event.alarm_metrics[1].dimensions
== raw_event["alarmData"]["configuration"]["metrics"][1]["metricStat"]["metric"]["dimensions"]
)
assert (
parsed_event.alarm_metrics[1].return_data == raw_event["alarmData"]["configuration"]["metrics"][1]["returnData"]
)