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):
|
def get_item(self):
|
||||||
name = self.body["TableName"]
|
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"]
|
key = self.body["Key"]
|
||||||
projection_expression = self.body.get("ProjectionExpression")
|
projection_expression = self.body.get("ProjectionExpression")
|
||||||
expression_attribute_names = self.body.get("ExpressionAttributeNames", {})
|
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 = table.get_item(Key={"id": "list_add"})
|
||||||
resp["Item"]["attr"].should.equal(["a", "b", "c", "d", "e"])
|
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