Skip to content

Commit

Permalink
Add test case for parse_records: json
Browse files Browse the repository at this point in the history
  • Loading branch information
Torgayev Tamirlan committed Jun 19, 2020
1 parent 1d388a9 commit 5fe10f1
Showing 1 changed file with 37 additions and 1 deletion.
38 changes: 37 additions & 1 deletion tests/test_kinesis.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import base64
import json
import unittest
from typing import List, Dict

from amazon_kinesis_utils import kinesis


def generate_sample_kinesis_records(data: list) -> list:
def generate_sample_kinesis_records(data: list) -> List[Dict]:
ret = []

for d in data:
Expand Down Expand Up @@ -82,3 +84,37 @@ def test_parse_records_plaintext_multiple(self):
self.assertEqual(len(records), len(data))
for i, r in enumerate(records):
self.assertEqual(r, data[i])

def test_parse_records_json_empty(self):
data = ["{}"]

event = {"Records": generate_sample_kinesis_records(data)}

records = [x for x in kinesis.parse_records(event["Records"])]

self.assertEqual(len(records), len(data))
for i, r in enumerate(records):
self.assertEqual(r, data[i])

def test_parse_records_json_multi(self):
json_data = [{"a": 1}, {"b": 2}, {"c": 3}]

data = [json.dumps(x) for x in json_data]

event = {"Records": generate_sample_kinesis_records(data)}

records = [x for x in kinesis.parse_records(event["Records"])]

self.assertEqual(len(records), len(data))
for i, r in enumerate(records):
self.assertEqual(r, data[i])

def test_parse_records_json_root_non_object(self):
# non-object types on root should be ignored
data = ["true", "1", "null"]

event = {"Records": generate_sample_kinesis_records(data)}

records = [x for x in kinesis.parse_records(event["Records"])]

self.assertEqual(len(records), 0)

0 comments on commit 5fe10f1

Please sign in to comment.