@@ -63,3 +63,41 @@ def test_kinesis_stream_event_cloudwatch_logs_data_extraction():
63
63
individual_logs = [extract_cloudwatch_logs_from_record (record ) for record in event .records ]
64
64
65
65
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