|
5 | 5 | from secrets import compare_digest
|
6 | 6 | from urllib.parse import quote_plus
|
7 | 7 |
|
| 8 | +import pytest |
8 | 9 | from pytest_mock import MockerFixture
|
9 | 10 |
|
10 | 11 | from aws_lambda_powertools.utilities.data_classes import (
|
@@ -848,6 +849,39 @@ def test_base_proxy_event_get_header_value_case_insensitive():
|
848 | 849 | assert value is None
|
849 | 850 |
|
850 | 851 |
|
| 852 | +def test_base_proxy_event_json_body_key_error(): |
| 853 | + event = BaseProxyEvent({}) |
| 854 | + with pytest.raises(KeyError) as ke: |
| 855 | + assert not event.json_body |
| 856 | + assert str(ke.value) == "'body'" |
| 857 | + |
| 858 | + |
| 859 | +def test_base_proxy_event_json_body(): |
| 860 | + data = {"message": "Foo"} |
| 861 | + event = BaseProxyEvent({"body": json.dumps(data)}) |
| 862 | + assert event.json_body == data |
| 863 | + |
| 864 | + |
| 865 | +def test_base_proxy_event_decode_body_key_error(): |
| 866 | + event = BaseProxyEvent({}) |
| 867 | + with pytest.raises(KeyError) as ke: |
| 868 | + assert not event.decoded_body |
| 869 | + assert str(ke.value) == "'body'" |
| 870 | + |
| 871 | + |
| 872 | +def test_base_proxy_event_decode_body_encoded_false(): |
| 873 | + data = "Foo" |
| 874 | + event = BaseProxyEvent({"body": data, "isBase64Encoded": False}) |
| 875 | + assert event.decoded_body == data |
| 876 | + |
| 877 | + |
| 878 | +def test_base_proxy_event_decode_body_encoded_true(): |
| 879 | + data = "Foo" |
| 880 | + encoded_data = base64.b64encode(data.encode()).decode() |
| 881 | + event = BaseProxyEvent({"body": encoded_data, "isBase64Encoded": True}) |
| 882 | + assert event.decoded_body == data |
| 883 | + |
| 884 | + |
851 | 885 | def test_kinesis_stream_event():
|
852 | 886 | event = KinesisStreamEvent(load_event("kinesisStreamEvent.json"))
|
853 | 887 |
|
|
0 commit comments