@@ -75,8 +75,8 @@ def default_jmespath():
75
75
76
76
77
77
@pytest .fixture
78
- def expected_params_update_item (serialized_lambda_response , hashed_idempotency_key ):
79
- return {
78
+ def expected_params_update_item (serialized_lambda_response , hashed_idempotency_key , idempotency_config ):
79
+ params = {
80
80
"ExpressionAttributeNames" : {"#expiry" : "expiration" , "#response_data" : "data" , "#status" : "status" },
81
81
"ExpressionAttributeValues" : {
82
82
":expiry" : stub .ANY ,
@@ -88,6 +88,13 @@ def expected_params_update_item(serialized_lambda_response, hashed_idempotency_k
88
88
"UpdateExpression" : "SET #response_data = :response_data, " "#expiry = :expiry, #status = :status" ,
89
89
}
90
90
91
+ if idempotency_config .expires_in_progress :
92
+ params ["ExpressionAttributeNames" ]["#in_progress_expiry" ] = "in_progress_expiration"
93
+ params ["ExpressionAttributeValues" ][":in_progress_expiry" ] = stub .ANY
94
+ params ["UpdateExpression" ] += ", #in_progress_expiry = :in_progress_expiry"
95
+
96
+ return params
97
+
91
98
92
99
@pytest .fixture
93
100
def expected_params_update_item_with_validation (
@@ -195,6 +202,7 @@ def idempotency_config(config, request, default_jmespath):
195
202
return IdempotencyConfig (
196
203
event_key_jmespath = request .param .get ("event_key_jmespath" ) or default_jmespath ,
197
204
use_local_cache = request .param ["use_local_cache" ],
205
+ expires_in_progress = request .param .get ("expires_in_progress" ) or False ,
198
206
)
199
207
200
208
@@ -212,6 +220,14 @@ def config_with_validation(config, request, default_jmespath):
212
220
)
213
221
214
222
223
+ @pytest .fixture
224
+ def config_with_expires_in_progress (config , request , default_jmespath ):
225
+ return IdempotencyConfig (
226
+ event_key_jmespath = default_jmespath ,
227
+ expires_in_progress = True ,
228
+ )
229
+
230
+
215
231
@pytest .fixture
216
232
def config_with_jmespath_options (config , request ):
217
233
class CustomFunctions (functions .Functions ):
0 commit comments