@@ -174,6 +174,35 @@ def test_dynamodb_provider_get_sdk_options(mock_name, mock_value, config):
174
174
stubber .deactivate ()
175
175
176
176
177
+ def test_dynamodb_provider_get_with_custom_client (mock_name , mock_value ):
178
+ """
179
+ Test DynamoDBProvider.get() with SDK options
180
+ """
181
+
182
+ table_name = "TEST_TABLE"
183
+ client = boto3 .resource ("dynamodb" )
184
+ # Create a new provider
185
+ provider = parameters .DynamoDBProvider (table_name , boto3_client = client )
186
+
187
+ # Stub the boto3 client
188
+ stubber = stub .Stubber (provider .table .meta .client )
189
+ response = {"Item" : {"id" : {"S" : mock_name }, "value" : {"S" : mock_value }}}
190
+ expected_params = {"TableName" : table_name , "Key" : {"id" : mock_name }, "ConsistentRead" : True }
191
+ stubber .add_response ("get_item" , response , expected_params )
192
+ stubber .activate ()
193
+
194
+ try :
195
+ value = provider .get (mock_name , ConsistentRead = True )
196
+
197
+ assert value == mock_value
198
+ # table meta client will spun up from provider.client provided
199
+ # hence having a different hash
200
+ assert id (client ) == id (provider .client )
201
+ stubber .assert_no_pending_responses ()
202
+ finally :
203
+ stubber .deactivate ()
204
+
205
+
177
206
def test_dynamodb_provider_get_sdk_options_overwrite (mock_name , mock_value , config ):
178
207
"""
179
208
Test DynamoDBProvider.get() with SDK options that should be overwritten
0 commit comments