diff --git a/moto/dynamodb/responses.py b/moto/dynamodb/responses.py index dece06542..8f3172112 100644 --- a/moto/dynamodb/responses.py +++ b/moto/dynamodb/responses.py @@ -195,7 +195,7 @@ class DynamoHandler(BaseResponse): return dynamo_json_dump(item_dict) else: er = 'com.amazonaws.dynamodb.v20111205#ResourceNotFoundException' - return self.error(er) + return self.error(er, status=404) def batch_get_item(self): table_batches = self.body['RequestItems'] diff --git a/tests/test_dynamodb/test_dynamodb_table_with_range_key.py b/tests/test_dynamodb/test_dynamodb_table_with_range_key.py index bff2be93b..e357c5928 100644 --- a/tests/test_dynamodb/test_dynamodb_table_with_range_key.py +++ b/tests/test_dynamodb/test_dynamodb_table_with_range_key.py @@ -6,6 +6,7 @@ from moto import mock_dynamodb from moto.dynamodb import dynamodb_backend from boto.dynamodb import condition +from boto.dynamodb.exceptions import DynamoDBKeyNotFoundError from boto.exception import DynamoDBResponseError @@ -101,6 +102,8 @@ def test_item_add_and_describe_and_update(): ) item.put() + table.has_item("LOLCat Forum", "Check this out!").should.equal(True) + returned_item = table.get_item( hash_key='LOLCat Forum', range_key='Check this out!', @@ -150,7 +153,8 @@ def test_get_missing_item(): table.get_item.when.called_with( hash_key='tester', range_key='other', - ).should.throw(DynamoDBResponseError) + ).should.throw(DynamoDBKeyNotFoundError) + table.has_item("foobar").should.equal(False) @mock_dynamodb @@ -163,7 +167,7 @@ def test_get_item_with_undeclared_table(): 'HashKeyElement': {'S': 'tester'}, 'RangeKeyElement': {'S': 'test-range'}, }, - ).should.throw(DynamoDBResponseError) + ).should.throw(DynamoDBKeyNotFoundError) @mock_dynamodb diff --git a/tests/test_dynamodb/test_dynamodb_table_without_range_key.py b/tests/test_dynamodb/test_dynamodb_table_without_range_key.py index c1ffdf2ce..a3d68b113 100644 --- a/tests/test_dynamodb/test_dynamodb_table_without_range_key.py +++ b/tests/test_dynamodb/test_dynamodb_table_without_range_key.py @@ -6,6 +6,7 @@ from moto import mock_dynamodb from moto.dynamodb import dynamodb_backend from boto.dynamodb import condition +from boto.dynamodb.exceptions import DynamoDBKeyNotFoundError from boto.exception import DynamoDBResponseError @@ -137,7 +138,7 @@ def test_get_missing_item(): table.get_item.when.called_with( hash_key='tester', - ).should.throw(DynamoDBResponseError) + ).should.throw(DynamoDBKeyNotFoundError) @mock_dynamodb @@ -149,7 +150,7 @@ def test_get_item_with_undeclared_table(): key={ 'HashKeyElement': {'S': 'tester'}, }, - ).should.throw(DynamoDBResponseError) + ).should.throw(DynamoDBKeyNotFoundError) @mock_dynamodb