Fix: DynamoDB:GetItem throws wrong error when table doesn't exist (#3700)
* Fix: DynamoDB:GetItem throws wrong error when table doesn't exist * Use unique exception for table not found, per PR feedback * Just fix the reported issue, without touching anything else...
This commit is contained in:
parent
6f1eae6f02
commit
613b1395b8
@ -349,6 +349,12 @@ class DynamoHandler(BaseResponse):
|
||||
|
||||
def get_item(self):
|
||||
name = self.body["TableName"]
|
||||
table = self.dynamodb_backend.get_table(name)
|
||||
if table is None:
|
||||
return self.error(
|
||||
"com.amazonaws.dynamodb.v20120810#ResourceNotFoundException",
|
||||
"Requested resource not found",
|
||||
)
|
||||
key = self.body["Key"]
|
||||
projection_expression = self.body.get("ProjectionExpression")
|
||||
expression_attribute_names = self.body.get("ExpressionAttributeNames", {})
|
||||
|
@ -5698,3 +5698,12 @@ def test_update_item_add_to_list_using_legacy_attribute_updates():
|
||||
|
||||
resp = table.get_item(Key={"id": "list_add"})
|
||||
resp["Item"]["attr"].should.equal(["a", "b", "c", "d", "e"])
|
||||
|
||||
|
||||
@mock_dynamodb2
|
||||
def test_get_item_for_non_existent_table_raises_error():
|
||||
client = boto3.client("dynamodb", "us-east-1")
|
||||
with pytest.raises(ClientError) as ex:
|
||||
client.get_item(TableName="non-existent", Key={"site-id": {"S": "foo"}})
|
||||
ex.value.response["Error"]["Code"].should.equal("ResourceNotFoundException")
|
||||
ex.value.response["Error"]["Message"].should.equal("Requested resource not found")
|
||||
|
Loading…
Reference in New Issue
Block a user