8000 fix validation in test for put-subscription-filter with lambda (#7894) · codeperl/localstack@c844c9a · GitHub
[go: up one dir, main page]

Skip to content

Commit c844c9a

Browse files
authored
fix validation in test for put-subscription-filter with lambda (localstack#7894)
1 parent 92dca7d commit c844c9a

File tree

2 files changed

+34
-27
lines changed

2 files changed

+34
-27
lines changed

tests/integration/test_logs.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# -*- coding: utf-8 -*-
2+
import base64
23
import gzip
34
import json
45
import re
@@ -222,11 +223,10 @@ def test_put_subscription_filter_lambda(
222223
KeyValueBasedTransformer(
223224
lambda k, v: (
224225
v
225-
if k == "eventId"
226-
and (isinstance(v, str) and re.match(re.compile(r"^[0-9]+$"), v))
226+
if k == "id" and (isinstance(v, str) and re.match(re.compile(r"^[0-9]+$"), v))
227227
else None
228228
),
229-
replacement="event_id",
229+
replacement="id",
230230
replace_reference=False,
231231
),
232232
)
@@ -277,14 +277,25 @@ def test_put_subscription_filter_lambda(
277277

278278
def check_invocation():
279279
events = testutil.list_all_log_events(
280-
log_group_name=logs_log_group, logs_client=logs_client
280+
log_group_name=f"/aws/lambda/{test_lambda_name}", logs_client=logs_client
281281
)
282-
assert len(events) == 2
283-
events.sort(key=lambda k: k.get("message"))
284-
snapshot.match("list_all_log_events", events)
285-
assert isinstance(events[0]["eventId"], str)
286-
assert "test" == events[0]["message"]
287-
assert "test 2" in events[1]["message"]
282+
# we only are interested in events that contain "awslogs"
283+
filtered_events = []
284+
for e in events:
285+
if "awslogs" in e["message"]:
286+
# the message will look like this:
287+
# {"messageType":"DATA_MESSAGE","owner":"000000000000","logGroup":"log-group",
288+
# "logStream":"log-stream","subscriptionFilters":["test"],
289+
# "logEvents":[{"id":"7","timestamp":1679056073581,"message":"test"},
290+
# {"id":"8","timestamp":1679056073581,"message":"test 2"}]}
291+
data = json.loads(e["message"])["awslogs"]["data"].encode("utf-8")
292+
decoded_data = gzip.decompress(base64.b64decode(data)).decode("utf-8")
293+
for log_event in json.loads(decoded_data)["logEvents"]:
294+
filtered_events.append(log_event)
295+
assert len(filtered_events) == 2
296+
297+
filtered_events.sort(key=lambda k: k.get("message"))
298+
snapshot.match("list_all_log_events", filtered_events)
288299

289300
retry(check_invocation, retries=6, sleep=3.0)
290301

tests/integration/test_logs.snapshot.json

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
{
22
"tests/integration/test_logs.py::TestCloudWatchLogs::test_put_subscription_filter_lambda": {
3-
"recorded-date": "08-06-2022, 11:51:14",
3+
"recorded-date": "17-03-2023, 13:55:00",
44
"recorded-content": {
55
"add_permission": {
6-
"ResponseMetadata": {
7-
"HTTPHeaders": {},
8-
"HTTPStatusCode": 201
9-
},
106
"Statement": {
117
"Sid": "<resource:1>",
128
"Effect": "Allow",
@@ -23,6 +19,10 @@
2319
"AWS:SourceArn": "arn:aws:logs:<region>:111111111111:log-group:<log-group-name:1>:<resource:2>"
2420
}
2521
}
22+
},
23+
"ResponseMetadata": {
24+
"HTTPHeaders": {},
25+
"HTTPStatusCode": 201
2626
}
2727
},
2828
"put_subscription_filter": {
@@ -34,12 +34,12 @@
3434
"describe_subscription_filter": {
3535
"subscriptionFilters": [
3636
{
37-
"filterName": "test",
38-
"logGroupName": "<log-group-name:1>",
39-
"filterPattern": "",
37+
"creationTime": "timestamp",
4038
"destinationArn": "arn:aws:lambda:<region>:111111111111:function:<resource:1>",
4139
"distribution": "ByLogStream",
42-
"creationTime": "timestamp"
40+
"filterName": "test",
41+
"filterPattern": "",
42+
"logGroupName": "<log-group-name:1>"
4343
}
4444
],
4545
"ResponseMetadata": {
@@ -49,18 +49,14 @@
4949
},
5050
"list_all_log_events": [
5151
{
52-
"logStreamName": "<log-stream-name:1>",
52+
"id": "id",
5353
"timestamp": "timestamp",
54-
"message": "test",
55-
"ingestionTime": "timestamp",
56-
"eventId": "event_id"
54+
"message": "test"
5755
},
5856
{
59-
"logStreamName": "<log-stream-name:1>",
57+
"id": "id",
6058
"timestamp": "timestamp",
61-
"message": "test 2",
62-
"ingestionTime": "timestamp",
63-
"eventId": "event_id"
59+
"message": "test 2"
6460
}
6561
]
6662
}

0 commit comments

Comments
 (0)
0