From 6bc09b029588ef6c7dd31d9c3380e56a8c198c2e Mon Sep 17 00:00:00 2001 From: Joris Conijn Date: Mon, 7 Dec 2020 19:17:57 +0100 Subject: [PATCH 1/3] test: DictWrapper equals method Added a equals test to test the `__eq__` method. Related Issue: #233 --- tests/functional/test_lambda_trigger_events.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/functional/test_lambda_trigger_events.py b/tests/functional/test_lambda_trigger_events.py index cf061793d8a..4f3f46d2544 100644 --- a/tests/functional/test_lambda_trigger_events.py +++ b/tests/functional/test_lambda_trigger_events.py @@ -28,7 +28,7 @@ UserMigrationTriggerEvent, VerifyAuthChallengeResponseTriggerEvent, ) -from aws_lambda_powertools.utilities.data_classes.common import BaseProxyEvent +from aws_lambda_powertools.utilities.data_classes.common import BaseProxyEvent, DictWrapper from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import ( AttributeValue, DynamoDBRecordEventName, @@ -43,6 +43,16 @@ def load_event(file_name: str) -> dict: return json.load(fp) +def test_dict_wrapper_equals(): + class DataClassSample(DictWrapper): + @property + def message(self) -> str: + return self.get("message") + + assert DataClassSample({"message": "foo1"}) == DataClassSample({"message": "foo1"}) + assert DataClassSample({"message": "foo1"}) != DataClassSample({"message": "foo2"}) + + def test_cloud_watch_trigger_event(): event = CloudWatchLogsEvent(load_event("cloudWatchLogEvent.json")) From 49cb9f9a6c00d5ecdeef0c2be594196c86111169 Mon Sep 17 00:00:00 2001 From: Joris Conijn Date: Mon, 7 Dec 2020 19:31:07 +0100 Subject: [PATCH 2/3] test: improve coverage --- tests/functional/test_lambda_trigger_events.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/functional/test_lambda_trigger_events.py b/tests/functional/test_lambda_trigger_events.py index 4f3f46d2544..0f28639d850 100644 --- a/tests/functional/test_lambda_trigger_events.py +++ b/tests/functional/test_lambda_trigger_events.py @@ -51,6 +51,8 @@ def message(self) -> str: assert DataClassSample({"message": "foo1"}) == DataClassSample({"message": "foo1"}) assert DataClassSample({"message": "foo1"}) != DataClassSample({"message": "foo2"}) + assert DataClassSample({"message": "foo1"}) is not object() + assert object() is not DataClassSample({"message": "foo1"}) def test_cloud_watch_trigger_event(): From 0ab2786f44f6363cbc7e79f75f74f5d158077e71 Mon Sep 17 00:00:00 2001 From: Joris Conijn Date: Mon, 7 Dec 2020 19:45:42 +0100 Subject: [PATCH 3/3] refactor: convert dict into a literal dict object and re-use it --- tests/functional/test_lambda_trigger_events.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/functional/test_lambda_trigger_events.py b/tests/functional/test_lambda_trigger_events.py index 0f28639d850..d6d225bf530 100644 --- a/tests/functional/test_lambda_trigger_events.py +++ b/tests/functional/test_lambda_trigger_events.py @@ -49,10 +49,13 @@ class DataClassSample(DictWrapper): def message(self) -> str: return self.get("message") - assert DataClassSample({"message": "foo1"}) == DataClassSample({"message": "foo1"}) - assert DataClassSample({"message": "foo1"}) != DataClassSample({"message": "foo2"}) - assert DataClassSample({"message": "foo1"}) is not object() - assert object() is not DataClassSample({"message": "foo1"}) + data1 = {"message": "foo1"} + data2 = {"message": "foo2"} + + assert DataClassSample(data1) == DataClassSample(data1) + assert DataClassSample(data1) != DataClassSample(data2) + assert DataClassSample(data1) is not data1 + assert data1 is not DataClassSample(data1) def test_cloud_watch_trigger_event():