Skip to content

Commit 579f8e1

Browse files
committed
chore: tests for dynamodb custom boto3 client
1 parent 3528b8e commit 579f8e1

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

tests/functional/test_utilities_parameters.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,35 @@ def test_dynamodb_provider_get_sdk_options(mock_name, mock_value, config):
174174
stubber.deactivate()
175175

176176

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+
177206
def test_dynamodb_provider_get_sdk_options_overwrite(mock_name, mock_value, config):
178207
"""
179208
Test DynamoDBProvider.get() with SDK options that should be overwritten

0 commit comments

Comments
 (0)