forked from aws-powertools/powertools-lambda-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_kinesis_firehose_response.py
36 lines (30 loc) · 1.2 KB
/
test_kinesis_firehose_response.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
from aws_lambda_powertools.utilities.data_classes import (
FirehoseStateOk,
KinesisFirehoseEvent,
KinesisFirehoseResponceFactory,
KinesisFirehoseResponceRecordFactory,
)
from tests.functional.utils import load_event
def test_kinesis_firehose_response():
raw_event = load_event("kinesisFirehoseKinesisEvent.json")
parsed_event = KinesisFirehoseEvent(raw_event)
result = []
for record in parsed_event.records:
# if data was delivered as json; caches loaded value
data = record.data_as_text
processed_record = KinesisFirehoseResponceRecordFactory(
record_id=record.record_id,
result=FirehoseStateOk,
data=(data),
)
result.append(processed_record)
response = KinesisFirehoseResponceFactory(result)
res_records = list(response.records)
assert len(res_records) == 2
record_01, record_02 = res_records[:]
record01_raw = raw_event["records"][0]
assert record_01.result == FirehoseStateOk
assert record_01.record_id == record01_raw["recordId"]
assert record_01.data_as_bytes == b"Hello World"
assert record_01.data_as_text == "Hello World"
assert record_01.data == record01_raw["data"]