|
1 | 1 | # -*- coding: utf-8 -*-
|
| 2 | +import base64 |
2 | 3 | import gzip
|
3 | 4 | import json
|
4 | 5 | import re
|
@@ -222,11 +223,10 @@ def test_put_subscription_filter_lambda(
|
222 | 223 | KeyValueBasedTransformer(
|
223 | 224 | lambda k, v: (
|
224 | 225 | 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)) |
227 | 227 | else None
|
228 | 228 | ),
|
229 |
| - replacement="event_id", |
| 229 | + replacement="id", |
230 | 230 | replace_reference=False,
|
231 | 231 | ),
|
232 | 232 | )
|
@@ -277,14 +277,25 @@ def test_put_subscription_filter_lambda(
|
277 | 277 |
|
278 | 278 | def check_invocation():
|
279 | 279 | 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 |
281 | 281 | )
|
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) |
288 | 299 |
|
289 | 300 | retry(check_invocation, retries=6, sleep=3.0)
|
290 | 301 |
|
|
0 commit comments