Skip to content

Commit a0adaee

Browse files
committed
add test test_kinesis_stream_with_tumbling_window_event
1 parent 3f07f43 commit a0adaee

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
{
3+
"Records": [
4+
{
5+
"kinesis": {
6+
"kinesisSchemaVersion": "1.0",
7+
"partitionKey": "1",
8+
"sequenceNumber": "49590338271490256608559692538361571095921575989136588898",
9+
"data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
10+
"approximateArrivalTimestamp": 1607497475.000
11+
},
12+
"eventSource": "aws:kinesis",
13+
"eventVersion": "1.0",
14+
"eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898",
15+
"eventName": "aws:kinesis:record",
16+
"invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-kinesis-role",
17+
"awsRegion": "us-east-1",
18+
"eventSourceARN": "arn:aws:kinesis:us-east-1:123456789012:stream/lambda-stream"
19+
}
20+
],
21+
"window": {
22+
"start": "2020-12-09T07:04:00Z",
23+
"end": "2020-12-09T07:06:00Z"
24+
},
25+
"state": {
26+
"1": 282,
27+
"2": 715
28+
},
29+
"shardId": "shardId-000000000006",
30+
"eventSourceARN": "arn:aws:kinesis:us-east-1:123456789012:stream/lambda-stream",
31+
"isFinalInvokeForWindow": false,
32+
"isWindowTerminatedEarly": false
33+
}

tests/unit/data_classes/required_dependencies/test_kinesis_stream_event.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,41 @@ def test_kinesis_stream_event_cloudwatch_logs_data_extraction():
6363
individual_logs = [extract_cloudwatch_logs_from_record(record) for record in event.records]
6464

6565
assert len(extracted_logs) == len(individual_logs)
66+
67+
68+
def test_kinesis_stream_with_tumbling_window_event():
69+
raw_event = load_event("kinesisStreamTumblingWindowEvent.json")
70+
parsed_event = KinesisStreamEvent(raw_event)
71+
72+
records = list(parsed_event.records)
73+
assert len(records) == 1
74+
record = records[0]
75+
76+
record_raw = raw_event["Records"][0]
77+
78+
assert record.aws_region == record_raw["awsRegion"]
79+
assert record.event_id == record_raw["eventID"]
80+
assert record.event_name == record_raw["eventName"]
81+
assert record.event_source == record_raw["eventSource"]
82+
assert record.event_source_arn == record_raw["eventSourceARN"]
83+
assert record.event_version == record_raw["eventVersion"]
84+
assert record.invoke_identity_arn == record_raw["invokeIdentityArn"]
85+
86+
kinesis = record.kinesis
87+
kinesis_raw = raw_event["Records"][0]["kinesis"]
88+
89+
assert kinesis.approximate_arrival_timestamp == kinesis_raw["approximateArrivalTimestamp"]
90+
assert kinesis.data == kinesis_raw["data"]
91+
assert kinesis.kinesis_schema_version == kinesis_raw["kinesisSchemaVersion"]
92+
assert kinesis.partition_key == kinesis_raw["partitionKey"]
93+
assert kinesis.sequence_number == kinesis_raw["sequenceNumber"]
94+
95+
assert kinesis.data_as_bytes() == b"Hello, this is a test."
96+
assert kinesis.data_as_text() == "Hello, this is a test."
97+
98+
assert parsed_event.window.raw_event == raw_event["window"]
99+
assert parsed_event.state == raw_event["state"]
100+
assert parsed_event.shard_id == raw_event["shardId"]
101+
assert parsed_event.event_source_arn == raw_event["eventSourceARN"]
102+
assert parsed_event.is_final_invoke_for_window == raw_event["isFinalInvokeForWindow"]
103+
assert parsed_event.is_window_terminated_early == raw_event["isWindowTerminatedEarly"]

0 commit comments

Comments
 (0)