File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
aws_lambda_powertools/utilities/idempotency/persistence
tests/functional/idempotency Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -112,6 +112,7 @@ class BasePersistenceLayer(ABC):
112
112
113
113
def __init__ (self ):
114
114
"""Initialize the defaults"""
115
+ self .function_name = None
115
116
self .configured = False
116
117
self .event_key_jmespath : Optional [str ] = None
117
118
self .event_key_compiled_jmespath = None
Original file line number Diff line number Diff line change @@ -1036,3 +1036,24 @@ def dummy_handler(event, context):
1036
1036
dummy_handler (mock_event , lambda_context )
1037
1037
1038
1038
assert len (persistence_store .table .method_calls ) == 0
1039
+
1040
+
1041
+ @pytest .mark .parametrize ("idempotency_config" , [{"use_local_cache" : True }], indirect = True )
1042
+ def test_idempotent_function_duplicates (
1043
+ idempotency_config : IdempotencyConfig , persistence_store : DynamoDBPersistenceLayer
1044
+ ):
1045
+ # Scenario to validate the both methods are called
1046
+ mock_event = {"data" : "value" }
1047
+ persistence_store .table = MagicMock ()
1048
+
1049
+ @idempotent_function (data_keyword_argument = "data" , persistence_store = persistence_store , config = idempotency_config )
1050
+ def one (data ):
1051
+ return "one"
1052
+
1053
+ @idempotent_function (data_keyword_argument = "data" , persistence_store = persistence_store , config = idempotency_config )
1054
+ def two (data ):
1055
+ return "two"
1056
+
1057
+ assert one (data = mock_event ) == "one"
1058
+ assert two (data = mock_event ) == "two"
1059
+ assert len (persistence_store .table .method_calls ) == 4
You can’t perform that action at this time.
0 commit comments